-1

シンプルな Web ページ PHP と MySQL の共同ログイン システムを作成しています。簡単に言えば、ログインできないという問題があります。私のコードを簡単に見ていただければ幸いです。私はどちらかというと HTML/CSS 開発者です。ありがとう!

OK、これが私のログインページ (login.php) です。

<?php
session_start();
require_once 'Membership.php';
$membership = new Membership();

// If the user clicks the "Log Out" link on the index page.
if(isset($_GET['status']) && $_GET['status'] == 'loggedout') {
    $membership->log_User_Out();
}

// Did the user enter a password/username and click submit?
if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
    $response = $membership->validate_User($_POST['username'], $_POST['pwd']);
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Login Form</title>
<link href="style-login.css" rel="stylesheet" type="text/css" />
<script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function(){
    $("#cerceve").hide().fadeIn(500);
    $(".show").hide();
    $(".close").click(function(){
        $("#cerceve").hide(500);
        $(".show").fadeIn(500);
    });
    $(".show").click(function(){
        $("#cerceve").fadeIn(500);
        $(".show").hide(500);
    });
});
</script>
</head>
<body>
<div id="cerceve">
  <div class="header"><div class="text" style="float:left">Login Form</div><div class="close" style="float:right;margin-right:20px;cursor:pointer;">x</div></div>
<div class="formbody">
<script type="text/javascript" src="sha512.js"></script>
<script type="text/javascript" src="js/forms.js"></script>
<script type="text/javascript" src="js/main.js"></script>
<form name="loginForm" method="post" action="">
<input type="text" input name="username" placeholder="Email" class="text" style="background:url(images/username.png) no-repeat;" />
<input type="password" input name="pwd" placeholder="••••••••••••" class="text" style="background:url(images/password.png) no-repeat;" />
<input type="submit" value="Sign In" class="submit" style="background:url(images/login.png) no-repeat;" id="submit" name="submit" /><a href="#">Lost your password?</a>
</form>


</div>
</div>
</body>
</html>

そして、ここにいくつかの他の PHP ドキュメントがあります (はるかに短いものです)。

このファイルのタイトルは「Membership.php」です。

<?php

require 'Mysql.php';

class Membership {

    function validate_user($un, $pwd) {
        $mysql = New Mysql();
        $ensure_credentials = $mysql->verify_Username_and_Pass($un, md5($pwd));

        if($ensure_credentials) {
            $_SESSION['status'] = 'authorized';
            header("location: index.php");
        } else return "Please enter a correct username and password";

    } 

    function log_User_Out() {
        if(isset($_SESSION['status'])) {
            unset($_SESSION['status']);

            if(isset($_COOKIE[session_name()])) 
                setcookie(session_name(), '', time() - 1000);
                session_destroy();
        }
    }

    function confirm_Member() {
        session_start();
        if($_SESSION['status'] !='authorized') header("location: success.php");
    }

}

そして..「MySQL.php」というドキュメント

<?php

// Define constants here

define('DB_SERVER', 'localhost');
define('DB_USER', 'noahtech_dbuser');
define('DB_PASSWORD', 'dbuseraccess');
define('DB_NAME', 'noahtech_secure');

および「Constants.php」と呼ばれる重複した PHP ドキュメント

<?php

// Define constants here

define('DB_SERVER', 'localhost');
define('DB_USER', 'noahtech_dbuser');
define('DB_PASSWORD', 'dbuseraccess');
define('DB_NAME', 'noahtech_secure');

助けてください!「定義」DB サーバー、ユーザー、パスワード、および名前を正しくフォーマットしましたか?

4

1 に答える 1

1

タグの属性はありませんinput nameinputそれはただname

input name="username"
input name="pwd"

する必要があります

name="username"
name="pwd"

編集1:

また、ユーザーがsubmitボタンを押したかどうかを確認する必要があります。それで

if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
    $response = $membership->validate_User($_POST['username'], $_POST['pwd']);
}

する必要があります

if (isset($_POST['sumbit'])){
if($_POST && !empty($_POST['username']) && !empty($_POST['pwd'])) {
    $response = $membership->validate_User($_POST['username'], $_POST['pwd']);
}
}
于 2013-04-27T08:18:10.970 に答える