今回は、クッキー認証画面を作成している際、
エラーが出てしまって先に進めず投稿しました。
下記にプログラム記載
----H_01.html----------------------------------
<html>
<head>
<title>クッキー認証</title>
</head>
<body>
<center>
<form method="POST" action="H_02.php">
名前<input type="text" name="name">
パスワード<input type="Password" name="pass">
cookieを記録する<input type="checkbox" name="chk">
<input type="submit" value="送信">
<input type="reset" value="リセット">
</form>
</center>
</body>
</html>
------------------------------------------------
-----H_02.php----------------------------------
<?php
$name = $_COOKIE['name'];
$pass = $_COOKIE['pass'];
$cnt = $_COOKIE['chk'];
if ($cnt == True)
{
$lim = time()+7*24*60*60;
//有効期限1週間
setcookie('name',$name,$lim);
setcookie('pass',$pass,$lim);
}
else
{
setcookie('name');
setcookie('pass');
}
?>
------------------------------------------------
else文内の、setcookie二行にエラーが出ます。
htmlでチェックボックスにチェックが施されていない場合、クッキーを削除。
調べてみたのですが、どうしたらよいのかわからず
投稿しました。よろしくお願いします。
No.5ベストアンサー
- 回答日時:
Linux・Apache・PHP4.3.9で確認したところではエラーは出ませんでしたので、Windosでの挙動が違うのかなーと思います。
エラーメッセージを見る限りでは、クッキーをセットする前に何らかの出力が行われているからだと思うのですが。
参考URLを見てヘッダーを調べてみてください。
参考URL:http://php.s3.to/man/function.headers-sent.html
No.6
- 回答日時:
#4でエラーになってるのって
setcookieしてすぐ、クッキー使おうとしているからじゃないかな?
リロードしてからじゃないと使えない。
あと、やっぱりなんかHTML書いてるんじゃないかな?
No.4
- 回答日時:
cookie.html
<html>
<head>
<title>クッキー認証</title>
</head>
<body>
<form method="post" action="cookie.php">
名前<input type="text" name="name">
パスワード<input type="Password" name="pass">
cookieを記録する<input type="checkbox" name="chk" value="on">
<input type="submit" value="送信">
<input type="reset" value="リセット">
</form>
</body>
</html>
cookie.php
<?php
if($_POST['chk'] == 'on'){
$lim = time()+3600;
setcookie('test-name',$_POST['name'],$lim);
setcookie('test-pass',$_POST['pass'],$lim);
print 'on<br>';
print $_COOKIE["test-name"] . '<br>';
print $_COOKIE["test-pass"];
}else{
setcookie('test-name');
setcookie('test-pass');
print 'off<br>';
print $_COOKIE["test-name"] . '<br>';
print $_COOKIE["test-pass"];
}
?>
これでエラーは出ません。
この回答への補足
上記をそのまま打ち込んで、
実行してみたところ。
最初と同じエラー
------------------------------------------
Warning: Cannot modify header information - headers already sent by (output started at C:\phpdocs\cookie.php:2) in C:\phpdocs\cookie.php on line 6
Warning: Cannot modify header information - headers already sent by (output started at C:\phpdocs\cookie.php:2) in C:\phpdocs\cookie.php on line 7
on
--------------------------------------------
上記のようにエラーが出ます。
【setcookie('test-name',$_POST['name'],$lim);】
【setcookie('test-pass',$_POST['pass'],$lim);】
がエラーとなります。
No.3
- 回答日時:
#2です、
引数って省略できますね。
削除するんじゃなかったんですか?
#1のエラーですが、
ヘッダ情報は最初に送るべきであるというヤツの気がします。
参考URL:http://jp2.php.net/manual/ja/function.setcookie. …
この回答への補足
削除は、前のhtml内のcookieチェックをはずし送信後、戻るボタンを押したときに
クッキーありの場合だったら名前などが残るが、
チェックをはずして戻った場合は削除されて
空白状態になる。(名前記入欄並びパスワード)
ヘッダ情報を最初に送るべきというのがいまいちわかりません。
参照サイトを見ましたが・・・
No.1
- 回答日時:
色々と間違っています。
とりあえず
$name = $_COOKIE['name'];
$pass = $_COOKIE['pass'];
$cnt = $_COOKIE['chk'];
ここがおかしいです。
setcookie()については参考URLを見てみてください。
#どんなエラーメッセージか書いたり、PHPのバージョンなどを示すと適切な回答があるかもしれません。
参考URL:http://manual.xwd.jp/function.setcookie.html
この回答への補足
$name = $_COOKIE['name'];
$pass = $_COOKIE['pass'];
$cnt = $_COOKIE['chk'];
上記3つの点に関してはわかりました。
>setcookie()については参考URL
これについては、もう前に見ております。
画面に出たエラーを下記に記載
Warning: Cannot modify header information -
headers already sent by (output started at C:\phpdocs\H_02.php:2)
in C:\phpdocs\H_02.php on line 24
Warning: Cannot modify header information -
headers already sent by (output started at C:\phpdocs\H_02.php:2)
in C:\phpdocs\H_02.php on line 25
PHPバージョン4.3.2.2
です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mySQLのデータを多次元配列に格...
-
Flaskでサーバー立ち上げに関して
-
MySQL,PHPのリロードによる二重...
-
VBA で、スペースを含むファイ...
-
PHP SQL 問合せについて
-
syntax error, unexpected '}' ...
-
HTMLで前の画面に戻る時、入力...
-
セッションを使わずに遷移先画...
-
PHPで画像の渡しが上手く行きま...
-
PHPでフォームから任意の画像削...
-
セレクトしたときに全て初期状...
-
PHPの質問:フォームから受け取...
-
phpのswitch文
-
検索時の選択内容を保持する方法
-
フォームへの前回入力値をクリ...
-
PHPをはじめ早くも壁に当たって...
-
【HTML(PHP?)】複数のフォーム...
-
phpで、フォームのラジオボタン...
-
ラジオボタンをsessionで使いたい
-
PHPのsubmitボタンが複数ある場合
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBA で、スペースを含むファイ...
-
phpで変数を使ってcopyできない
-
Flaskでサーバー立ち上げに関して
-
POSTの項目に追加
-
foreachがうまく動かない
-
PHP&MySQL fetchAll()でデータ...
-
PHPからHTMLへの変数の受け...
-
サブフォルダ内の全てのテキス...
-
ファイル名を変更してアップロ...
-
openCVのトラックバーについて
-
アップロードしたファイルの絶...
-
phpでショッピングカート機能を...
-
php+mysqlでの重複チェックにつ...
-
$_REQUEST とphpファイルでphp?...
-
PHP FTPサーバへの画像アップロ...
-
php ファイルアップロード サ...
-
$_REQUESTの意味を教えて下さい
-
重複を防ぐ記述について教えて...
-
name属性が全角の場合・・・
-
PHP MySql 画像を取得
おすすめ情報