这是登录php脚本,我没有得到任何错误或回声,所以我不知道发生了什么。 “*”是我审查这些信息。如果您希望看到实时页面here。
<?php
printf("Client library version: %s\n", mysqli_get_client_info());
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
var_dump('test');
if (!empty($username) && !empty($password)){
echo $username
echo $password
$connect = mysql_connect("localhost", "atsbusin_atsbusin", "Andrew85") or die ("Failed to connect to DB");
mysql_select_db("atsbusin_users") or die ("failed to select DB");
$query = mysql_query("SELECT * FROM users WHERE username='$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)
{
echo "Login Success!";
$_SESSION['username'] == $dbusername;
} else {
echo "Incorrect password!";
}
} else {
die("invalid username, check the spelling or register that name");
}
}
echo 'something'
?>
这是最终的工作代码,感谢所有帮助过的人!现在让我切换到mysqli并做出建议的安全措施(有一种感觉我会回来☺)
<?php
session_start();
$username = $_POST['username'];
$password = $_POST['password'];
$connect = mysql_connect("localhost", "atsbusin_atsbusi", "Andrew85") or die ("Failed to connect to DB");
mysql_select_db("atsbusin_users") or die ("failed to select DB");
$query = mysql_query("SELECT * FROM users WHERE username='$username'");
$numrows = mysql_num_rows($query);
while ($row = mysql_fetch_assoc($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
if ($username == $dbusername && $password == $dbpassword)
{
echo "Login Success!";
$_SESSION['username'] = $dbusername;
} else {
echo "Incorrect password!";
}
?>
答案 0 :(得分:1)
您的脚本中存在一些php语法错误。
您错过了以下行的分号,更新了代码并设置了显示错误,以查看是否还有其他错误
$username = $_POST['username'];
$password = $_POST['password'];
答案 1 :(得分:1)
这不会回应任何事情并且不会给你一个错误的唯一方法是如果用户名存在且密码不匹配那么它将通过:
if($numrows != 0){
}
尝试将var_dump('test');
放入IF语句中,看看它是否显示了什么。
之后你也没有
;
$username = $_POST['username']
$password = $_POST['password']
将其更改为:
$username = $_POST['username'];
$password = $_POST['password'];
一些额外的说明:
else
左右:die("Do not leave username and/or password field blank");
修改强>
如果您填写用户名和密码并且两者都不匹配,它也不会显示错误或回显
答案 2 :(得分:1)
您的代码有一些语法和逻辑错误。
1)您在变量分配时错过;
。
$username = $_POST['username'];
$password = $_POST['password'];
2)您未在&&
声明中使用if()
,但有两个$
if ($username == $dbusername && $password == $dbpassword) {
3)您在==
而非作业($_SESSION
)上使用了比较(=
)。
$_SESSION['username'] = $dbusername;
笔记