2016-12-19 10 views
2

私はスリムフレームワークを初めて使用しています。私はスリムなフレームワークでセッションする必要があります。私はスリムなフレームワークでネイティブPHPセッションを使用しています。スリムフレームワークのネイティブセッションの使用

スリムがインスタンス化される前に、私はindex.phpの中でこの行を追加しました:

<?php 
session_cache_limiter(false); 
session_start(); 

そして、私は以下のようにURLにデータを挿入してリダイレクトされる中で定義されたルートがあります。

$app->post('/users', function()use($app) { 
    $useradd = new \app\User(); 
    $session = new \app\Session(); 

    $data = $useradd->addUsers(); 

    if($session->getId('useraddsuc')) { 
     $app->response->redirect('../templates/user?success'); 
    } else { 
     $app->response->redirect('../templates/user?fail'); 
    } 
}); 

、セッションは以下のようにaddUsers方法で設定されています

function addUsers() { 
     try { 
      $db = new \app\Config(); 

      $name = $db->escape($_POST['name']); 
      $email = $db->escape($_POST['email']); 
      $date_created = date("Y-m-d H:i:s"); 
      $tmp_id = $db->random_id(8); 


$sql = "INSERT INTO app_user (user_name, user_email, user_role, user_date_create, user_tmp_id, user_date_modified) VALUES ('$name','$email','store_admin','$date_created','$tmp_id','$date_created')"; 

      $query = $db->insertQuery($sql); 
      $session = new \app\Session(); 
      $session->setId('useraddsuc', 'user account added successfully'); 
     } 
     catch(Exception $e) { 
      echo $e; 
     } 
    } 

セッションが設定されているときに、その正しいパスにリダイレクトされます。 リダイレクト後にURLパスのセッション変数にアクセスできませんでした。 templates/user/index.phpでは、addUsersメソッドで設定されたセッション変数にアクセスできません。下のコードはtemplates/user/index.phpのセッションをチェックするために書かれていますが、これは動作しません。親切に助けてください! templates/user/index.php

<?php if(isset($_SESSION['useraddsuc'])) { ?> 
    echo "User added successfully!!" 
    <?php } ?> 

答えて

1

でセッションをチェックする

コードは答えを得ました。下の行を追加するとセッションが検出されます。

<?php @ob_start(); 

if(session_status()!=PHP_SESSION_ACTIVE) { 
session_start(); 
} 

if(isset($_SESSION['useraddsuc'])) {  
echo $_SESSION['useraddsuc']; 
} 

?> 
関連する問題