私は現在、アカウント作成システムを作成する必要のある小さなWebサイトで作業しています。ユーザーが既に接続されているかどうかを知るために、私はクッキーを使用したいと思っています。これは最も簡単な方法です。しかし、php.netの公式ドキュメントやその他のフォーラムを確認した後、私はまだ私のクッキーを作成することができません。ここに私のコードです:setcookie()関数が動作しません
function connexionOK() {
$cookieName = "CookieCo";
$cookieValue = "true";
$isSent = setcookie($cookieName, $cookieValue, time() + 3600, "/");
if($isSent) {
echo '<script type="text/javascript">';
echo "alert('Cookie envoyé');";
echo "</script>";
}
else {
echo '<script type="text/javascript">';
echo "alert('Cookie failed');";
echo "</script>";
}}
私は 'Cookie failed'というページを実際に警告しています。
私を助けようとしてきた皆様、ありがとうございます!
はこれを試してみて、あなたが例外を取得するかどうかを確認:
function connexionOK() {
$cookieName = "CookieCo";
$cookieValue = "true";
if(headers_sent()){
throw new Exception('Cannot set cookie, headers already sent');
}else{
$isSent = setcookie($cookieName, $cookieValue, time() + 3600, "/");
if($isSent){
echo '<script type="text/javascript">';
echo "alert('Cookie set');";
echo "</script>";
}else{
echo '<script type="text/javascript">';
echo "alert('Cookie not set');";
echo "</script>";
}
}
}
connexionOK();
もしそうなら、:)
マニュアルから: 'この関数を呼び出す前に出力が存在する場合、setcookie()は失敗し、FALSEを返します。 setcookie()が正常に実行されると、TRUEを返します。これは、ユーザーがクッキーを受け入れたかどうかを示していません。setCookie()を呼び出す前に出力されているように見えます。 –
私のために働きました。出力する前にsetcookieを呼び出す必要があります。 –
Johnのコメントに追加するか、同じページを設定してチェックすることはできません。ページをリロードするか(再設定せずに)、別のページをチェックする必要があります。 – Andreas