私は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()を呼び出す前に出力が生成されません。
誰かが私の問題の原因となっている可能性について考えていますか?
試しました!それは動作していないようです... この関数はまったく問題はありませんが、$ _SESSSIONを問題なく使用します。実際、index.phpは$ _SESSIONへの完全なアクセス権を持っていますが、何とかhome.phpには何もありません。 – TanguyH
<?php session_start(); ?> // <?phpタグを開いて、この関数をhome.phpファイルの最初の行に置き、ショットを付けます。 –
それは私がちょうど試みたものですが、何らかの形で行を追加したり削除したりすると、セッションは再びアクティブになっているようです(session_start()が使用されていない状態)。私はちょうど起こったことを理解していない、おかげで! ;) – TanguyH