我正在为我的网站设计一个简单的登录和注销模块,但没有任何安全性。我在Windows XP上使用wamp。我正在创建会话,当用户提交登录信息时,它将重定向到一个process.php文件,该文件将创建会话变量并启动会话。现在,如果登录成功,用户将被重定向到包含头文件的欢迎页面(该页面显示包含登录注销帮助选项的头文件)问题是,在用户成功登录时,头文件不会将登录链接更改为注销。以下代码来自启动登录的process.php。会话管理:在标题中显示用户名的问题
$username = $_POST['username'];
$password = $_POST['password'];
//echo "{$username}:{$password}";
$connection = mysql_connect("localhost","root","");
if(!$connection)
{
die("Database Connection Failed".mysql_error());
}
$db_select = mysql_select_db("tester",$connection);
if(!$db_select)
{
die("Database Selection Failed".mysql_error());
}
$result = mysql_query("SELECT * FROM user",$connection);
if(!$result)
{
die("Database Selection Failed".mysql_error());
}
$q = "SELECT * FROM user " ."WHERE Name='".$username."' AND Password='".$password. "' ";
// Run query
$r = mysql_query($q);
if ($obj = @mysql_fetch_object($r))
{
session_start();
// Login good, create session variables
$_SESSION["valid_id"] = session_id();
$_SESSION["valid_user"] = $_POST["username"];
$_SESSION["valid_time"] = time();
Header('Location: welcome.php');
下面的代码是包含在的welcome.php
</div>
<div id = "userdetail">
<?php
if(isset($_SESSION["valid_user"]))
{
echo($_SESSION["valid_user"]." ");
echo("<a href=logout.php>Logout</a>");
}
else
{
echo("<a href = login.php>Sign In</a>");
}
?>
| Help | Search
<input type = "text" name = "searchbox" value = "" />
</div>
</div>
你的示例代码包含SQL注入错误。 $ q =“SELECT * FROM user”。“WHERE Name ='”。$ username。“'AND Password ='”。$ password。 “'”; 您必须转义参数名称和密码! – 2010-05-03 13:08:42