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

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

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

  1. id - username - isban
  2. 1 myuser 1

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

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

另外,我是新来php的。

fd3cxomn

fd3cxomn1#

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

  1. if(!empty($row))
  2. echo "Your Account denied access to this site!"; // only this if true
  3. exit; // this runs anyway
  4. if(!empty($row)) {
  5. echo "Your Account denied access to this site!";
  6. exit;
  7. } // now both only if true

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

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

9q78igpj2#

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

  1. <?php
  2. session_start();
  3. //any other PHP code

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

a9wyjsp7

a9wyjsp73#

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

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

相关问题