我正在进行一个php登录,当您登录时会将您重定向到"admin.php",这是我到目前为止的代码,当我回显带有用户名和密码的行时它起作用,但是当我添加if
和else
语句时,它只是给了我一个空白屏幕,没有错误或任何东西。这是我的代码:
注意:我已经更改了 mysql 数据库详细信息,但我已经测试了它们并且它们都连接起来。
<?php
mysql_connect("mysqlserver", "myusername", "mypassword);
mysql_select_db("mydatebase");
?>
<html>
<head>
</head>
<body>
<?php
if(isset($_POST['submit'])){
$user = $_POST['user'];
$pass = $_POST['password'];
$result = mysql_query("SELECT * FROM user WHERE name='$user' AND pass='$pass'");
$num = mysql_num_rows($result);
if($num == 0) {
echo "Incorrect UserName or Password. Please try again."; session_start();
}else{
session_start();
$_SESSION['user'] = $user;
header("Location: admin.php");
}
?>
<form action='login.php' method='post'>
UserName: <input type='text' name='user' /><br />
Password: <input type='password' name='password' /><br />
<input type='submit' name='submit' value='Login' />
</form>
<?php
}
?>
</body>
</html>
似乎你有语法错误
mysql_connect("mysqlserver", "myusername", "mypassword);
你缺少双引号这应该是
mysql_connect("mysqlserver", "myusername", "mypassword");
而连接的方式必须是这样的
$con = mysql_connect("mysqlserver", "myusername", "mypassword");
mysql_select_db("mydatebase",$con);
附言停止使用mysql_connect
而是使用mysqli
或PDO
原因是MySQL现在已被弃用
您的 PHP 脚本中有一个错误,并且error_reporting(或display_error)已关闭,因此您看到一个白色空白页。
这是错误:您忘记了双引号
mysql_connect("mysqlserver", "myusername", "mypassword);
-----------------------------------------------------^
试试这个:
mysql_connect("mysqlserver", "myusername", "mypassword");
如果这不能解决您的问题,则一定是在其他地方出错。
尝试在 PHP 脚本的开头添加以下两行以查找错误:
error_reporting(E_ALL);
ini_set('display_errors', 'On');
- 升级到mysqli_或至少使用 mysql_real_escape()
- 拆分 2 个文件
- 空白页表示您没有打开错误报告,因此请启用它。
登录.html:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action='login.php' method='post'>
UserName: <input type='text' name='user' /><br />
Password: <input type='password' name='password' /><br />
<input type='submit' name='submit' value='Login' />
</form>
</body>
</html>
登录.php:
<?php
if(isset($_POST['user'], $_POST['password'], $_POST['submit'])){
$con = mysql_connect("mysqlserver","username","password", "mydatebase");
if(!$con)
{
die('Could not connect : ' . mysql_error());
}
$user = $_POST['user'];
$pass = $_POST['password'];
$query = sprintf("
SELECT * FROM user WHERE name='%s' AND pass='%s'",
mysql_real_escape_string($user),
mysql_real_escape_string($pass);
$result = mysql_query($query,$con);
if(!$result)
{
die('Could not execute : ' . mysql_error());
}
if(mysql_num_rows($result) > 0){
session_start();
$_SESSION['user'] = $user;
header("Location: admin.php");
}else{
echo "Incorrect UserName or Password. Please try again.";
}
mysql_close($con);
}else{
echo "missing form values";
}