php check db session user is“banked”不返回true?

j7dteeu8  于 2021-06-18  发布在  Mysql
关注(0)|答案(3)|浏览(271)

我迷路了,请看下面的代码。如果db+table web\u wan.blockaccount中存在列名“isban”等于1的记录,则应该使用php回音“you're banked”。但是,在测试时,在表中添加一行:

id - username - isban

1 myuser 1

什么都没发生,站点正常加载。我检查了连接,没问题+查找栏。有什么想法吗?会议也应该工作,否则我将无法访问该页在所有。

<?php
$query = $con->query("select id from web_wan.blockaccount where isban='1' and username ='.$_SESSION[username].'") or die($con->error);
while($row = $query->fetch_array())
{
    if(!empty($row))
    echo "Your Account denied access to this site!";
    exit;
} 

?>

另外,我是新来php的。

fd3cxomn

fd3cxomn1#

在if语句周围使用花括号。如果不将下一行作为if的一部分运行,则退出将以任何方式发生。

if(!empty($row))
    echo "Your Account denied access to this site!"; // only this if true
    exit; // this runs anyway

if(!empty($row)) {
    echo "Your Account denied access to this site!";
    exit;
} // now both only if true

是的,一定要像贾斯汀在回答中说的那样开始你的疗程。
您还可以放弃while循环:

$row = $query->fetch_array();
9q78igpj

9q78igpj2#

无论何时处理php会话,php文档都必须从以下内容开始:

<?php
session_start();
//any other PHP code

这个 session_start(); 必须在执行任何其他php代码之前调用。

a9wyjsp7

a9wyjsp73#

根据你的建议,我把代码改成了下面的代码,非常好用。我也会像这里提到的人一样,确保“”或其他字符被允许作为用户名,很好的指出,谢谢!

<?php
$query = $con->query("select id from web_wan.blockaccount where isban='1' and username ='$_SESSION[username]'") or die($con->error);
if( $query->num_rows!==0 ){
    echo "Your Account denied access to this site!";
    exit;
} 

?>

相关问题