【问题标题】:Allowing script to function with SESSION authentication允许脚本使用 SESSION 身份验证运行
【发布时间】:2013-03-18 13:17:31
【问题描述】:

我有一个 php 脚本,如果文本框表单中的条目与数据库中的任何内容匹配,则创建一个会话:

 $name= $_POST['name']; 

 $db= new  PDO('sqlite:people.db'); 
 $query = "SELECT * from names WHERE name= '$name'";
 $results = $db->Query($query)->fetchAll(); 

 $allow= count($results); 

 if ( $table  > 0 )
    {
    session_start();
    $enable= 1;
    $_SESSION['enabled'] = $enable;
    }

另一个脚本是这样的:

 if (isset($_SESSION))
{

 $code= $_POST['code']; 
 $db= new  PDO('sqlite:Properties1.db'); 
 $query = "SELECT * from properties WHERE postcode = '$postcode'";
 $results = $db->Query($query)->fetchAll(); //fetchAll puts results into an array

  $allow= count($results); //count the rows in the results array

 if ( $rowcount > 0 )
 {
 do this
 }

但第二个脚本没有接听会话

【问题讨论】:

  • 调试并确保 session_start 确实被调用了。
  • 什么是 $table 和 $rowcount?

标签: php sqlite session session-storage


【解决方案1】:

if (isset($_SESSION)) 这将始终返回 1 并且 if 条件将始终执行。因为$_SESSION超级全局 并且它总是通过脚本设置。

尝试如下检查,

if (isset($_SESSION['enabled']))
{

【讨论】:

  • 你是否也必须使用cookie,因为我没有放那个
猜你喜欢
  • 1970-01-01
  • 2015-12-25
  • 2012-12-09
  • 1970-01-01
  • 1970-01-01
  • 2014-04-04
  • 1970-01-01
  • 2018-04-30
  • 1970-01-01
相关资源
最近更新 更多