我有一个用户可以登录的网站.我试过:
<?PHP echo $_SESSION ['userlogin']
当用户登录时,我将其会话设置为userlogin,但不会显示其用户名.
This is the tutorial I used
解决方法
你使用它之前有
start the session吗?
所以设置它:
<?PHP //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". } ?>
并在另一页上检索它:
<?PHP //Start your session session_start(); //Read your session (if it is set) if (isset($_SESSION['userlogin'])) echo $_SESSION['userlogin']; ?>
编辑
有关如何创建loginform的更多信息..您说您尝试设置$_SESSION [‘user’]但这不起作用.
所以只要确保你实际上做了session_start();在那之前.如果你这样做,一切都应该有效.除非您为会话分配一个空变量.因此,双重检查您分配的变量实际上包含一个值.喜欢:
<?PHP 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 ("<table border='2'><tr><td>username</td><td><input type='text' name='userlogin' size'20'></td></tr><tr><td>password</td><td><input type='password' name='password' size'20'></td></tr></table>"); print "<input type='submit' >"; print "<h3><a href='registerform.PHP'>register Now!</a></h3>"; }
在那里你看到< input type ='text'name ='userlogin'cize'20'>.但是没有< form>< / form>在这个表单周围标记..所以这将不会正确发布.所以你应该做的是以下几点:
<form method="POST" action="index.PHP"> <label for="userlogin">Username:</label> <input type="text" id="userlogin" name="userlogin" size="20" /> <label for="password">Password:</label> <input type="password" id="password" name="password" size="20" /> <input type="submit" value="login" /> </form>
此表单将表单发布回index.PHP,其中userlogin和密码为$_POST变量.
在index.PHP中,您可以执行以下操作:
<?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"; } ?>
如果不为你编写完整的代码,我无法更清楚.所以我希望这会对你有所帮助.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。