PHP登录数据库问题

时间:2013-04-12 18:12:45

标签: php mysql

我是PHP新手所以请耐心等待我!我正在尝试设置用户登录页面,但每次单击登录时都无法识别数据库中已有的数据。我目前在表中有7个部分,但只从2个部分获取数据。我不确定我出错的地方可能是php或MySQL查询请有人帮助我!

 <?PHP

$email = "";
$pword = "";
$errorMessage = "";
$num_rows = 0;

function quote_smart($value, $handle) {

   if (get_magic_quotes_gpc()) {
       $value = stripslashes($value);
   }

   if (!is_numeric($value)) {
       $value = "'" . mysql_real_escape_string($value, $handle) . "'";
   }
   return $value;
}

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    $email = $_POST['Email'];
    $pword = $_POST['Password'];

    $email = htmlspecialchars($email);
    $pword = htmlspecialchars($pword);

    $e_mail = "root";
    $pass_word = "";
    $database = "the_travel_cult";
    $server = "127.0.0.1";

    $db_handle = mysql_connect($server, $e_mail, $pass_word);
    $db_found = mysql_select_db($database, $db_handle);

    if ($db_found) {

        $email = quote_smart($email, $db_handle);
        $pword = quote_smart($pword, $db_handle);


        $SQL = "SELECT * FROM user_login WHERE Email='$email' AND Password='$pword'";
        $result = mysql_query($SQL);
        $num_rows = mysql_num_rows($result);
        //if(!$result) die ('Unable to run query:'.mysql_error());

        if ($result) {
            if ($num_rows > 0) {
                session_start();
                $_SESSION['user_login'] = "1";
                header ("Location: SignedIn.php");
            }
            else {
                session_start();
                $_SESSION['user_login'] = "";
                //$errorMessage = "Not Registered";
                header ("Location: Register.php");              
            }   
        }
        else {
            $errorMessage = "Error logging on";
        }

    mysql_close($db_handle);

    }

    else {
        $errorMessage = "Error logging on";
    }
}


?>

<FORM NAME ="form1" METHOD ="POST" ACTION ="HomePage.php">

<form method=post action=”login.php”>

<p><center><strong>Email Addres:</strong></center><br>
<center><input type=”text” name= 'email' value="<?PHP print $email;?>" size=40 maxlength=100></center>
<p><center><strong>Password</strong></center><br>
<center><input type=”text” name= 'password' value="<?PHP print $pword;?>" size=40 maxlength=20></center>

<P align = center>
<INPUT TYPE = "Submit" Name = "Submit1"  VALUE = "Login">
<form action="Register.php"> <input type="submit" value="Sign Up"> </form>

1 个答案:

答案 0 :(得分:2)

首先,祝贺开始编码。我希望你玩得开心!

看起来您可能会遇到“区分大小写”的情况。我注意到你在顶部有以下代码:

$email = $_POST['Email'];
$pword = $_POST['Password'];

但是,在HTML中,实际上是传递了以全小写命名的变量。尝试将顶部的代码更改为:

$email = $_POST['email'];
$pword = $_POST['password'];

或者输入“Email”和“Password”的名称(再次注意大写的第一个字母)。检查问题是否存在(查询中的某些内容)的简单方法是

var_dump($_POST);

了解您的脚本从表单提交中获得的确切内容。

有关更多信息,请参阅PHP的http://php.net/manual/en/language.variables.basics.php或查看相关帖子,了解如何进行自己的大小写不敏感检查,但要注意:它还有更多工作要做。 PHP: Case-insensitive parameters