PHP5の勉強をしています。Web ServerはApache2.2です。


スーパーグローバル変数を受け渡せまなくて困っています。

D:\Program Files\Apache\htdocs/samples/chap2/に、post1.phpとpost2.phpを置いています。
ドキュメントルートはD:\Program Files\Apache\htdocsです。

次のようなpost1.phpファイルがあります。
-----------------------------------------
<html>
<head>
<title>スーパーグローバル変数</title>
</head>
<body>
<form method="POST" action="post2.php">
名前:<br/>
<input type="text" name="name" size="15" /><br/>
好きな食べ物<br/>
<input type="checkbox" name="food[]" value="orange"/>みかん
<input type="checkbox" name="food[]" value="apple">りんご
<input type="checkbox" name="food[]" value="strawberry""/>いちご<br/>
<input type="submit" value="送信"/>
</form>
</body>
</html>
-----------------------------------------
次のような、post2.phpがあります。
--------------------------
名前:<?php print($_POST['name']);
?<br/>
好きな食べ物<?php print_r($_POST['food']);
?>
------------------------
ここで、http://localhost:8080/samples/chap2/post1.phpで、
入力して、POSTすると、Web Serverで500内部エラーで返ってきます。
どこが間違っているのでしょう?

回答の条件
  • 1人3回まで
  • 登録:2009/10/27 20:09:28
  • 終了:2009/10/27 20:48:03

ベストアンサー

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/10/27 20:36:12

ポイント35pt

?><br>

> が一個抜けてるから動かないというだけでは寂しいので、以下余談。


見やすく書くことを考えないと落とし穴に落ちるので、

名前:<?php print $_POST['name']; ?>
<br/>
好きな食べ物<?php print_r($_POST['food']); ?>

といったように1行以内にまとめる。


複数行に渡るなら

名前:
<?php
    print $_POST['name'];
?>
<br/>
好きな食べ物
<?php
    print_r($_POST['food']);
?>

といったような具合に入れ子にしておくと漏れを発見しやすくなります。

なお、print には(括弧)をつけなくても良いです。


さらに余談になりますが、

print と似たようなものに echo というものがあり、

動作に若干の違いがあるので、あわせて学んでみてください。

id:inajyun

分かりました。動きました。ありがとうございます。

2009/10/27 20:47:39

その他の回答(1件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012009/10/27 20:36:12ここでベストアンサー

ポイント35pt

?><br>

> が一個抜けてるから動かないというだけでは寂しいので、以下余談。


見やすく書くことを考えないと落とし穴に落ちるので、

名前:<?php print $_POST['name']; ?>
<br/>
好きな食べ物<?php print_r($_POST['food']); ?>

といったように1行以内にまとめる。


複数行に渡るなら

名前:
<?php
    print $_POST['name'];
?>
<br/>
好きな食べ物
<?php
    print_r($_POST['food']);
?>

といったような具合に入れ子にしておくと漏れを発見しやすくなります。

なお、print には(括弧)をつけなくても良いです。


さらに余談になりますが、

print と似たようなものに echo というものがあり、

動作に若干の違いがあるので、あわせて学んでみてください。

id:inajyun

分かりました。動きました。ありがとうございます。

2009/10/27 20:47:39
id:misosoup No.2

misosoup回答回数27ベストアンサー獲得回数02009/10/27 20:42:29

ポイント35pt

名前:<?php print($_POST['name']);

?<br/>

名前:<?php print($_POST['name']);

?><br/>

? の後ろに「>」が抜けているのでは?

id:inajyun

ありがとうございます。動きました。

2009/10/27 20:47:43

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません