2017-05-12 7 views
0

私はリンク "welcome.php?language = english"でページにリダイレクトしています。ウェブページにリダイレクトされないのはなぜですか?

しかし、セッションの宣言の下に 'confirm_patient_logged_in()'という関数を置くと、「ウェブサイトが見つかりません」と表示されます。この関数がSession宣言の上に置かれていると、 'login.php'にリダイレクトされます。

誰でもこの背後にある理由を教えてもらえますか?

Welcome.php

<?php require_once("../../includes/session.php"); ?> 

<?php confirm_patient_logged_in(); ?> //WORKING HERE 

<?php 

if(isset($_GET["language"])){ 
    if($_GET["language"] == "english"){ 
     $_SESSION["language"] = "english"; 
    }else{ 
     $_SESSION["language"] = "hindi"; 
    } 
} 

?> 

<?php confirm_patient_logged_in(); ?> // NOT WORKING HERE 

機能:

function confirm_patient_logged_in(){ 
     if(!patient_logged_in()){ 
     redirect_to("login.php"); 
    } 
} 

function redirect_to($new_location){ 
    header("Location: " . $new_location); 
    exit; 
} 

patient_logged_in()をチェックし、ユーザーがログインしている場合

+0

'redirect_to()'関数の詳細を提供し、pingしてください。 – mertyildiran

+0

私は答えを加えました。私の答えを更新できるので、あなたのケースではないかどうか見てください。 – mertyildiran

+0

セッションは既にsession.phpで開始されています – Observer

答えて

1

かどうか、あなたが追加するのを忘れように思えますsession_start();を使用する前に$_SESSION変数:

<?php 

require_once("../../includes/session.php"); 

session_start(); 

if(isset($_GET["language"])){ 
    if($_GET["language"] == "english"){ 
     $_SESSION["language"] = "english"; 
    }else{ 
     $_SESSION["language"] = "hindi"; 
    } 
} 

confirm_patient_logged_in(); // SHOULD WORK 

?> 
だからそれが欠けている session_start();は、エラーの原因となったが、あなたはおそらく display_error iniファイルのphp.iniが無効になっているエラーを見ることができなかった、あなたは ウェブサイトは、ブラウザ上通知が見つからなかっなっていました。

関連する問題