[英]php login code not working
所以我用php的登录页面写了这段代码
<?php
function SignIn() {
session_start(); //starting the session for user profile page
if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text
{
$query = mysql_query("SELECT * FROM register where Username = '$_POST[username]' AND Password = '$_POST[password]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['Username']) AND !empty($row['Password'])) {
if($password = $row['Password']) {
$_SESSION['Username'] = $row['Password'];
echo "welcome ".$row['Name'];
}
if ($password != $row['Password']) {
echo "Something went wrong!" ;
}
}
}
}
if(isset($_POST['submit'])) {
SignIn();
}
?>
我的问题是,虽然登录部分可以正常工作(当我输入正确的密码时),当我输入错误的密码时,它不显示消息,而是将其设置为回显,而是显示空白页。很多次但没有结果...有人可以给我一些帮助吗?
您的第一个IF
语句将$password
设置$password
$row['password']
值:
if($password = $row['Password'])
当第二个if语句开始时, $password
与$row['password']
,条件等于false:
if($password != $row['Password'])
解决方案是将第一个if语句更改为可比较值:
if($password == $row['Password'])
注意,有两个=
符号? 这告诉PHP检查它们是否都是相同的值。
您似乎错过了一个=号:
if($password = $row['Password'])
因此,您不是在进行比较,而是进行分配。 我希望这应该是:
if($password == $row['Password'])
尝试这个
function SignIn() {
session_start(); //starting the session for user profile page
if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text
{
$query = mysql_query("SELECT * FROM register where Username = '$_POST[username]' AND Password = '$_POST[password]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['Username']) && !empty($row['Password'])) {
if($password == $row['Password'])
{
$_SESSION['Username'] = $row['Password'];
echo "welcome ".$row['Name'];
}
else
echo "Something went wrong!" ;
}
}
}
第二个if条件必须在第一个if条件之外。
您还将密码分配给$_SESSION['Username']
而不是$row['Username']
。 我编辑了代码..见下文
<?php
function SignIn() {
session_start(); //starting the session for user profile page
if(!empty($_POST['username'])) //checking the 'user' name which is from Sign-In.html, is it empty or have some text
{
$query = mysql_query("SELECT * FROM register where Username = '$_POST[username]' AND Password = '$_POST[password]'") or die(mysql_error());
$row = mysql_fetch_array($query) or die(mysql_error());
if(!empty($row['Username']) AND !empty($row['Password'])) {
if($_POST['password'] = $row['Password'])
$_SESSION['Username'] = $row['Username'];
echo "welcome ".$row['Username'];
}
if ($_POST['password'] != $row['Password']) {
echo "Something went wrong!" ;
}
}
}
if(isset($_POST['submit'])) {
SignIn();
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.