如果row等于来自url的参数

时间:2016-10-24 06:39:11

标签: php

我的网址我有一个名为uid的参数

在我的SQL中我有

Select * from users Where uid = {$_GET['uid']}

现在我有了我的while循环

while (($row = mysqli_fetch_assoc($result)) != false) {
    $uid = $row['uid'];
}
到目前为止,每件事情都很好。我想要的是,如果数据库中的uid不等于参数重定向中的$ _GET。

if ($uid == $_GET['uid']) {    
        return true;    
    } else {    
        redirect(ROOT_URI);
    }

我想阻止的是修改网址中的uid。如果uid不存在,它将重定向。

4 个答案:

答案 0 :(得分:1)

使用它。我已经包含了一些评论作为对我正在做的事情的解释。

$x = 0; //checker

while (($row = mysqli_fetch_assoc($result)) != false) {
    if($uid == $row['uid']){
      $x = 1; //logic is if there is a match, $x will become 1, else it will stay at 0 value
    }
}

//now check the value of $x

if ($x == 1){
  //there is a match
  return true; 
}
else{
  //there is no match
  redirect(ROOT_URI); 
}

答案 1 :(得分:1)

只需你可以这样做

$rowcount=mysqli_num_rows($result);

if($rowcount != 0)
{
return true;
}
else
{
redirect(ROOT_URI);
}

因为如果uid在表中,mysqli_num_rows不会返回0

答案 2 :(得分:0)

要在PHP中重定向,您可以使用fpe_old_flags = FOR_SET_FPE(0) 功能:

header()

答案 3 :(得分:0)

您的SQL查询错误。试试这个:

Select uid from users Where uid = {$_GET['soldier']}