我对mysql表很新,我知道我应该使用PDO或mysqli,但这只是学校的一个例子。
这是我有问题的代码:
while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
if ($uporab != $row['uporabnisko'] || $pass != $row['geslo']){
echo '<script language="javascript">';
echo 'alert("Uporabnisko ime ali geslo ni pravilno! Prosim poskusi znova.")';
echo '</script>';
header('Location: index1.php');
}
else{
header('Location: Stranzaindexom.html');
}
}
当我使用“while”时,我会错误弹出5次(我认为这取决于数据库中表中有多少个值),但是当我不使用while时,我只会检查第一个id(第一个在表中..我检查了其他答案,但我没有找到合适的.. 有帮助吗?
PS:与数据库的连接是成功的,并且获取表的值是好的..所以我的问题只是在这里。
答案 0 :(得分:1)
可能你可以试试这个
为什么我们需要选择所有记录并检查所有记录,最好是仅提取必要的记录。
$result = mysql_query("SELECT * name FROM usertable WHERE uporabnisko='$uporab' AND geslo = '$pass'");
if($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
echo '<script language="javascript">';
echo 'alert("Uporabnisko ime ali geslo ni pravilno! Prosim poskusi znova.")';
echo '</script>';
echo "<script language='javascript'> window.location='index1.php'; </script>";
}
else
{
echo "<script language='javascript'> window.location='Stranzaindexom.html'; </script>";
}
答案 1 :(得分:0)
反思检查肯定的情况并在其他地方发出警报,如:
if ($uporab == $row['uporabnisko'] && $pass == $row['geslo']){
header('Location: Stranzaindexom.html');
exit();
} else {
echo '<script language="javascript">';
echo 'alert("Uporabnisko ime ali geslo ni pravilno! Prosim poskusi znova.")';
echo '</script>';
}
或者使用sql上的用户名和密码并给出限制1,这样你就不需要一段时间了,因为garanteus结果集将是1行或0行:
mysql_query("SELECT * FROM users WHERE username='".$escapedUsername."' AND password='".$escapedPassword."' LIMIT 1");