验证数据库中的值

时间:2014-09-08 08:54:47

标签: php mysql database verify

我对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:与数据库的连接是成功的,并且获取表的值是好的..所以我的问题只是在这里。

2 个答案:

答案 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");