如何检查两个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
子句中
现在,如果要在这两个/所有文件中使用会话,首先需要在会话数组上使用conditonalisset()
您的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'])){...}