php登录代码不工作
所以我用php为登录页面编写了这段代码php登录代码不工作,php,login,Php,Login,所以我用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 {
<?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 = $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条件之外
您还将密码分配给$\u会话['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();
}
?>
如果语句正在将$password
设置为$row['password']
值,则您的第一个:
if($password = $row['Password'])
当第二条if语句启动时,$password
与$row['password']
相同,条件为false:
if($password != $row['Password'])
解决方案是将第一个if语句更改为比较的equals:
if($password == $row['Password'])
注意有两个=
符号?这告诉PHP检查它们是否都是相同的值