2016-09-24 7 views
-1

私はApacheを主にphpで開発し、セッションは正常に機能し、Apacheサーバーを停止してから1週間後に作業を開始しました。

これは私の問題です:

のindex.php

<?php 
    include_once 'backend/login.php'; // DB connect + functions   
    include_once 'menu.php';   // menu include 
    check_logout();      // check if user logged out 
?>  
<?php 
    include_once 'widgets/widgets.php'; // widgets : login, agenda, events, languages 
    include_once 'footer.php';   // footer 
?> 

だから基本的にこれらは私のページのphpの部品である(残りはHTMLです)。バックエンド/ログインにはログイン機能が含まれています(そのファイル自体には、DBへのログインとそれに続くsession_start()も含まれます)。 index.phpの上のログインが(フォームがウィジェット/ widgets.phpに隠されている)が有効である

home.php

<?php 
     include_once 'backend/login.php';   // connect to DB, login functions 
     include_once 'backend/load_feed.php';  // feed functions   
     include_once 'menu.php';     // include main menu 
     ?> 
     <script> 
      alert("<?php echo $_SESSION['first_name']; ?>"); 
     </script> 
     <?php   
     check_login();        // ensure user is logged in 
    ?> 

。 window.locationを home.phpに変更します。問題は、$ _SESSIONにログイン時に保管された情報が含まれていないことです。

dbconnect.php

<?php 
/* 
remote script used to conenct to the database 
*/ 
$servername = "localhost"; 
$username = "root"; 
$password = "root"; 
$dbname = "DB"; 

// create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 

// check connection 
if($conn->connect_error){ 
    die("Connection failed : " . $conn->connect_error); 
} 
session_start(); 
?> 

これは、それが正しく機能するデータベースに接続するために使用するスクリプト、(私は、ユーザーの資格情報の有効性を検証することができる午前)

補完情報であります:
- ログインしたときに保存されたすべての情報が$ _SESSIONに格納されていることを確認しました(情報は関数のスコープ内にあります)。
- $ _SESSIONを必要とするすべてのファイルには、のdbconnect.phpファイルが含まれているため、$ _SESSIONにアクセスできます。
- session_start()を呼び出す前に出力が生成されません。

誰かが私の問題の原因となっている可能性について考えていますか?

答えて

1
<?php 
    session_start(); 
    include_once 'backend/login.php'; 
    include_once 'menu.php'; 
    check_logout(); 
    include_once 'widgets/widgets.php'; 
    include_once 'footer.php' 
?> 

お試しください!

私はこれがうまくいきます。&また、あなたが上記のファイルにsession_start()を呼び出していないことを確認してください。実際には問題はありませんが、試してみる。

また、この関数が問題を起こしているとも言われているように、エラーのスナップショットを投稿してください。エラーを理解するともっと役立ちます。

+0

試しました!それは動作していないようです... この関数はまったく問題はありませんが、$ _SESSSIONを問題なく使用します。実際、index.phpは$ _SESSIONへの完全なアクセス権を持っていますが、何とかhome.phpには何もありません。 – TanguyH

+0

<?php session_start(); ?> // <?phpタグを開いて、この関数をhome.phpファイルの最初の行に置き、ショットを付けます。 –

+0

それは私がちょうど試みたものですが、何らかの形で行を追加したり削除したりすると、セッションは再びアクティブになっているようです(session_start()が使用されていない状態)。私はちょうど起こったことを理解していない、おかげで! ;) – TanguyH

0

私はthisに応じて)あなたが最初(でsession_startを呼ぶべきだと思いますが、私はかなり確実

+0

私はすでに試しましたが、何も変更しません。そして、dbconnectの最後にsession_start()が呼び出され、他のインクルードにインクルードされているので、結果は同じであると想像します。 – TanguyH

0

ないですあなたはhome.phpの初めにsession_start()関数を呼び出して、もう一度試してくださいする必要があります。

+0

動作しません(最初に試したことの1つでした) – TanguyH

0

インクルードファイルの前に、文書の先頭にsesion_start();を追加することができます。

関連する問題