- ベストアンサー
インクルードファイルからのリダイレクト
- PHPに関して知識に乏しいため、p++BBSをindex.phpにインクルードさせて使用しているが、クッキーの発行とリダイレクトが上手くいかず困っている。ヘッダー情報の書き換えができないというエラーが発生し、解決方法を教えてほしい。
- 書き込みボタンが押されたらリロードする方法はあるのか。書き込みは上手くいっており、リロードすると書き込みが表示される。
- 質問の仕方がうまくなく、PHPに関する知識が不足しているため、質問の内容が不明確かもしれない。
- みんなの回答 (2)
- 専門家の回答
関連するQ&A
- PHPでのリダイレクト
PHPでウェブアプリを作成しています。 PHPでのリダイレクト方法として、 header("Location: xxxxx.php"); を使うことが多いのですが、HTML出力のあとで使おうとすると、 「Warning: Cannot modify header information - headers already sent by (~」というPHPエラーが発生します。 HTML出力前にリダイレクトができればいいのですが、 HTMLをかいたあとに、PHP処理をさせている処理構造上、header関数以外でリダイレクトする方法はあるのでしょうか?
- ベストアンサー
- PHP
- クッキーの削除がうまくいきません
<?php setcookie("a","おいしいクッキー"); $a=$_COOKIE["a"]; print "$a"; print "<br />"; setcookie("a","",time()-60); $b=$_COOKIE["a"]; print "$b"; ?> と書いて、クッキーの設定は出来たのですが、有効期限を過去にしても クッキーが削除されずにエラーメッセージが出ます。 エラーメッセージ Warning: Cannot modify header information - headers already sent by (output started at C:\Eclipse\workspace\PHP\cookie.php:7) in C:\Eclipse\workspace\PHP\cookie.php on line 11 宜しくお願い致します。
- ベストアンサー
- PHP
- 初心者です。includeでエラーがでます。
PHP初心者です。 宜しくお願い致します。 <head> <?php include("../php/shop.php"); ?><?php include("../php/menu.php"); ?> <TITLE><? echo $shop[0]; ?> <? echo $page[1]; ?></TITLE> 上記の様に記述して別のファイルのテキストを読み込ませたいのですが、 Warning: Cannot modify header information - headers already sent by (output started at /home/my-styleone-com/public_html/shop/test/pc/index.php:10) in /home/my-styleone-com/public_html/shop/test/php/shop.php on line 2 Warning: Cannot modify header information - headers already sent by (output started at /home/my-styleone-com/public_html/shop/test/pc/index.php:10) in /home/my-styleone-com/public_html/shop/test/php/menu.php on line 2 のようなエラー表示がされます。 文字は問題なく読み込んでいるのですが・・・ ファーストサーバーでは上記のようなエラー表示はでないのですが、 ワダックスといるサーバーにアップすると上記のようなエラー表示がでます。 解決方法があれば教えてください。 お願いします。
- 締切済み
- PHP
- クッキーの利用
xfreeのphpサーバーを利用祖いているのですが、クッキーの利用ができません。 (Warning: Cannot modify header information - headers already sent by (output started at hoge/cookie.php bom付ではないか確認をしました。) (sessionも変数を破棄するページでWarning: Cannot modify header information - headers already sent by (output started at hoge/session.php のようなエラーが出ます。破棄のページのみなのでbom付ではないかと思われます。) 下記の画像php.iniはどのように設定すればいいですか?
- ベストアンサー
- ハードウェア・サーバー
- PHPでクッキーをセットできない
PHPとJavaScriptを使っゲームを作っていますが、PHPでクッキーをセットしようとすると以下のようなメッセージが出てきて、データがセットされません。 「ヘッダー情報を修正できない」というメッセージはどんな意味なのでしょうか? setcookie()関数をどこで使えばうまくいくのでしょうか? 詳しい方がいらっしゃいましたら、よろしくお願いいたします。 使った関数=setcookie("gameOverTime", $cookieData, time() + 60*60); メッセージ= Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAgameOver.php:1) in C:\xampp\htdocs\QAgameOver.php on line 10
- ベストアンサー
- PHP
- COOKIEの保存がうまくいかない
PHP 5.0.4でテストしているのですが、 以下のソースでうまくCOOKIEが保存できません 原因がお分かりになる方がいらっしゃいましたらご指導のほどお願いします。 <html> <body> <?php setcookie("email","ABC",time()+(60*60*24*90)); ?> クッキーを保存しました。 </body> </html> 実行すると Warning: Cannot modify header information - headers already sent by (output started at XXX.php:3) in XXX.php on line 3 クッキーを保存しました。 と表示されてしまいます。 COOIKEにも正常に保存されていないようです Perlでのプログラミング経験はありますが、 PHPに関しては初心者です。 よろしくお願い申し上げます。
- ベストアンサー
- PHP
- PHP のsetcookie()関数について
PHP5を使ったHTML文書で、setcookie()関数を使っていますが、以下のようなメッセージが出てきてクッキーに新しいデータを書き込むことが出来ません。 環境はWindows10, IE11です。 PHP使用方法: $fname="mondai10.txt" setcookie("filename", $fname); // line 38 setcookie("version",3); // line 39 メッセージ: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAmondaiDisplay.php:3) in C:\xampp\htdocs\QAmondaiDisplay.php on line 38 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\QAmondaiDisplay.php:3) in C:\xampp\htdocs\QAmondaiDisplay.php on line 39 そしてこのクッキーを次のようにJavaScriptで読み込んでいるのですが、表示させてみると書き込んだものとは全く異なるものが表示されます。 JavaSript 使用法: var cookiedata = window.document.cookie; window.document.getElementById("q1").innerHTML =cookiedata;; 実際に表示されるもの: PHPSESSID=57c35633ffc2fe44622ee27e61bf44eb; filename=yasudaShiroexpires=Mon, 08 Oct 2018 21:44:48 GMT そしてこの表示は、最後の時間以外はいつも同じです。 どこに問題があるのでしょうか? 詳しい方、どうか教えてください。
- ベストアンサー
- PHP
- PHP cookie受け渡しについて
php 5.16 apache 2.0 フォーム -------------------------------------------------------------- <form method="POST" action="./php_cookie_tm.php"> E-Mail<br> <input type="text" name="mail" value="<?php print($_COOKIE['form_email']); ?>"><br> <input type="submit" value=" 保存 "> </form> -------------------------------------------------------------- 出力 -------------------------------------------------------------- <?php setcookie("form_email",$_POST['form_email'],time()+(60*60*24*90)); ?> クッキー保存 -------------------------------------------------------------- とすると Warning: Cannot modify header information - headers already sent by (output started at C:\Program Files\○○.php:4) in ・・・・・・・ というエラーがでます。 既に発信している?みたいなエラーなのですが・・・・ なぜでるのでしょうか? php.iniの設定?等いろいろみてはいるのですが、原因不明にて すごい困っております。 初心者質問ですいません。
- ベストアンサー
- PHP
- PHPのクッキーの設置について質問です。
PHPのクッキーの設置について質問です。 他にも下記のようなエラーの質問があるのを見つけて、それを見たのですが、そこを読んで対応しても駄目だったので、少し問題点が違うのかなと思い質問させていただきました。 ※初心者ですのでものすごく初歩的なミスをしていそうな気がしています・・・。 あるフォームを作成していまして、a.phpというファイルで、確認画面からメールを送信、その後、includeで3つファイル(send.php、cookie.php、thanks.php)を読み込む構成にしています。 3つのファイルのうち、cookie.phpを入れたときだけ、下記のエラーが出てしまうのですが、対処の仕方を教えていただけますでしょうか? ※PHP4で作成しています。 ※cookie.php以外ではエラーはないようです。cookie.phpを入れなければ正常に動作。 ※thanks.phpは、<html>から始まるファイルで、このファイルを単独で表示しても大丈夫なHTMLのファイルです。 ○エラーメッセージ Warning: Cannot modify header information - headers already sent by (output started at ディレクトリ on line 12) ○a.php(大元のファイル。) <? ・ ・ ・ switch($status){ ・ ・ ・ case thanks: include('send.php'); include('cookie.php'); include('thanks.php'); break; ・ ・ ・ ?> ○cookie.php内は、下記の内容だけ。 <? $expire= time()+60*60*24; if(isset($_COOKIE['visitcount'])){ $visit = $_COOKIE['visitcount']; }else{ $visit = 0; } $visit++; setcookie('visitcount', $visit , $expire); ?> 以上です。 どうぞよろしくお願いいたします。
- 締切済み
- PHP
- $_COOKIEについて
はじめまして。 PHPを勉強中なのですが$_COOKIEを使った際にエラーになってしまいます。 それが何故なのか分からないのですが、この辺に詳しい方助けて下さい。 ↓↓状況は以下のとおりです。↓↓ ・開発環境:xampp、php、vista ・下記のスクリプトを記述してブラウザで表示すると、「1回目のアクセスです。」とともにエラー表示も出てきてしまう。 <?php if (isset($_COOKIE["count"])) { $count = $_COOKIE["count"] + 1; } else { $count = 1; } setcookie("count", $count); echo "${count}回目のアクセスです。"; ?> ・上記のスクリプトを実行した際のエラー表示は「 Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs(ディレクトリ)php:182) in (エラーの行数) ・ちなみに、練習で作ってるだけなので同じページに、「setcookie」と「$_COOKIE」を使っている。(ただし、クッキー名などは、前に使っているのとは被らないようにしている) 以上です。 やりたい事は、ブラウザにCookieを送り、読み込むたびに「?回目のアクセスです。」の回数を増やしていきたいです。 しかし、これも出来ずに何度読み込みしても「1回目のアクセスです。」とエラー表示しかでません。 この質問で上手く伝わったかわかりませんが、ご見識ある方お力添え下さいませ。
- ベストアンサー
- PHP
補足
なるほど、そういうことだったのですね。 詳しいご回答ありがとうございます。 という訳で、早速ですがクッキーに関して… $cookvalue = implode(",", array($name,$email,$url,$c_pass,$color)); setcookie ("pppbbs", $cookvalue,time()+14*24*3600); 上記部分をindex.phpの一番先頭にもって行きました。 しかしそれだけだと上手くクッキーが保存されませんでした。これは推測ですが、新しくアクセスした際に空の値でも書き込んでいたせいでしょうか? なので以下の文を追加しました。 if(phpversion()>="4.1.0"){ extract($_GET); extract($_POST); extract($_COOKIE); extract($_SERVER); } if(isset($name)){ $cookvalue = implode(",", array($name,$email,$url,$c_pass,$color)); setcookie ("pppbbs", $cookvalue,time()+14*24*3600); } これでクッキーは上手くいきました。 結果オーライなのかも知れませんが、変な書き方でしょうか? 次に、リダイレクトですが、書き込みボタンを押したら~という条件の元の動作なので、場所を変えてみるのは違うと思い、 echo "<META HTTP-EQUIV=\"refresh\" content=\"0;URL=$PHP_SELF?\">"; 上記のように記載することで、無理やり移動するようにしました。(これも動く理由がよく分かっていません。) 実際に書き込みがあった後、一瞬白い画面になるのがかっこ悪いですが… 今回補足にさせて頂いたのは、動いてはいるものの、自分の中で理解がしっかりできていなかったので。。 もし宜しければ、if(isset($name))を書かない場合は空の値がクッキーに保存されていたのか等、考えられる原因を教えていただけないでしょうか。 わがままをいって申し訳ないですが、ご教授の程よろしくお願いいたします。