0

我正在一个具有用户个人资料的网站上工作,并且我设法完成了注册页面,一旦用户在那里激活了帐户,他们将有权登录。

基本上我写出了我的登录脚本,当我查看网站时,我有两个错误,它们真的很混乱 [错误 1]:注意:未定义的索引:C:\xampp\htdocs\mountain-bikers\index.php 中的 loginEmail第 160 行 [错误 2]:注意:未定义索引:请记住第 166 行的 C:\xampp\htdocs\mountain-bikers\index.php return_msg=no_good

这是登录php代码:

<?php

if ($_POST['loginEmail'] != "") {

include_once "includes/mysql_connection.php";

$loginEmail = $_POST['loginEmail'];
$loginPassword = $_POST['loginPassword'];
$loginRemember = $_POST['remember']; 

$loginEmail = strip_tags($loginEmail);
$loginPassword = strip_tags($loginPassword);
$loginEmail = mysql_real_escape_string($loginEmail);
$loginPassword = mysql_real_escape_string($loginPassword);

$pass = md5($loginPassword);

//make query
$sql = mysql_query("SELECT * FROM users WHERE email='$loginEmail' AND password='$loginPassword' AND activated='1'"); 
$login_check = mysql_num_rows($sql);

if($login_check > 0){ 

    while($row = mysql_fetch_array($sql)){ 

        $id = $row["id"];   
        session_register('id'); 
        $_SESSION['id'] = $id;

        $firstname = $row["firstname"];   
        session_register('firstname'); 
        $_SESSION['firstname'] = $firstname;

        $email = $row["email"];   
        session_register('email'); 
        $_SESSION['loginEmail'] = $email;

    } // close while

    // Remember Me Section Addition... if member has chosen to be remembered in the system
    if($remember == "yes"){
      setcookie("idCookie", $id, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
      setcookie("firstnameCookie", $firstname, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
      setcookie("emailCookie", $email, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
      setcookie("passwordCookie", $password, time()+60*24*60*60, "/"); // 60 days; 24 hours; 60 mins; 60secs
    }   
    $my_msg = "all_good";
    print "return_msg=$my_msg&id=$id&firstname=$firstname";

} else {
$my_msg = "no_good";
    print "return_msg=$my_msg"; 
  exit();
}


}// close if post
?>

我也收到电子邮件和密码字段的未定义变量错误。value="<?php print "$loginEmail"; ?>"此外,每个字段中都有一个登录名。如果您需要 HTML,请询问。

4

1 回答 1

1

首先,您应该验证 isset:

if (isset($_POST['loginEmail']) && $_POST['loginEmail'] != "") 

接下来,我假设 remember 是一个复选框,如果不选中它就不会传递值。确保也设置了...

$loginRemember = isset($_POST['remember']) ? $_POST['remember'] : false;

此外,你会得到人们对 mysql_ 函数的咆哮,因为全世界,包括我在内,都在努力确保没有人活着再次使用它们。您应该查看 PDO 或 mysqli ...

http://php.net/manual/en/book.pdo.php

于 2012-08-31T03:51:06.937 回答