Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查两个php会话变量username和下拉列表(如果它们在php中匹配)?_Php_Forms_Session - Fatal编程技术网

如何检查两个php会话变量username和下拉列表(如果它们在php中匹配)?

如何检查两个php会话变量username和下拉列表(如果它们在php中匹配)?,php,forms,session,Php,Forms,Session,登录后,我为用户存储会话中的用户名和用户id。登录后,用户进入他/她的页面,他们选择自己的名称,以便查看他们在评估中的统计分数。此名称也存储在会话中。但我不知道如何控制用户能看到什么。我不知道怎么做 loginForm.php <html> <head><link rel="stylesheet" type="text/css" href="../../statistics/style.css"> </head> <body> <

登录后,我为用户存储会话中的
用户名
用户id
。登录后,用户进入他/她的页面,他们选择自己的
名称
,以便查看他们在评估中的统计分数。此
名称
也存储在会话中。但我不知道如何控制用户能看到什么。我不知道怎么做

loginForm.php

<html>
<head><link rel="stylesheet" type="text/css" href="../../statistics/style.css">
</head>
<body>
<div id="login">
        <h3>Login</h3>
            <form action = "login.php" method = "POST">
                <label>Username: </label> <br/>
                <input class="inputfield"  type="text" name="username" size="20"/> <br /><br/>
                <label>Password: </label> <br/>
                <input class="inputfield" type="password" name="password" size="20"/> <br /><br/>
                <input type="submit" value="Login" name="submit"/>
                <input type="reset" name="reset" value="Clear"/>
            </form>
            <!--End of Login-->
        </div>
</body>
</html>

登录
用户名:


密码:


login.php

<?php

  require ('connect.php');
  if (isset($_POST['submit'])) {
    $username = $_POST['username'];
    $password = $_POST['password'];

   if ($username && $password) {
        $check = mysql_query("SELECT * FROM users WHERE username='".$username."' AND password= '".$password."'");
         $rows = mysql_num_rows($check);


    if(mysql_num_rows($check) != 0){

        session_start();
        $run_login =mysql_fetch_array($check);
        $uid = $run_login['id'];
        $_SESSION['uid'] = ['uid'];
        $_SESSION['username']=$_POST['username'];
        header("location:../../statistics/home.php");

     }
      else{
      die("Could not find the Username or password.");
   }
 }
else {
     echo "Please fill all the fields.";
   }
 }
?>
结束问题的回答注释:(添加一些内容)


将用户名
$\u POST
数组分配给用户名
$\u会话
数组,然后将会话用户名数组传递到
where
子句中

现在,如果要在这两个/所有文件中使用会话,首先需要在会话数组上使用conditonal
isset()

您的POST-to-SESSION数组的外观如下所示:

<?php 
session_start();

// $_POST['username'] = "John"; // test only
$username = $_POST['username'];
$_SESSION['user'] = $username;
$session_user = $_SESSION['user'];

echo $session_user; // test echo

脚注:

  • 您应该添加
    exit在每个头之后,否则代码可能要继续执行;通常是最好的

  • 考虑使用,或者,它们更安全


将用户名
$\u POST
数组分配给用户名
$\u会话
数组,然后将会话用户名数组传递到
where
子句中。请它们不再得到维护,而是在使用。相反,学习并使用。@Fred-ii-它有点模糊,你能更好地解释它吗?对于
将username$\u POST数组分配给username$\u SESSION数组
的意思是这样的“$\u SESSION['username']=$\u POST['username'];”?我应该在哪个文件中对'logistic.php'或'login.php'进行这些更改?这正是我的意思。@Fred-ii-我举了两个'where'子句,一个在'login.php'中,另一个在'logistic.php'中。在这两种情况中,我在哪一种情况下传递会话用户名?或者我应该将它同时传递给这两个节点吗?我应该删除
$run\u login=mysql\u fetch\u数组($check)
$uid=$run\u登录['id']`$\u会话['uid']=['uid'];`<代码>$\u会话['username']=$\u帖子['username']
login.php
?@mapr18试试看。
<form name="myform" action="lecturer.php" method="POST" >
<b>Lecturers:<b/>
<select name="lecturer">  
<option value="Choose">Please select..</option>
<?php
    $sql=mysql_query("SELECT lec_name FROM lecturer");

    while($row=mysql_fetch_array($sql)){

        echo "<option value='".$row['lec_name']."'>".$row['lec_name']."</option>";
    }
    ?> 
</select><br/><br/>

<b>Year:<b/>
<select name="year"> 
<option value="Choose">Please select..</option>
<option value="2005">2005</option> 
<option value="2006">2006</option>
<option value="2007">2007</option></select><br/><br/>


<br/>
<input type="submit" name="submit" value="Submit">
<input type="reset" name="reset" value="Clear">

</form>
<?php 
session_start();

// $_POST['username'] = "John"; // test only
$username = $_POST['username'];
$_SESSION['user'] = $username;
$session_user = $_SESSION['user'];

echo $session_user; // test echo
<?php 
session_start();
if(isset($_SESSION['user'])){...}