*vote.inc.phpで、選択肢の文字列に'.'を含んでいると投票してもカウンタが増えない [#v920a5d9]

-ページ: BugTrack
-投稿者: [[ぱんだ]]
-優先順位: 低
-状態: 完了
-カテゴリー: その他
-投稿日: 2002-12-13 (金) 09:38:30
-バージョン: 

**メッセージ [#n6aadcf6]

//([[練習用ページ]]より)

//#vote(1.もんた[0],2.アキヲ[1])

-$HTTP_POST_VARSに入ってきた時点で'vote_1.もんた'が'vote_1_もんた'に化けている。これはApache or PHPの問題? -- [[ぱんだ]]
--Apache/1.3.26 で PHP/4.1.2 ですよね。で、HTML上は、問題ないんですけど、どう見て、そうなっていると分かったんですか? --[[upk]]

perlとPHPで同じことをしてみました。

-perl
 #!/usr/bin/perl
 
 read(STDIN,$buf,$ENV{'CONTENT_LENGTH'});
 
 $str = '';
 foreach $pair (split(/&/,$buf)) {
  ($key, $val) = split(/=/, $pair);
  $key =~ tr/+/ /;
  $key =~ s/%([0-9a-fA-F]{2})/pack('C', hex($1))/eg;
  $val =~ tr/+/ /;
  $val =~ s/%([0-9a-fA-F]{2})/pack('C', hex($1))/eg;
  $str .= " [$key] => $val\n";
 }
 
 print <<__HTML__
 Content-type:text/html
 
 <html>
 <head>
 <meta http-equiv="content-type" content="text/html; charset=EUC-JP">
 <title>test</title>
 </head>
 <body>
 <pre>$str</pre>
 <form method="post">
 <input name="vote_1.もんた" value="投票" type="submit">
 </form>
 </body>
 </html>
 __HTML__
--結果
 <pre> [vote_1.もんた] => 投票
 </pre>
-PHP
 <html>
 <head>
 <meta http-equiv="content-type" content="text/html; charset=EUC-JP">
 <title>test</title>
 </head>
 <body>
 <pre><?php print_r($HTTP_POST_VARS) ?></pre>
 <form method="post">
 <input name="vote_1.もんた" value="投票" type="submit">
 </form>
 </body>
 </html>
--結果
 <pre>Array
 (
     [vote_1_もんた] => 投票
 )
 </pre>

PHPでは、name="vote_1.もんた"でsubmitしたのに'vote_1_もんた'が入ってきます。


----

-$argをencode()を通してやり取りするようにしてみました。(177.diff) -- [[ぱんだ]] SIZE(10){2002-12-13 (金) 09:58:44}
-亀レスですが、、[[PHPのマニュアル:http://jp.php.net/manual/ja/language.variables.external.php#language.variables.external.dot-in-names]] に載っています。register_globals が on な時代の名残ですね -- [[ひろ]] SIZE(10){2002-12-25 (水) 20:44:37}
-なるほど。PHPの仕様でしたか。ドキュメントに書いてあったとは。 -- [[ぱんだ]] SIZE(10){2002-12-25 (水) 23:24:12}
#comment
//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.066 sec.

SourceForge