0

テキストボックスフォームへのエントリがデータベース内の何かと一致する場合にセッションを作成する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
 }

しかし、2 番目のスクリプトはセッションを取得しません

4

1 に答える 1

0

if (isset($_SESSION))これは常に 1 を返し、if 条件は常に実行されます。$_SESSION非常にグローバルであり、スクリプト全体で常に設定されているためです。

以下のように確認してみてください。

if (isset($_SESSION['enabled']))
{
于 2013-03-18T05:17:31.413 に答える