こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

POST からの受け渡しができません・・・

教えてくださいm(__)m

<FORM action="<? echo $PHP_SELF; ?>" method="POST">
:(ここにはif文がはいっています。)
:
print "お名前:<BR>\n";
print "<input type=\"text\" name=\"handle\" size=\"16\" maxlength=\"30\" value=\"<? echo ($handle); ?>\"><br><br>\n";

print "性別:<BR>\n";
for (reset ($sex_tbl); $key = key ($sex_tbl); next ($sex_tbl)) {
echo (" <OPTION value=\"" . $key . "\"");
if ($key == $sex) echo (" SELECTED");
echo (">" . $sex_tbl[$key] . "\n");
}

print "PRポイント:<BR>\n";
print "<input type=\"text\" name=\"pr\" size=\"16\" maxlength=\"30\" value=\"<? echo ($pr); ?>\"><br><br>\n";

print "<CENTER><input type=\"submit\" value=\"次の人!\"></CENTER><br>\n";
print "<input type=\"hidden\" name=\"page\" value=\"kekkapage\">\n";
print "<input type=\"hidden\" name=\"handle\" value=\"" . $_POST['handle'] . "\">\n";
print "<input type=\"hidden\" name=\"sex\" value=\"" . $_POST['sex'] . "\">\n";
print "<input type=\"hidden\" name=\"pr\" value=\"" . $_POST['pr'] . "\">\n";←80
</FORM>



↑なのですが、
「・・・on line 80」エラー表示になりうまくいきません。
の部分が原因と表示にはなっているのですが…。
助けてください。
宜しくお願いしますm(__)m

投稿日時 - 2006-12-11 13:52:05

QNo.2594078

すぐに回答ほしいです

質問者が選んだベストアンサー

print "<input type=\"text\" name=\"pr\" size=\"16\" maxlength=\"30\" value=\"<? echo ($pr); ?>\"><br><br>\n";
の文は、
print "<input type=\"text\" name=\"pr\" size=\"16\" maxlength=\"30\" value=\"$pr\"><br><br>\n";
とする必要がありそうです。

#でも、これがエラーの原因になっているとは思えません。。。

>「・・・on line 80」エラー表示になりうまくいきません。

エラーメッセージを全文載せたほうが、適切な回答が得られやすいと思います。

質問とは無関係ですが、セキュリティを考慮しなければならないサイトなのであれば、
print "<input type=\"hidden\" name=\"handle\" value=\"" . $_POST['なんとか'] . "\">\n";
などとしているところを、
print "<input type=\"hidden\" name=\"handle\" value=\"" . htmlspecialchars($_POST['なんとか'], ENT_QUOTES) . "\">\n";
などとした方が良いです。

投稿日時 - 2006-12-11 15:56:01

補足

お返事ありがとうございますm(__)m

エラー表示はワーニングではなく
Parse error: parse error, unexpected '@' in /usr/local/apache/…/……/play.php on line 80

という表示になっています。

ご指摘していただいたように「value=\"$pr\"」に変更してみました。
あとは「value=\"$handle\"」にもしました。
でも、やはり同じエラー表示になっています。


…on line 80
のようにエラー表示になっていても、80 が原因というわけではないのですね…( ´・ω・)

他に何が考えられるでしょうか…。

投稿日時 - 2006-12-11 19:22:01

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

Parse error: parse error, unexpected '@' in /usr/local/apache/…/……/play.php on line 80
ですか。
$_POST['pr']は何ですか。
その中に@みたいにエスケープしないといけない文字が入っているとエラーになるでしょう。
処理面倒だから80行だけ
print '<input type="hidden" name="pr" value="' . $_POST["pr"] .'">';
にしてみては。
それとpr以外の名前を試してみるとか。
予約されてたりするかも。

投稿日時 - 2006-12-12 03:32:51

お礼

お返事ありがとうございますm(__)m

>print '<input type="hidden" name="pr" value="' . $_POST["pr"] .'">';
にしてみり、「pr」以外の名前にしてみたりしましたがエラー表示は変わりませんでした…。

if文がちゃんと設定されてないのかなぁとか「$_POST['pr']」に関しても曖昧な感じになってるかもしれません…。

ソースを色々イジってしまい少し変形してしまったので、一度整理してまたスレたてたいと思います。
もじお時間があれば、また教えてください。
宜しくお願いしますm(__)m

投稿日時 - 2006-12-12 19:17:04

ANo.3

>エラー表示はワーニングではなく
>Parse error: parse error, unexpected '@' in /usr/local/apache/…/……/play.php on line 80
(略)
>…on line 80
>のようにエラー表示になっていても、80 が原因というわけではないのですね…( ´・ω・)

これは、play.php の80行目にエラーがあるということです。
80行目には「@」という文字が含まれていると思います。

print "<input type=\"hidden\" name=\"pr\" value=\"" . $_POST['pr'] . "\">\n";←80

この行ではないと思います。
80行目の周辺のプログラムを補足で書いて頂ければ、解決できるかもしれません。

投稿日時 - 2006-12-11 20:10:26

補足

お返事ありがとうございますm(__)m

80行目に「@」という文字は含まれていないのですすが、
print "<input type=\"hidden\" name=\"page\" value=\"kekkapage\">\n";
の kekkapage には
$key = @array_search ($num, $kekka); ←90
ものがあります。
これが原因でしょうか??

ソースを色々イジってしまいわけわからなくなってしまった…(´;ω;`)ので、一度この質問を締め切って新しくスレ立て直したいと思います。

もしお時間ありましたら、また教えてください。
宜しくお願いしますm(__)m

投稿日時 - 2006-12-12 18:55:08

お礼

補足のところに書いてましたm(。≧д≦。)m

一度ソースと頭を整理して、またスレたてます。
何度も何度も消したり書いたりしてソースがくちゃくちゃになってしまいました。。

ありがとうございましたm(__)m
また出来ましたらお力を貸していただけたらすごく嬉しいです。

投稿日時 - 2006-12-12 19:19:25

ANo.1

テクニック的なことですが、printでHTMLを記述するときはシングルクォーテーション使うとダブルクォーテーションにエスケープ要らないから間違いが減ります。
多分80行より前で間違っていて、80で引っかかっているのではないでしょうか。

投稿日時 - 2006-12-11 15:36:36

お礼

お返事ありがとうございますm(__)m

全部をこれできているので、今変更となるとちょっと手間になります…が、今後そのようにしていきたいと思います!

80 が問題ではなくその前のどこかが間違っているという感じのようです…。
ソースを何度も見直したのですが、タイピミングミスとかではないようです(´・ω・`;)

投稿日時 - 2006-12-11 19:21:48

あなたにオススメの質問