10日で覚えるPHP入門教室の本を買ってPHPを学習中の初心者です。
この本のサンプル例題でクッキーを使って初回入力データを2目のアクセスでも表示するコードがあるのですが、どうしても
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\php10\day02-3\cookie_rec.php:6) in C:\xampp\htdocs\php10\day02-3\cookie_rec.php on line 6
のエラーがでます。
下記がそのサンプルコードズバリです。
-----cookie.php-------
<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<form method="POST" action="cookie_rec.php">
E-Mailアドレス:
<input type="text" name="email" size="30" maxlength="50"
value="<?php print($_COOKIE['email']); ?>" />
<input type="submit" value="送信" />
</form>
</body>
</html>
------cookie_rec.php-------
<html>
<head>
<title>クッキーでデータを記録する</title>
</head>
<body>
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
クッキー"email"を保存しました。
</body>
</html>
cookie.phpでメルアドを送信するとcookie_rec.phpでクッキーにセットして次回cookie.phpを開けたらメルアドが既にinputboxに入力した状態になるはずですが、どうしてcookie.phpの送信ボタンを押すと上記のエラー表示となります。
なにが原因しているのでしょうか?
お解りになる方、宜しくお願い致します。
環境はXAMPP Windows Version 1.6.3aのローカルでOSはXPです。
No.1
- 回答日時:
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
<body>より上にかかないとだめだよん!!
早速のご回答ありがとうございます。
ご指摘のとおり
<?php setcookie("email",$_POST['email'],time()+(60*60*24*90)); ?>
を一番最初の行にしたらエラーがでなくなりました。
ありがとうございました。
No.2ベストアンサー
- 回答日時:
マニュアルより抜粋
setcookie() は、その他のヘッダ情報と共に 送信するクッキーを定義します。
ほかのヘッダ情報と同様に、クッキーは、スクリプトによる他のあらゆる出力よりも前に 送信される必要があります(これはHTTPプロトコルの制約です)。
<html> や <head> タグはもちろん 空白も含め、あらゆる出力よりも前にこの関数をコールするようにしなければなりません。
参考URL:http://search.net-newbie.com/php/function.setcoo …
ご回答いただきありがとうございます。
一番最初の行して試したところ問題なく処理できました。
解決してスッキリしました。
入門書に載っていたコードだったので信用しており、コード
以外での問題だと思っていましたが、この手の入門書をまるっきり
信用していてはダメですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHP MySql 画像を取得 1 2022/06/04 14:05
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHPで画像の渡しが上手く行きません。 1 2023/02/02 09:39
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- PHP php ログイン 1 2022/11/01 00:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlのエラーについて(デバッグ)
-
mb_convert_variablesで変換出...
-
phpの画面表示が真っ白です
-
これまで遷移してきたサイト内...
-
外部ファイルを読み込んだhtml...
-
Wordpress スタイルシートが反...
-
こちらはただの直列処理ですか?
-
フォントの色を変えるには?
-
onedrive にexcelファイルをア...
-
form actionで二つ送信先を指定...
-
シェルスクリプトからphpファイ...
-
FTPコマンドでディレクトリごと...
-
PHPのif文でその処理を途中で抜...
-
存在しないメールアドレスかど...
-
.htaccessにphp_valueが使用できな
-
PHP8を使うと、大量のWarningが...
-
PHPでfatal errorが出ても無視...
-
アップロード画像数でCSSを分け...
-
Apacheでhttp://localhost/が表...
-
別ファイルの変数を呼び出した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのエラーについて(デバッグ)
-
php ログイン
-
文字化けについて
-
日付と年月日を選択するコード...
-
PHP postgreSQL(teraterm)を用...
-
前後の全角スペースを削除する...
-
ここでの ②if($su_d<>"")の比較...
-
複数の文字列をファイルに書き...
-
PHP(smarty)についての質問(文...
-
phpの画面表示が真っ白です
-
機種依存文字の文字化けについて
-
ローカル環境で動くのに本番環...
-
XAMPP1.7.1上でPHPを実行すると...
-
文字コードの出力を変更したい
-
XMLパースエラー回避方法
-
どうしたら確認ができますか!?
-
phpでfopen()やfputs()が使えない
-
pdf表示
-
ファイルをアップロードすると...
-
zampp PHPでPOSTの変数が返っ...
おすすめ情報