Php 验证数据库中的值
我对mysql表很陌生,我知道我应该使用PDO或mysqli,但这只是学校的一个例子 以下是我的问题代码:Php 验证数据库中的值,php,mysql,database,verify,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("Uporabn
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($row=mysql\u fetch\u数组($result,mysql\u ASSOC)){
如果($uporab!=$row['uporabnisko']| |$pass!=$row['geslo']){
回声';
回音“警惕”(Uporabnisko ime ali geslo ni pravino!Prosim poskusi znova.);
回声';
标题('Location:index1.php');
}
否则{
标题('Location:Stranzaindexom.html');
}
}
当我使用“while”时,会弹出5次错误(我想这取决于数据库中表中的值有多少),但当我不使用while时,只会检查表中的第一个id(第一行)。。我查过其他答案,但没有找到正确的答案。。
有什么帮助吗
PS:连接到数据库成功,获取表的值有助于。。所以我的问题就在这里 反向思考检查阳性情况,并在其他情况下发出警报,如:
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>';
}
也许你可以试试这个 为什么我们需要选择所有记录并检查所有记录?最好的方法是只提取必要的记录
$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>";
}
$result=mysql_query(“从usertable中选择*名称,其中uporabnisko='$uporab'和geslo='$pass'”);
if($row=mysql\u fetch\u数组($result,mysql\u ASSOC))
{
回声';
回音“警惕”(Uporabnisko ime ali geslo ni pravino!Prosim poskusi znova.);
回声';
echo“window.location='index1.php';”;
}
其他的
{
echo“window.location='Stranzaindexom.html';”;
}
请停止使用mysql,因为它已被弃用,并开始使用mysqli和PDO。调用exit;在标题之后(“位置…”);为了阻止代码在你重定向火影忍者后运行,我告诉过你我是新手,我需要这个简单的学校项目,他们用这种方式教我们。做完这件事后我要学习PDO。Bumperbox:谢谢,这解决了一个问题,但现在我没有看到任何弹出窗口显示“错误的名称/密码”。也许你可以转储$行,看看你是否从DB获得了正确的数据,这不是一个好主意,在标题(“位置”)页面立即重定向之前打印一些内容,这样你可能看不到警报。如果我不重定向,我在WordNo/PasvWord之后得到了空白页面。它没有给出任何错误,但是它不会前进,它让我在第一页上,没有继续。所有参数都不正确。然后使用这个echo“window.location='index1.php';”代码>而不是标题('Location:index1.php')代码>当我尝试window.location时,它会显示错误id/密码的错误(在一个空白页面下面,有一条关于mysql\u fetch\u数组的警告消息,预期为1..boolean…和转发的内容),但当我在弹出窗口上单击“Ok”时,它会将我返回到index1.php
$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>";
}