我在一个有用户配置文件的网站上工作,我设法完成了注册页面,一旦用户激活了该帐户,他们就有权登录。
基本上,我写了我的登录脚本,当我查看网站时,我有两个错误,它们真的很令人困惑[错误1]:注意:未定义的索引:在第160行的C:''examplep''htdocs''mountain bikers''index.php中登录[错误2]:注意:在第166行的C:''samplep''htdocs''mountan bikers''/index.php中记住return_msg=无良好
以下是登录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,只需询问即可。
首先,您应该验证isset:
if (isset($_POST['loginEmail']) && $_POST['loginEmail'] != "")
接下来,我假设记住是一个复选框,如果不选中,它将不会传递值。也一定要这样。。。
$loginRemember = isset($_POST['remember']) ? $_POST['remember'] : false;
此外,你会让人们对mysql功能大吵大闹,因为包括我在内的整个世界都在努力确保活着的人永远不会再使用它们。你应该研究PDO或mysqli。。。
http://php.net/manual/en/book.pdo.php