2016-10-05 23 views
0

ブラウザからCookieを削除するPHPを実行しようとしています(ログインデータのCookieを削除するために使用されています)、[ログアウト]ボタンをクリックすると、これを行うアクションが、このように動作していないようですか?PHPを '<a href="" action="php here"></a>'で実行しています

<?php 
        if(isset($_COOKIE['LoggedIn']) && !empty($_COOKIE['LoggedIn'])) { 
        echo "<li><a href=\"#\" action=\"setcookie(\"LoggedIn\", \"\", time(), \"/\");\">Log Out</a></li>"; 
        } else { 
         echo "<li><a href=\"login.php\">Log in</a></li>"; 
        } 
       ?> 

私はメインの引用符の内側に配置することができ、通常のテキスト引用符の中に引用符を作る変更するには「\」を使用しています。

私の質問は主に、どのように正しく実行することができますか?私はこのように試しましたが、それは事をしません。

+1

私が何かを見逃していない限り、 'a'要素に' action'属性はありません。リンクやフォームを作成しようとしていますか?代わりに、単にonclickを使ってボタンを作成しようとしているようですが、なぜそうしないのですか? 'setcookie()'関数に関して、あなたはそれをどこで定義しますか? – David

+1

PHPは、ページが読み込まれる前にのみ処理されます。ページが完全にロードされると、javascriptを使用して同様のプロセスを実行するか、ajax関数を呼び出してPHPページにリクエストを送信します。 – aynber

+1

あなたはHTMLで 'action'を使ってPHP関数を実行しようとしています。私はあなたが代わりにJavaScript関数を呼び出すと思うと思う、それはPHP関数を実行するあなたのページへのAJAX呼び出しを行います。 –

答えて

0

私が知っている限り、アンカータグ( "a"タグ)には "アクション"属性の概念がありません。私はあなたがここで欲しいと思うのは、 "アクション"の代わりに "onclick"です。

"action"属性でphp関数を実行しようとしていますが、これはうまくいきません。クッキーを消去する簡単なjavascript関数を作成する必要があります。例:

var deleteCookie = function(name,path) { 
    document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;' + (path ? ' path=' + path : ''); 
}; 

あなたのリンク上で "onclick"を呼び出すことができます。

0

私はちょうどログアウトボタンがそうのようにクリックされた後に、ログインページにリダイレクトlogout.phpボタンを持つreccomend:

echo "<li><a href=\"logout.php\">Log Out</a></li>"; 

Logout.php

//Expire Cookie 
    setcookie('LoggedIn', '', time() - 60*100000, '/'); 

    //Redirect to page 
    header('Location: https://www.foo.com/login.php') ; 
+0

私はこれを試しました、var_dumpを使ってクッキーがまだ存在するかどうかをチェックしても、クッキーはユーザー名の文字列を保持していますが、まだクッキーが存在することを示しています –

+0

まったく同じパラメータ(値と有効期限を無視して)前にしていれば、それは動作しません。私は同じ問題を抱えていて、それは私を助けたこのような質問だった:http://stackoverflow.com/questions/2856366/problems-deleting-cookies-wont-unset – Kitson88

0

良いが、まだあなたのAへのリンクあなたが必要とする機能を実行するphpファイルにhrefタグを追加する

header("Location: Your URL") 

ログインに戻すにはページまたはどこでも好きな場所

0

このようなものを使用できます。

<a href='/?logout'>Logout</a> 

if(isset($_GET['logout'])){ Logout(); } 

function Logout() { 

    unset($_SESSION['']); // unset and session data 
    session_unset(); // remove all session variables 
    session_destroy(); // destroy the session 
    setcookie("LoggedIn", "", time() - 36000, "/"); //unset the remember me cookie 
    header("Location: /?loggedOut=1"); 
    exit; 
} 
関連する問題