你好,阅读网站和论坛我了解到,使用会话可以阻止内容。我有一个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 } ?>
所以,我的代码在某个地方出错了,看不到"你好,您有会话存在"。如果能再次提供帮助,我们将不胜感激。(代码可以查看一半,很抱歉)
试试这个-
if( !isset( $_SESSION[ "user" ] ) )
而不是
if( $_SESSION['user'] != $name )
在login.php中,您必须以某种方式将$_POST['name']
的值作为$name
传递给index.php,而且将会话作为密码确实是个坏主意,一些提示:
1) 使用一个用户id,比如1,2,3…并添加一个主键,然后使用该id来执行诸如授予访问权限之类的操作。
2) 注册时md5您的通行证,并像一样检查
if (md5($_POST['pass']) == $pass) {
//some code
};