※ ChatGPTを利用し、要約された質問です(原文:PHPでフォームが送信できません…。)
PHPでフォームが送信できない原因と解決方法
このQ&Aのポイント
CentOS上で動作しないPHPフォームの問題に対して、原因と解決方法を教えてください。
Windowsとの違いや実行されていない可能性などの要因を考慮し、問題の解決策を提案してください。
TestCookieIn.phpとTestCookieOut.phpに問題がある可能性がありますが、具体的なコードの問題を特定してください。
PHPでフォームが送信できません…。
以下のプログラムをCentOS release 5.5 (Final)上で動かそうとしています。
TestCookieIn.phpは表示されるのですが、このスクリプトにあるフォームに「A」と入力してSubmitしても、次のTestCookieOut.phpが表示されない(ブラウザの画面が真っ白になる)のです。TestCookieOut.phpの先頭あたりに「print("Debug")」といったコードを埋め込んでみても「Debug」という文字列が表示されず、どうやらTestCookieOut.php自体が実行されていないようなのです。
ローカルのWindows Vista+xampp 1.7.3では動いていたので、何か違いがあるのでしょうか。
なおソースと、TestCookieIn.phpをSubmitした時のHTTPヘッダは以下の通りです。
詳しい方、どうかご教授下さい。お願い致します。
--------------------------------
・TestCookieIn.php
<html>
<head>
<title></title>
</head>
<body>
<form action="./TestCookieOut.php" method="POST">
<input type="text" name="NAME" size="30" value="<?php print($_COOKIE['TestCookieVariable_COOKIE_NAME']); ?>"/><br/>
<input type="submit" value="Exec." />
</form>
</body>
</html>
--------------------------------
・TestCookieOut.php
<?php
setCookie('TestCookieVariable_COOKIE_NAME', $_POST['NAME'], time() + (60 * 60 * 24 * 7));
?>
<html>
<head>
<title></title>
</head>
<body>
<?php
print($_POST['NAME']);
?>
<a href="./TestCookieIn.php">前の画面に戻る</a>
</body>
</html>
--------------------------------
・TestCookieIn.phpをSubmitした時のHTTPヘッダ(IPアドレスやユーザー名などはダミーですが)
--------------------------------
http://xxx.xxx.xx.xx/~usrid/dirname/TestCookieOut.php
POST /~usrid/dirname/TestCookieOut.php HTTP/1.1
Host: xxx.xxx.xx.xx
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; ja; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://xxx.xxx.xx.xx/~usrid/dirname/TestCookieIn.php
Content-Type: application/x-www-form-urlencoded
Content-Length: 6
NAME=A
HTTP/1.1 200 OK
Date: Tue, 06 Jul 2010 22:30:47 GMT
Server: Apache/2.2.3 (CentOS)
X-Powered-By: PHP/5.1.6
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
--------------------------------
お礼
回答ありがとうございます。 1.ブラウザのソースを開いても、全く何も表示されません。 InをSubmitした後に再度Inを開いてみてもフォームに何も入っていないので、「setCookieが実行されていない=Outに処理が渡っていない」と判断しました。 2.エラー出力の方法がよく分からなかったので例示したようなソースになっています。HTMLにすると表示されるかどうかは分かりませんが、試してみたいと思います。