Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
  • ベストアンサー

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

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

  • ベストアンサー
回答No.2

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"; などとした方が良いです。

noname#37436
質問者

補足

お返事ありがとうございますm(__)m エラー表示はワーニングではなく Parse error: parse error, unexpected '@' in /usr/local/apache/…/……/play.php on line 80 という表示になっています。 ご指摘していただいたように「value=\"$pr\"」に変更してみました。 あとは「value=\"$handle\"」にもしました。 でも、やはり同じエラー表示になっています。 …on line 80 のようにエラー表示になっていても、80 が原因というわけではないのですね…( ´・ω・) 他に何が考えられるでしょうか…。

すると、全ての回答が全文表示されます。

その他の回答 (3)

回答No.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以外の名前を試してみるとか。 予約されてたりするかも。

noname#37436
質問者

お礼

お返事ありがとうございますm(__)m >print '<input type="hidden" name="pr" value="' . $_POST["pr"] .'">'; にしてみり、「pr」以外の名前にしてみたりしましたがエラー表示は変わりませんでした…。 if文がちゃんと設定されてないのかなぁとか「$_POST['pr']」に関しても曖昧な感じになってるかもしれません…。 ソースを色々イジってしまい少し変形してしまったので、一度整理してまたスレたてたいと思います。 もじお時間があれば、また教えてください。 宜しくお願いしますm(__)m

すると、全ての回答が全文表示されます。
回答No.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行目の周辺のプログラムを補足で書いて頂ければ、解決できるかもしれません。

noname#37436
質問者

お礼

補足のところに書いてましたm(。≧д≦。)m 一度ソースと頭を整理して、またスレたてます。 何度も何度も消したり書いたりしてソースがくちゃくちゃになってしまいました。。 ありがとうございましたm(__)m また出来ましたらお力を貸していただけたらすごく嬉しいです。

noname#37436
質問者

補足

お返事ありがとうございますm(__)m 80行目に「@」という文字は含まれていないのですすが、 print "<input type=\"hidden\" name=\"page\" value=\"kekkapage\">\n"; の kekkapage には $key = @array_search ($num, $kekka); ←90 ものがあります。 これが原因でしょうか?? ソースを色々イジってしまいわけわからなくなってしまった…(´;ω;`)ので、一度この質問を締め切って新しくスレ立て直したいと思います。 もしお時間ありましたら、また教えてください。 宜しくお願いしますm(__)m

すると、全ての回答が全文表示されます。
回答No.1

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

noname#37436
質問者

お礼

お返事ありがとうございますm(__)m 全部をこれできているので、今変更となるとちょっと手間になります…が、今後そのようにしていきたいと思います! 80 が問題ではなくその前のどこかが間違っているという感じのようです…。 ソースを何度も見直したのですが、タイピミングミスとかではないようです(´・ω・`;)

すると、全ての回答が全文表示されます。

関連するQ&A