【发布时间】:2014-04-29 12:44:33
【问题描述】:
我正在使用下面的代码让用户登录。创建新会话后,他们将被重定向到一个新页面 - content.php。我想知道销毁会话并注销用户并将他们重定向回index.php 的最佳方式/正确方式是什么。
<?php
if (isset($_REQUEST['signin'])){
$username = $_POST['username'];
$password = $_POST['password'];
$query = "SELECT * FROM `user` WHERE username='$username' and password='$password'";
$result = mysql_query($query) or die(mysql_error());
$count = mysql_num_rows($result);
if ($count == 1){
$_SESSION['username'] = $username;
header('Location: content.php');
}
else{
echo "Invalid Login Credentials.";
}
}
if (isset($_SESSION['username'])){
$username = $_SESSION['username'];
header('Location: content.php');
}
?>
<form method="post" name="login">
<?php
if (isset($msg) & !empty($msg)) {
echo $msg;
}
?>
<label for="username">Username:</label><br>
<input type="text" name="username"><br>
<label for="password">Password:</label><br>
<input type="password" name="password"><br>
<button type="submit" name="signin">Sign in</button>
</form>
我知道这个脚本有缺陷(例如,未加密的密码),但现在我正在寻找一个简单的脚本来注销。
【问题讨论】:
-
它似乎是今天的主题,但使用
mysql_*已被弃用,很快将被删除。请开始使用PDO。 PS你也容易感染SQL Injects -
或者使用 MySQLi。我个人更喜欢 MySQLi,但 PDO 也是一种选择。