我在MySQL数据库中的数据是
'1','Demo','Demo1','测试'
在线'echo $ row [2]'它给出错误“通知:未定义的偏移量:2”
任何解决方案.. ?? PHP代码如下...
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<?php
$uname=$_POST['txtUserName'];
$passwd=$_POST['txtPassword'];
$query="SELECT usernm,passwd FROM tbuserdemo WHERE usernm='$uname'";
$result= mysql_query($query);
$rows= mysql_num_rows($result);
if($rows==0)
{
echo "User Name is Wrong";
}
else
{
$row=mysql_fetch_row($result);
$encpasswd= encrypt(1, $passwd);
if ($row[1]==$encpasswd)
{
echo "Welcome $uname";
echo $row[2];
}
else
{
echo "Password is Wrong";
}
}
?>
</body>
</html>
答案 0 :(得分:3)
您只从数据库SELECT usernm,passwd
获取2个字段,因此您应该只有$row[0]
和$row[1]
的值。数组索引从零开始。
答案 1 :(得分:0)
欢迎编程。许多语言都这样做,数组索引从0
NOT 1
开始。所以你需要做
if ($row[0]==$encpasswd)
{
echo "Welcome $uname";
echo $row[1];
}
答案 2 :(得分:0)
它是$row[0]
和$row[1]
。请记住,PHP的数组是从零开始的。要获得$ row [2],您必须在查询中选择 THREE 字段。
答案 3 :(得分:0)
改为:
if ($row[0]==$encpasswd)
{
echo "Welcome $uname";
echo $row[1];
}
else
{
echo "Password is Wrong";
}
}
?>
数组中的第一个索引位于位置0(不是1)
答案 4 :(得分:0)
数组以0开头。
试试这个:
if ($row[0]==$encpasswd)
{
echo "Welcome $uname";
echo $row[1];
}
else
{
echo "Password is Wrong";
}
答案 5 :(得分:0)
您可能想要了解SQL Injection次攻击。至少如果您打算在开发/测试环境之外发布该代码。