PHP仅选择第一行?

晦涩

我有一个为学校制作的快速登录表格,唯一的问题是,当我尝试登录时,当我想登录第一个用户时,一切运行正常(用户名:hbutler密码:password),但是当我尝试登录到其他用户时帐户,如果页面设置不正确,我会刷新页面设置,这是我的代码:

<?PHP

//Create the connection…
//("where the database is", 'Database login' , 'database password' , "Database name")
$con=mysqli_connect("", 'root', 'root', "Social");

//Check our connection…
if (mysqli_connect_errno($con))
{
    echo " Sorry Mate";
}
$username = $_POST['username'];
$password = $_POST['pawd'];
$result = mysqli_query($con, "SELECT * FROM User_info");
$row = mysqli_fetch_array($result);
$value = $row['username'];
if($value == "$username")
{
    $result = mysqli_query($con, "SELECT * FROM User_info WHERE username ='$username'");
    $row = mysqli_fetch_array($result);
    $value = $row['password'];
    if($value == "$password")
        {
        $sql=("UPDATE user_check SET user = '1', name = '$username'");
        header( 'Location: feed.php' ) ;
        }
        else
        {
        header( 'Location: social.php' ) ;
        }
}
else
{
header( 'Location: social.php' ) ;
}
if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
mysqli_close($con);
?>

这从上一页获取表单数据,我不知道为什么会这样,并且我尝试将php更改为:

$result = mysqli_query($con, "SELECT username FROM User_info");
$row = mysqli_fetch_array($result);
if($row == "$username")

但这没有任何建议吗?

圣经伊斯梅尔

问题在于,在您执行第一个查询后,要从db获取信息,您仅使用表的第一行,

$row = mysqli_fetch_array($result);

然后将其与提交的用户名进行比较,这就是为什么您不能使用任何其他用户名登录的原因,解决方案是在第一个查询中添加WHERE子句,

$result = mysqli_query($con, "SELECT * FROM User_info WHERE username ='".$username."'");

然后比较比较容易的密码,但是仍然有更好的方法来进行身份验证。但以您的示例为例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL仅选择第一行

来自分类Dev

CSS选择器仅选择第一行

来自分类Dev

MySQL选择不同的ID并仅选择第一行

来自分类Dev

MySQL选择不同的ID并仅选择第一行

来自分类Dev

PHP-基本选择查询仅返回mysql数据库的第一行

来自分类Dev

MYSQL:左仅连接第一行或选择不同

来自分类Dev

选择最小值并仅返回第一行

来自分类Dev

php while循环仅更新第一行结果

来自分类Dev

PHP脚本仅跳过第一行

来自分类Dev

仅多次打印第一行

来自分类Dev

循环仅返回第一行

来自分类Dev

MYSQL IN仅返回第一行

来自分类Dev

仅提取第一行?

来自分类Dev

如何从第一列的所有列中仅选择一行

来自分类Dev

选择每个MRN的第一行

来自分类Dev

选择每个MRN的第一行

来自分类Dev

合并具有多个匹配项的数据帧时,仅选择第一行

来自分类Dev

无论如何,Doctrine仅选择第一行数据

来自分类Dev

如何仅选择第一行和具有相同值的多行中的特定列?

来自分类Dev

SQL:从词法排序表中仅选择第一行

来自分类Dev

jqgrid每组仅选择一行

来自分类Dev

每个类别仅选择一行

来自分类Dev

XSLT:仅选择最后一行

来自分类Dev

PHP带有编辑/删除模式的while循环仅返回第一行中的ID

来自分类Dev

PHP / MYSQL仅更新具有定义值的第一行

来自分类Dev

jQuery Show / Hide仅适用于php循环的第一行

来自分类Dev

PHP带有编辑/删除模式的while循环仅返回第一行中的ID

来自分类Dev

为什么我的脚本仅获取php表的第一行?下面是我的代码

来自分类Dev

sed从php第一行删除