【问题标题】:Restrict a content using session control in php使用 php 中的会话控制来限制内容
【发布时间】:2013-07-16 11:05:44
【问题描述】:

您好,阅读网站和论坛,我了解到,可以使用会话来阻止内容。我有一个 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 } ?> 

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

【问题讨论】:

  • $passindex.php 中来自哪里?
  • 您的查询中有漏洞,您直接在 sql 查询中使用用户输入。请调查使用mysql_real_escape_string() 以防止您的软件中存在 SQL 注入漏洞
  • 停止使用 mysql_* 。切换到 PDO 或 mysqli_* 。不推荐使用 Mysql

标签: php html session


【解决方案1】:

试试这个 -

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

而不是

if( $_SESSION['user'] != $name )

【讨论】:

    【解决方案2】:

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

    1) 使用用户 ID,例如 1、2、3... 并向其添加主键,然后使用该 ID 执行诸如授予访问权限之类的操作。

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

    if (md5($_POST['pass']) == $pass) { 
    //some code
    };
    

    【讨论】:

    • 尽管它们几乎是很好的建议。这没有回答问题。
    • 主要是他要把$pass的值转移到我指定的index.php..
    • 你甚至不知道$pass(现在是$name)在index.php中是什么。你怎么能这样假设?
    • 重点仍然存在。我们没有足够的信息来回答。你是假设
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-15
    • 2016-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多