2017-04-19 7 views
0

私の問題は、ユーザーがログアウトしたときです。 、ログインページが呼び出されると、インデックスページが表示されますが、URLはindex.phpの中に含ま私のJavaScriptファイルがロードされていないことを意味しているPHPヘッダー(場所: 'index.php')とjavascriptが実行されていません

https://mysite/logout.php 

代わりの

https://mysite/index.php 

を言っています手動でページをリフレッシュせずに再度ログインすることはできません。

リンクは、ログイン

<p class="mc-top-margin-1-5"><a href="logout.php">Logout</a></p> 

後に到達ページhome.phpに私がフォロー(class.userとして、次のログアウトページ(logout.php)

<?php 

    session_start(); 
    require_once 'php/class/class.user.php'; 
    $user = new USER(); 

    if(!$user->is_logged_in()) 
     { 
      $user->redirect('index.php'); 
      exit; 
     } 

    if($user->is_logged_in()!="") 
     { 
     $user->logout(); 
     $user->redirect('index.php'); 
     exit; 
     } 
    ?> 

私のユーザー機能を持っています。 PHP)

public function is_logged_in() 
{ 
    if(isset($_SESSION['userSession'])) 
    { 

     return true; 
    } 
} 

public function redirect($url) 
{ 
    header("Location: $url"); 


} 

public function logout() 
{ 
    session_destroy(); 


} 

私は何が欠けていますか?それは空の文字列だかどうかをチェックする、ある

if($user->is_logged_in()!="") 

:TRUEブール値を返しますが、あなたが戻り値をチェックしているis_logged_in()

答えて

0

ので、私は非常に素晴らしいではない解決策になってしまった:

私は

$(function(){ 

    $("#btn-logout").bind('click', function() { 

    window.location.href = "http://example.com/logout.php"; 
     }) 
    }); 

私logout.phpが

のように見えることになったボタン

<button id="btn-logout">Logout</button> 

にhome.php

`<p class="mc-top-margin-1-5"><a href="logout.php">Logout</a></p> ` 

内のリンクを変更し、jQueryの機能にその機能を追加しました

<?php 
    session_start(); 
    unset($_SESSION['user_session']); 
    session_destroy(); 
    ?> 
<html> 
<head> 
<script> 
    window.location.href = "https://example.com/index.php"; 
</script> 
</head> 
<body> 
</body> 
</html> 

ヘッダーを使ってPHPのリフレッシュページから行っています。私はjsとjqueryで終わった。上の素晴らしいソリューションではありませんが、それは動作します!

0

あなたの機能。

また

、およびユーザーがログインしていない場合は、より重要なのは、is_logged_in()は何も返さないその関数のようなものでなければなりません:。

public function is_logged_in() 
{ 
    if(isset($_SESSION['userSession'])) 
    { 
     return true; 
    } 
    else { return false; } 

}

とチェックのようなものでなければなりません:

if(!$user->is_logged_in()) 
+0

ご返信ありがとうございます。あなたのコードを追加しました。私はまだindex.phpにリダイレクトされていません。 https://mysite/logout.phpのページにまだ詰まっています – p1ux

+0

コードの前に空白または白線があるかどうか確認してください。 「ヘッダー」は、ブラウザに何も送信されていない場合にのみ機能します。 – PaulJ

+0

しかし、それは私にindex.phpのユーザーインターフェイスを与えますが、ブラウザはhttps://mysite/login.phpと私のjsファイルは起動しません。だから私はヘッダが動作すると思う - alittle – p1ux

関連する問題