Php 我的会话忽略数据库结果而不工作

Php 我的会话忽略数据库结果而不工作,php,session,user-permissions,Php,Session,User Permissions,首先,我必须原谅我的英语不好。我需要有关login.php代码的帮助,因为我正在通过会话执行权限系统,但这个名为“$\u session['perms]”的会话不接受数据库值。我花了几个星期寻找答案,但没有成功。所以我在这里呼吁 这是我的登录代码: <html> <head> <meta http-equiv="content-type" content="text/html; charset=windows-1250"> <titl

首先,我必须原谅我的英语不好。我需要有关login.php代码的帮助,因为我正在通过会话执行权限系统,但这个名为“$\u session['perms]”的会话不接受数据库值。我花了几个星期寻找答案,但没有成功。所以我在这里呼吁

这是我的登录代码:

<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=windows-1250">
    <title></title>
    <style>
    .odstavec {
    margin-top: 0px;
    margin-bottom: 0px;
    }
    </style>
    <?php
    $dbc = mysqli_connect('localhost','root','root') or 
           die('could not connect: '. mysqli_connect_error());

    mysqli_select_db($dbc, 'loginsystem') or die('no db connection');

    session_start();

    if(isset($_POST['go'])){

      $usr = mysqli_real_escape_string($dbc, htmlentities($_POST['u_name']));
      $psw = ($_POST['u_pass']);

      $q = "SELECT * FROM members WHERE username='$usr' AND password='$psw' ";  

      $res = mysqli_query($dbc, $q);

      if(mysqli_num_rows($res) == 1){

        $_SESSION['log'] = 'in';
        $_SESSION['username'] = $_POST['u_name'];
        $_SESSION['perms'] = "SELECT $usr FROM members WHERE perms='".$_SESSION['perms']."'";

        header('location:novinky.php');
      } 
      elseif(!$_POST['u_name'] || !$_POST['u_pass']){
      $error = 'Všechna pole musí být vyplněná!';
      }else{    //create an error message
      $error = 'Chybné jméno nebo heslo. Prosím zkuste to znovu';
      }  
    }  //end of isset go
    ?>
  </head>
  <body>
   <form method="post" action="#">
    <p class="odstavec"><label for="u_name">Uživatlské jméno:</label></p>
    <p class="odstavec"><input type="text" name="u_name" value=""></p>

    <p class="odstavec"><label for="u_pass">Heslo:</label></p>

    <p class="odstavec"><input type="password" name="u_pass" value=""></p>

    <p><button type="submit" name="go">Přihlásit</button></p>
   </form>
<!-- A paragraph to display eventual errors -->

odstavec先生{
边际上限:0px;
边缘底部:0px;
}

数据库中的信息是否正确?为了确保改变

 $res = mysqli_query($dbc, $q);

echo$usr.“
”; echo$psw.“
”; echo$q; 退出(); $res=mysqli_查询($dbc,$q);
我认为正在发生的是,您的mysqli\u real\u escape\u字符串和htmlentities正在更改用户字符串,使其不再匹配

如果不明显,请尝试在命令行或phpmyadmin中运行$q,并查看是否会弹出任何错误


正如orique所说,您需要清理您的密码。

$psw=($\u POST['u pass'])上小心SQL注入我做了更多的研究。我需要$\u会话['perms']从数据库中获取值,无需验证。。。
 $res = mysqli_query($dbc, $q);
 echo $usr."<br/>";
 echo $psw."<br/>";
 echo $q;
 exit();
 $res = mysqli_query($dbc, $q);