所以我正在为PHP建立一个网站
<?php
if(!empty($_SESSION['LoggedIn']) && !empty($_SESSION['Username'])) {
echo "<h1>Member Area</h1>";
echo "<p>Thanks for logging in! You are <b>" . $_SESSION['Username'] . "</b> and your email address is <b>" . $_SESSION['EmailAddress'] . "</b>.</p>";
} elseif(!empty($_POST['username']) && !empty($_POST['password'])) {
$username = mysql_real_escape_string($_POST['username']);
$password = md5(md5(mysql_real_escape_string($_POST['password'])));
$checklogin = mysql_query("SELECT * FROM users WHERE Username = '".$username."' AND Password = '".$password."'");
if(mysql_num_rows($checklogin) == 1) {
$row = mysql_fetch_array($checklogin);
$email = $row['EmailAddress'];
$_SESSION['Username'] = $username;
$_SESSION['EmailAddress'] = $email;
$_SESSION['LoggedIn'] = 1;
echo "<center>";
echo "<h1>Success</h1>";
echo "<p>We are now redirecting you to the member area.</p>";
echo "<meta http-equiv='refresh' content='2;login.php' />";
echo "</center>";
} else {
echo "<h1>Error</h1>";
echo "<p>Sorry, your account could not be found. Please <a href=\"login.php\">click here to try again</a>.</p>";
}
} else {
echo "<center>";
echo "<h1>Login</h1>";
echo "<p>Thanks for visiting! Please either login below, or <a href=\"register.php\">click here to register</a>.</p>";
echo "<form method=\"post\" action=\"login.php\" name=\"loginform\" id=\"loginform\">";
echo "<label for=\"username\">Username:</label><input type=\"text\" name=\"username\" id=\"username\" /><br />";
echo "<label for=\"password\">Password:</label><input type=\"password\" name=\"password\" id=\"password\" /><br /> ";
echo "<input type=\"submit\" name=\"login\" id=\"login\" value=\"Login\" />";
echo "</form>";
echo "</center>";
}
?>
因此,基本上,页面加载并检查用户是否已登录,如果已登录,则加载成员区域。如果没有,它会检查用户是否正在尝试登录,如果没有,它会显示登录表单。我的问题是,每次我或其他人尝试登录时,页面都会重新加载,但不会将他们带到“成员”区域,而是将他们带回到登录表单。。。另外,在文档的顶部有一行:
编辑:注册用户的代码位于不同的php文件中。再一次,基地。带有
session_start()的php文件
包含在文档的顶部:if(!empty($\u POST['username'])
$checkusername = mysql_query("SELECT * FROM users WHERE Username = '".$username."'");
if(mysql_num_rows($checkusername) == 1) {
echo "<h1>Error</h1>";
echo "<p>Sorry, that username is taken. Please go back and try again.</p>";
} else {
$registerquery = mysql_query("INSERT INTO users (Username, Password, EmailAddress) VALUES('".$username."', '".$password."', '".$email."')");
if($registerquery) {
echo "<h1>Success</h1>";
echo "<p>Your account was successfully created. Please <a href=\"login.php\">click here to login</a>.</p>";
} else {
echo "<h1>Error</h1>";
echo "<p>Sorry, your registration failed. Please go back and try again.</p>";
}
}
} else {
echo "<h1>Register</h1>";
echo "<p>Please enter your details below to register.</p> ";
echo "<form method=\"post\" action=\"register.php\" name=\"registerform\" id=\"registerform\">";
echo " <label for=\"username\">Username:</label><input type=\"text\" name=\"username\" id=\"username\" /><br /> ";
echo " <label for=\"password\">Password:</label><input type=\"password\" name=\"password\" id=\"password\" /><br /> ";
echo " <label for=\"email\">Email Address:</label><input type=\"text\" name=\"email\" id=\"email\" /><br />";
echo " <input type=\"submit\" name=\"register\" id=\"register\" value=\"Register\" />";
echo "</form>";
}
?>
对于你想把会话转移到的每一页,你必须这样做
session_start();
即使会话已经创建。
假设您想要一个注销页面,当您打算在类似注销的页面上注销用户时。php,您必须具备:
session_start();
session_destroy();
session_start();是破坏会话所必需的
始终确保session\u start()
也位于所有其他相关页面的顶部。我会使用isset
来代替!空的
。
session_start();
if(isset($_SESSION['LoggedIn']) && isset($_SESSION['Username'])) {
嗨,当我使用Selenium IDE记录一些测试时,我遇到了一个以前没有显示的奇怪问题。 > 打开Selenium IDE时,它不会自动获取url。 这是关键问题:一旦我停止录制或播放也会停止录制的测试用例,当我再次单击录制按钮时,它不再记录任何额外的操作。 我不确定这是Selenium IDE的问题还是Firefox的问题。我使用的是Selenium IDE 1.9.1和Firefox 17,当
问题内容: 我一直对会话在内部的工作方式感兴趣,但是我对C的知识很少(并且不确定在PHP源代码中的位置)。 这是我目前对会话的了解: 当您启动会话时,将为用户分配一个会话ID,该ID存储在cookie中。 会话数据保存(通过)后,将与相关的会话ID和到期时间一起存储在文件系统中。 它是否正确?另外,创建会话ID的方法是什么?我认为这是基于时间的,但是如果两个用户同时发送请求该怎么办?内部采用什么方
我有一台远程计算机,正在尝试使用以下命令登录postgres数据库(通过
目前,在我们的spring boot应用程序中,我们基于HeaderHttpSessionStrategy(基于会话的身份验证)对用户进行身份验证。尝试添加remember me功能,但是spring没有将用户存储到persistent_logins,或者cookie也没有在客户端创建。 我已经补充了 我们使用Angular 6作为前端客户端,所以在认证endpoint的Post方法中发送reme
我有一个启用了Spring安全的项目。我已经使用运行良好的登录表单实现了记住我。但是我在登录表单上也有来自google/facebook的社交登录,它们运行良好。问题是他们不记得用户。有没有办法设置类似的“记住我”功能? 正常登录页面的当前spring配置:
我正在尝试编写一个Java代码,它可以ssh到Unix服务器并重置用户密码。所以我尝试实现SO中的一些代码。 如。 通过JavaJSch通过ssh向远程服务器发送命令 从字符串中获取命令(密码)并设置为InputStream到Java(JSCH)中的Unix服务器 使用JSch,我按照此链接获取重置用户密码的正确命令。 当我试着运行这段代码时,它似乎没有重置用户的密码。因此,我尝试直接从Unix的