我有一个用户可以登录的网站.我试过:
当用户登录时,我将其会话设置为userlogin,但不会显示其用户名.
This is the tutorial I used
解决方法:
所以设置它:
//Fetch the username from the database
//The $login and $password I use here are examples. You should substitute this
//query with one that matches your needs and variables.
//On top of that I ASSUMED you are storing your passwords MD5 encrypted. If not,
//simply remove the md5() function from below.
$query = "SELECT name FROM users WHERE login='" . mysql_real_escape_string($login) . "' AND password='" . md5($password) . "'";
$result = mysql_query($query);
//Check if any row was returned. If so, fetch the name from that row
if (mysql_num_rows($result) == 1) {
$row = mysql_fetch_assoc_assoc($result);
$name = $row['name'];
//Start your session
session_start();
//Store the name in the session
$_SESSION['userlogin'] = $name;
}
else {
echo "The combination of the login and password do not match".
}
?>
并在另一页上检索它:
//Start your session
session_start();
//Read your session (if it is set)
if (isset($_SESSION['userlogin']))
echo $_SESSION['userlogin'];
?>
编辑
有关如何创建loginform的更多信息..您说您尝试设置$_SESSION [‘user’]但这不起作用.
所以只要确保你实际上做了session_start();在那之前.如果你这样做,一切都应该有效.除非您为会话分配一个空变量.因此,双重检查您分配的变量实际上包含一个值.喜欢:
session_start();
echo "Assigning session value to: " . $user;
$_SESSION['user'] = $user;
?>
在教程中,您将我链接到他们正在做的事情:
$_SESSION[user]=$_GET[userlogin];
这意味着他们将从他们在此创建的登录表单中分配一个值:
function loginform() {
print "please enter your login information to proceed with our site";
print ("
username | |
password |
print "";
print "
register now!
";}
在那里你看到< input type ='text'name ='userlogin'cize'20'>.但是没有< form>< / form>在这个表单周围标记..所以这将不会正确发布.所以你应该做的是以下几点:
Username:
Password:
此表单将表单发布回index.php,其中userlogin和密码为$_POST变量.
在index.php中,您可以执行以下操作:
//Get variables:
$login = mysql_real_escape_string($_POST['userlogin']);
$pass = mysql_real_escape_string($_POST['password']);
//Check your table:
$query = "SELECT userlogin FROM users WHERE userlogin = '" . $login . "' AND password='" . $pass . "'";
$result = mysql_query($query);
//Check if this user exists:
if (mysql_num_rows($result) == 1) {
echo "User exists!";
//Store the login in the session:
session_start();
$_SESSION['userlogin'] = $login;
}
else {
echo "Unknown user";
}
?>
如果不为你编写完整的代码,我无法更清楚.所以我希望这会对你有所帮助.
标签:php,session-variables,session
来源: https://codeday.me/bug/20190714/1462128.html