2012-03-17 18 views
1

イム 私の認証システムは、私のXAMPPのサーバー上でうまくいきました、そして今、私は通常PHPセッション変数

をお申し込みするために上に移動するので、私はページなどを開く場合は、問題を抱えてイムvarialbles私のPHPセッションで問題が発生しましたindex.phpのそれはあなたがログインしているかどうかをチェックして、あなたはありませんログインページにあなたを送信した場合、それは に動作していないし、ちょうどテストのために私は$_SESSION['username']をエコーし​​ようと、それは今、ブランク

をターンアップ私はALEXが言ったことをしました。私はこのエラーを受け取りました: ヘッダー情報を変更できません - 既に送信されたヘッダー(/ home7 /に出力が開始されました。 ./public_html/blog.php:4)ここ

ライン22上の/home7/blogboua/public_html/blog.phpのコードです:ちょうどあなたのindex.php<?php内側に設定し

<?php session_start(); ?> 
<html> 
<head> 
<?php 
ini_set('display_errors', 'on'); 
error_reporting(E_ALL); 
/*-----Connect to Database-----*/ 
include ('connect_database_2.php'); 

//check if logged in 
function isLoggedIn() 
{ 
    if(isset($_SESSION['valid']) && $_SESSION['valid']) 
     return true; 
    return false; 
} 


//if the user has not logged in 
if(!isLoggedIn()) 
{ 
    header('Location: login_form.html'); 
    die(); 
} 

/* get username */ 
$username = $_SESSION['username']; 


/*-----Include Navigation------*/ 
include ('frame.html'); 

?> 

答えて

2

Locationヘッダーは、すでに2〜3行目に<html><head>を送信した後に送信しようとしています。あなたはそれをすることはできません。出力が送信される前にヘッダーを送信する必要があります。

あなたのコードがローカルサーバー上でどのように動作していたのか正直に分かりません。

+1

出力バッファリングが設定されていたため、彼のコードはローカルサーバー上で動作しました。しかしこれは正解です。解決策は、 ''を 'include( 'frame.html');の直前に移動するか、' frame.html'の中に入れておく方が良いでしょう。 – DaveRandom

+0

働いてくれてありがとう! – user1107703

1

.. 。

ini_set('display_errors', 'on'); 
error_reporting(E_ALL); 

その後index.php(以前空白のページ)をリロードしてください。

エラーの原因が表示されます。可能であれば、セッションデータを/tmp/に書き込むことができませんでした。

+0

私は私自身のフォルダ – user1107703

1

bluehostのような共有サービスプロバイダを使用している場合は、これらのホスティングプロバイダが古いユーザー/ tmpファイルをガベージコレクション/クリーンアップするため、セッションの永続性について前提に注意する必要があります。 IMOでは、これを回避する最も簡単な方法は、明示的なセッションハンドラを宣言し、セッションコンテキストをMySQL D/Bに保存することです。これを行う方法の例については、PHP session_save_handle rの説明を参照してください。

+0

を持って[OK]を - と、それらにアクセス経由であることを停止するための.htaccessアクセスルールを追加しましたURI、私は願っています:) – user1107703

+0

「私は自分のフォルダにsession.save_pathはを変更」にsession.save_pathはを変更し、エラー、IMのゴナ編集私のポスト – TerryE

関連する問題