你好,我为 php mysql 作业创建了一个简单的登录:
<?php
/*Initialize session*/
session_start();
/*Store form data in variables*/
$username = $_POST['username'];
$password = $_POST['password'];
/*Connect to the database*/
$conn = mysql_connect("localhost", "twa174" , "a3wgrrzn")
or die ("Could not connect: " .mysql_error());
mysql_select_db("twa174", $conn)
or die ("Could not find Database: " . mysql_error() );
/*Create empty error log*/
$errors = '';
/*Check for login attempt*/
if(isset($_POST['submit'])) {
if(!isset($username) || empty($username)) $errors .= '<p>Please enter a
username!</p>';
if(!isset($password) || empty($password)) $errors .= '<p>Please enter a
password!</p>';
/*Initialize login sequence on attempt*/
if(empty($errors)){
$query = mysql_query("SELECT * FROM school_info WHERE schoolID ='".$username."'");
$numrows = mysql_num_rows($query);
if($numrows!=0){
while ($row = mysql_fetch_assoc($query)){
$dbusername= $row['username'];
$dbpassword= $row['password'];
}
if($username==$dbusername&&$password==$dbpassword){
header("Location: leavers.php");
}
else {
$errors .= '<p>Incorrect login details</p>';
}
}
}
}
?>
<?php echo($errors);?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Login PHP Page</title>
<link href="assign2.css" rel ="stylesheet" type="text/css"/>
</head>
<body>
<form action = "login.php" method="post">
<table>
<tr> <td>Username:</td>
<td><input type="text" name="username" />
</td> </tr>
<tr><td>Password:</td>
<td><input type="password" name="password"/> </td></tr>
<tr><td> <input type="submit" name="submit" value="Submit" </td>
<td> <input type="reset" name="reset" value="Reset"</td></tr>
</table>
</form>
</body>
</html>
它的目的是在正确输入用户名和密码时重定向,但无论正确还是错误,它都停留在同一页面上。
我过去在标题方面遇到过一些麻烦。
我不确定我是否有太多括号或者它不会重定向,因为我的头函数上面已经有脚本。
有人知道我哪里出错了吗?
最佳答案
乍一看,我能看出 if-else 不合适。你的 else 在你的 if 里面。 Thay 可能会导致问题。
if($numrows!=0){
while ($row = mysql_fetch_assoc($query)){
$dbusername= $row['username'];
$dbpassword= $row['password'];}
if($username==$dbusername&&$password==$dbpassword){
header("Location: leavers.php");}
else{$errors .= '<p>Incorrect login details</p>';}}}}
另外,在while循环后输出$dbusername和$dbpassword,检查它们是否与$username和$password相同(因为数据库中可能存在重复条目。
关于php mysql登录标题问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16382233/