-1

您好,阅读网站和论坛我了解到,可以使用会话来阻止内容。我有一个 index.php 页面,用于检查会话并根据条件给出结果:

<?php
session_start();
if( $_SESSION['user'] != $name ) { echo "Sorry,no session found or is expired";
require( 'login.php' );
 }
else {
echo "hello,you have session existing";
 }
?>

我创建了表details

FNAME
LNAME
BDAY
PASS
EMAIL
CODES

login.php 如下:

<?php
$name = $_POST['name'];
$pass = $_POST['pass'];

mysql_connect('mysqlhost','user','pass','userdatabase');

$query=mysql_query(sprintf("SELECT FNAME FROM `details` WHERE FNAME=$name AND PASS=$pass";
mysql_real_escape_string($PASS)));
if($query) { while($row = mysql_fetch_assoc($query)) { $rows[1] = $row; } } 

if( isset($name) || isset($pass) )
{
if( empty($name) ) {
    die ("ERROR: Please enter username!");
}
if( empty($pass) ) {
    die ("ERROR: Please enter
password!");
}
if( $name == $rows[1][FNAME] &&
$pass == $rows[1][PASS] )
{
    session_start();
    $_SESSION['user'] = $_POST['name'];
    header('Location: index.php');
}
else {
    echo "ERROR: Incorrect username
or password!";
   }
}
else {
?>
<html>
<head>
<body>
 //Load login form here & save $SESSION value in "name"
</html>
<?php } ?> 

所以,我的代码在某个地方出错了,看不到“你好,你有会话存在”。再次提供任何帮助将不胜感激。(代码可以查看一半,对此感到抱歉)

4

2 回答 2

0

尝试这个 -

if( !isset( $_SESSION[ "user" ] ) )

代替

if( $_SESSION['user'] != $name )
于 2013-07-16T18:16:17.633 回答
-2

在 login.php 中,您必须以某种方式将$_POST['name']as的值传递$name给 index.php,而且将 session 作为密码确实是个坏主意,一些提示:

1) 使用一个用户 id,比如 1,2,3... 并为其添加一个主键,然后使用该 id 来做一些事情,比如授予访问权限。

2)注册时md5你的通行证,然后检查它

if (md5($_POST['pass']) == $pass) { 
//some code
};
于 2013-07-16T11:16:27.590 回答