我是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>
答案 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