登录会话问题

这是我的代码,由于某种原因,它总是返回密码不正确。我不确定我是否在某个地方忘了支架,我怎样才能让它更安全,因为现在我正在使用_post功能。登录会话问题

<?php 

include 'config.php';

session_start();

session_destroy();

session_start();

$UserName = $_POST['UserName'];

$PassWord = $_POST['PassWord'];

if ($UserName&&$PassWord)

{

mysql_select_db("SegmentMath") or die ("Couldn't find database sorry.");

$query = mysql_query("SELECT * FROM Users WHERE UserName='$UserName'");

$numrows = mysql_num_rows($query);

if ($numrows!=0)

{

// code to login

while ($row = mysql_fetch_assoc($query))

{

$dbUserName = $row['UserName'];

$dbPassWord = $row['PassWord'];

}

//check to see if they match!

if ($UserName==$dbUsername&&$PassWord==$dbPassWord)

{

$_SESSION['UserName']=$dbUsername;

$_SESSION['PassWord']=$dbPassWord;

echo "<p>Finished Software</p>";

}

else

{

echo "Incorrect Password";

}

}

else die("Sorry username not found!");

}

else die("Please Enter A Valid Username And Password!");

?>

所以我几乎是积极的我做了一些愚蠢的错误,它让我陷入了将近30分钟。这个文件只是login.php,所以基本上,如果用户在login.html页面上输入用户名和密码,它会将该数据推送到此页Login.Php

我很困惑,为什么它说不正确的密码,即使登录是正确的,并在数据库中。

回答:

您需要先连接到数据库。使用mysql_connect()

另请注意,此功能正在折旧,建议使用mysqli或PDO。在上面的链接中有链接。

回答:

您可能在存储密码时使用了一些加密。因为如果你使用md5()例如(只是一个例子,MD5是不是最好的密码),你应该检查是这样的:

if ($UserName == $dbUsername && md5($PassWord) == $dbPassWord) 

{

回答:

我会说,这是更好地利用这一点,我的意思是创建查询其找到usernamepassword

$login = mysql_query("SELECT * FROM users WHERE ID='". $UserName ."' AND PASSWORD='". md5($PassWord) ."'); 

$row=mysql_fetch_array($login); // fetch row

if($row!=null) // if found row

{

$_SESSION['UserName'] = $row['UserName']; // store in session

$_SESSION['PassWord'] = $row['PassWord'];

} %>

,而不是

if (($UserName==$dbUsername)&&($PassWord==$dbPassWord)) 

{

$_SESSION['UserName']=$dbUsername;

$_SESSION['PassWord']=$dbPassWord;

echo "<p>Finished Software</p>";

}

回答:

你在你的代码中的错字。 PHP中的变量是区分大小写的...

19.  while ($row = mysql_fetch_assoc($query)) 

20. {

21. $dbUserName = $row['UserName'];

22. $dbPassWord = $row['PassWord'];

23. }

24.

25. //check to see if they match!

26. if ($UserName==$dbUsername&&$PassWord==$dbPassWord)

变量上线不匹配就行。

$dbUserName是不一样的$dbUsername

回答:

if ($UserName==$dbUsername <= capitalize $dbUserName) 

{

//YOUR LOGIC

}

回答:

if ($UserName==$dbUsername&&$PassWord==$dbPassWord) 

{

$_SESSION['UserName']=$dbUsername;

$_SESSION['PassWord']=$dbPassWord;

echo "<p>Finished Software</p>";

}

else

{

echo "Incorrect Password";

}

1)。它在其他条件去..所以你可以重复这四个$变量给我吗?从$ _ POST

2)卸下摆臂空间与str_replace函数

回答:

我认为你错了代码时。会话启动后,您不应该将会话销毁。首先,让session_start()开始会话;

session_start(); 

$username = $_POST['username'];

$password = $_POST['password'];

$query = "SELECT * FROM table_name WHERE username = '$username'";

$result = mysql_query($query);

$count = mysql_num_rows($query);

$row = mysql_fetch_assoc($result);

if($count == 0)

{

//if there is no result

}

$dbpassword = $row['password'];

if($dbpassword == $password)

{

//put some session here

}

else

{

//if the password is not match

}

我希望这可以帮助

以上是 登录会话问题 的全部内容, 来源链接: utcz.com/qa/263387.html

回到顶部