• ベストアンサー

フォームからの値

kinoswitaの回答

回答No.2

@pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $in{$name} = $value; } このようにデコードしてるのであれば @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $in{$name} = $value; push(@a,$value) if $name eq 'name' ; #この部分 push(@b,$value) if $name eq 'pass' ; #この部分 } このように変更してみたらいかがでしょう? 回答の意味が違っていたらごめんなさい。

関連するQ&A

  • フォームの値取得について

    PHP4を利用しています。 フォームからのデータ取得で 以前はフォームで利用した名前に$をつければ その値を変数として利用できたと思うのですが、 PHP4からは設定によっては出来ないと言うことなので フォームの名前と同じ名前の変数に値を入れる為 $name1=$_POST['name1']; で取得しようと思ったのですが、 フォームで利用しているテキストボックスが多いのです。 やはりひとつづづ取得する方法しかないのでしょうか? なにか良い手があったら教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォームの値をリンクで渡す方法

    ふつうはフォームで <input type = "text"> <input type = "hidden" name ="test1"> <input type = "hidden" name ="test2"> <input type = "hidden" name ="test3"> <input type = "hidden" name ="test2"> とやっていけばいくつものフォームの値を渡せますね。 今回はリンクにフォームの値を入れたいのです。 a href ="http://sig.com/win.cgi?text1=$text1&text2=$text2" test1はリンクの値。 text2がテキストボックスのフォームの値です。 どうやってtext2の値を上のハイパーリンクに入れられるでしょうか? やはりJAVASCRIPTを使う必要があるでしょうか? (他の質問で解決済み) フォームとリンクの値を同時にCGIに渡す方法を教えてください。 自分としては1つ1つ値を渡していくしかないか、と考えました。

    • ベストアンサー
    • Perl
  • フォームから値を配列に渡すときの処理方法

    フォームから値を配列に渡すときの処理方法 PERLでフォームからのデータの受け取り方、処理の仕方でご教授頂ければ助かります。 よろしくお願いいたします。 配列の要素数の調べ方、処理方法についてご教授頂ければ幸いです。 HTMLよりフォームのデータをcgi-lib.plの[&ReadParse(*in);]受け取っているのですが ●HTML側 セレクトボックスを5つ用意し同じNAME (select01)のnameを付けて CGI側で受け取りたいと考えております。 (基本的に間違えでしょうか?セレクトボックスの個数分用意したほうがいいでしょうか?) 受け取った値をCGI側で受け取り要素の個数をカウントさせ 条件に合わせてERRORを出したいと考えたのですが・・・ エラーの内容は 1っこ選んであればOKでそれ以外 0の場合はNG 2個以上選択した場合は NGという形を取りたいのですが。 配列の要素数で分岐できるのかと考えたのですが そもそもこの考え、処理方法は間違えでしょうか? アドバイスを頂ければ幸いですm(__)m require 'cgi-lib.pl'; &ReadParse(*in); ------------------------- # データ代入 @aaa =$in{'select01'}; #フォームデータを配列に代入 $count= @aaa; この場合だと 要素の数($count)は 1になっております。 いろいろ調べていますと cgi-lib.pl を使用した場合はブラウザ上で スペースに見えるが \0 だそうで・・・・ カンマで区切って 要素数を正しく表示させたいと思ったのですがうまくいきません。。 @aaa = split(/\0/,$in{'select01'}); などいろいろ試してみたのですが区切りがうまくいきません また、 $" = ','; @aaa = split(/\0/,$in{'select01'}); とすると カウントが変わったのですが・・・・ フォーム側の一番目を選択して送信するとカウントが 1!!  1と5番目を選択して送信したら 5!え?? で要素数を正しくカウントされていないようです。 ちなみに print @aaa; としてみると aaa,,,,eee と空の内容がカウントされてる?ようなかたちになりました。 ここで、行き詰ってしまいまして、もともとの私の安易な考えが間違えなのか? 書き方が間違えなのか。 と思い皆さまのアドバイスを頂ければ幸いです。 ・プログラムの考え方的には間違えなのか ・一般的な正しい処理方法はどうなのか それとも。。。。要素数で分岐することが可能であるのか。 お手数ですがアドバイス頂ければ幸いです。

    • ベストアンサー
    • Perl
  • フォームを通さずに2次元配列の値の受け渡しについて教えてください

    お世話になります。 以前にも質問させて頂きましたが、うまくいかずもう1度質問させてください。 phpで2次元配列の値の受け渡しについて教えてください。 A.phpファイルからB.phpファイルに2次元配列の値をフォームを通さずにPOSTで渡したいと考えています。 処理上、2次元配列のままB.phpファイルに値を渡したいと考えています。 そもそもPOSTで2次元配列を送ることはできるのでしょうか? その他の方法で2次元配列のままB.phpファイルに渡すことが出来るのであれば、その方法も教えて頂きたいのですが。 たとえば [A.php] $DATA = array( array('name'=>"tanaka", 'age'=>"20"), array('name'=>"sasaki", 'age'=>"30"), ); をB.phpファイルに送るにはどうすれば良いのでしょうか? ※2次元配列のサイズは可変です。 どなたか教えて頂けないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • フォーム間の値の渡し方

    こんにちわ。 C#で以下のようなことを実現しようとしています。 フォームA ・コンボボックスを選択⇒SelectedIndex値を変数Pへ ・フォームBを開く フォームB ・変数Pを読み込み処理 1.ここで、フォームAでSelectedIndexの値は変数Pに入っているのですが、 その値をフォームBで呼び出す方法がわかりません。 以下のコードでは、「System.Windows.Forms.FormにPの定義がありません」となってしまいます。 2.変数Pはpublicで宣言しているのですが、 それだけで全てのフォームから呼び出せる変数となるわけではないのでしょうか? ちなみに以下のようなコードにしてあります。 *********フォームA********* public int P; private void btn1_click(object sender, System.EventArgs e) { P = comboBox.SelectedIndex; F_B f1 = new F_B(); f1.ShowDialog(); } *********フォームB********* private void F_B_Load(object sender, System.EventArgs e) { switch (Owner.P) { case 0: ・・・・ case 1: ・・・・ } } どなたかアドバイスをお願いいたします。

  • セッション変数

    $_SESSION['name']=test $_SESSION['pass']=pass というようにセッション変数に、nameとpassを作成しました。 セッション変数とは、配列と考えてもいい物なのでしょうか それとも、一個一個の変数と考えるべきなのでしょうか。 よくセッション変数と言われますが、記述のされ方が配列と同じようにみえるので気になりました。 ・SESSION配列? ############################# | name = 'test'  | pass = 'aaa' | ############################# ・SESSION変数? ###############   ############# |  name = 'test' |   | pass = 'aaa' | ###############   ############# どちらが正解なのでしょうか?

    • 締切済み
    • PHP
  • フォームから受け取る値について

    フォームから送られてくる値に たまに予期しない内容が入ってくるのですが どういった原因が考えられますでしょうか? 具体的なフォームの内容は下記の通りで a,b,c以外の値が送られてくることがあります。 <FORM action="test.php" method=post> <INPUT type=checkbox name=chk[1] value=a> <INPUT type=checkbox name=chk[2] value=b> <INPUT type=checkbox name=chk[3] value=c> <INPUT type=submit value=OK> </FORM> ローカルにフォーム画面のHTMLをダウンロードし form actionとvalueを変更して実行すれば 送れると思いますが・・他に何かありますでしょうか? よろしくお願い致します。 環境:RedHat7.3+Apache1.3+PHP4.2.2

    • 締切済み
    • PHP
  • HTMLのフォームで画像と文字を同時に指定したテキストファイルとフォルダーに書き出す方法教えてください!

    はじめましてCGI超初心者ですけどわかる方ご指導お願いいたします!僕が作りたいのはHTMLのフォームで画像と文字(フォームから相手が記入した値)を画像は指定したフォルダーにアップして文字は指定したTXTファイルに書き出しするってのを作りたいのですがどうにかみもうみまねで文字は指定したテキストに書き出すことはできたのですがどうも画像がわかりません。どうか教えてください!現時点でできてるスクリプトを書いときます。 #!/usr/bin/perl #フォームからデータを受け取り変数へ入れる read(STDIN, $formin, $ENV{'CONTENT_LENGTH'}); # + 記号を半角スペースに戻す $formin =~ tr/+/ /; #URLエンコードデータをデコード $formin =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; @indata = split (/&/,$formin); #受け取ったデータを&で区切り、配列へ foreach $tmp (@indata) #フォームの要素分(配列分)以下の処理を繰り返す { ($name,$value) = split (/=/,$tmp); # =記号で区切り、名前 と 値 に分ける $forminh{$name} = $value; #区切った名前を付けた連想配列に値を入れる } #既存ファイルを読み込み、配列@aaa に入れる open (IN,"test.txt"); @aaa = <IN>; close (IN); #フォームから受け取ったデータを配列の先頭に追加する #その際に各要素はコンマで区切り、後で使えるようにする unshift (@aaa,"$forminh{'name'}\n"); #新しいデータが追記された配列を test.txt に書き出す open (OUT,">test.txt"); print OUT @aaa; close (OUT); print "Content-type: text/html\n\n"; print <<"HTML"; データの書き込みが完了しました。<BR> お名前 $forminh{'name'}<BR> HTML exit; です!ただし画像はまだまったく理解できていません! もしお分かりの人は教えてくれるとうれしいです! よいご指導まってます!

  • Flashでのメールフォーム

    LoadVarsを利用して変数名をCGIに送るFlashでのメールフォームを作成しています。 テキストエリアの値はプロパティで変数名を指定できるので送信できるのですが、チェックボックスの値を受け渡す方法がわかりません。 HTMLのFORMで書いた場合は <INPUT TYPE="CHECKBOX" NAME="check" value="希望する"> このようになるのですが、これと同様の情報をFlashのメールフォームで送信する場合にはどのようにすればよいのでしょうか? ・FlashでのチェックボックスはコンポーネントのCheck Boxで作成しています ・true,falseの判定を送信するだけでもかまいません 以上です。よろしくお願いします。

    • ベストアンサー
    • Flash
  • フォームに入力後、別のフォームに値を表示

    すみません。教えて頂けないでしょうか?(初心者です) <input type="text" name="a" id="aaa" size=20>  ↓ <input type="text" name="b" id="bbb" size=20>  ↓ <input type="text" name="c" id="ccc" size=20>  ↓ このような感じで作成し、aとbのフォームに値が何か 入力されたら自動的に、例えばaとbの値を足してcのフォームに その結果を表示する様にしたいのですが、記述の仕方が なかなか見つけられません。

    • 締切済み
    • PHP