• 締切済み

PHPでFORMから来る変数名を変数にするには

PHPでFORMから来る変数名を変数にするにはどうしたらよろしいでしょうか? 可変変数など調べたのですが、値を変数にすることは出来ても変数名を変数にする事は難しいようです。 <form action="reg.php"> <input type = "text" name = "comment"> <input type = "submit"> </form> このform内のnameが動的に変わるプログラムで,reg.phpにおいて名前(今ならcomment)を変数に格納したいと思っています。 reg.php 本来なら $comment = _REQUEST['comment']; とすると思うのですが、commentが動的に変動する場合、_REQUEST内をどう書き換えれば良いかが分からず困っています $dynamic_name = _REQUEST['ここをどう書けばよいでしょうか'] このことを考えてから今はform内ですが、formでなくてもどうやって書いてよいか分からず疑問に思いました 例えば $test = 'abc'; としたとき $test_name にtestという文字列を入れたい場合(つまりabcの変数名)どうやって入れたらよいのでしょうか?(もちろんtestと言う名前は動的に変わります) 詳しい方いらっしゃいましたらご回答いただければと思います。 良いアドバイスございましたら教えてください よろしくお願いします

  • PHP
  • 回答数2
  • ありがとう数0

みんなの回答

回答No.2

> 値を変数にすることは出来ても変数名を変数にする事は難しいようです $test = 'abc'; $test_name='test'; としているなら、 $$test_nameで、($testの内容の)abcが取り出せます。 ただ、今件なら、 どんなnameでくるかをformを作るときに事前にhiddenかセッションで確保して たとえばhiddenなら <input type="hidden" name="var_name" value="comment"> <input type="text" name="comment"> としておいて、 これのsubimitを受け取るPHP側で echo $_GET[$_GET["var_name"]]; (または $_POST~略) としてはどうでしょう? #というか、全体仕様がわからないのでなんともいえませんが #どんなform名でくるかわからないというのは、 #設計自体がまずい気もしますが。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

$_REQUESTの要素が一つとは限らないので可変で送られてくる データを$test_name に代入する命題も中途半端。 たとえばやろうと思えば、 <? $array=array_values($_REQUEST); $test_name=$array[0]; print $test_name; ?> としてもいいでしょう。 ただもろもろの制限や例外があるのであまりおすすめできません

関連するQ&A

  • php内のformのvalueに変数の値をいれたい

    どうぞよろしくお願いします。 php内のformのvalueに変数の値をいれたいのですが、下記の様に書くと<?=$a?> がそのままソースに出てしまいます。 どの様に書けば変数の値をvalueに格納できるでしょうか? <?php $a='abcd'; print'<form method="post" action="abc.php">'; print'<input type="hidden" name="a" value="<?=$a?>">'; print'</form>'; ?>

  • Formを使ったPHP間での受け渡しについて

    いつもお世話になっています。 PHP間での変数の受け渡しで・・ <form action="<?= test.php ?>" method="POST">   <input type="hidden" name="id" value="aaa"/>   <input type="submit" name="submit" value="送信"> </form> と記述するとtest.phpには渡したいaaaが渡されるのですが、 これだとsubmitを押さないと渡せないため困っています。 したいことをまとめると、submitを使わずにページが表示されたら スグに変数が渡されるようにしたいです。 いろいろ試してみましたが、力不足で出来ませんでした。 宜しくお願いします!

    • ベストアンサー
    • PHP
  • PHPでFormリクエスト

    ASPで以下実行したことをPHPで同じことはできるでしょうか? <form action=”Sample.asp” method=”post”> <input type=”text” name=”Name” value=”あ”><br> <input type=”text” name=”Name” value=”い”><br> <input type=”text” name=”Name” value=”う”><br> </form> Request.Form(“Name”)(1)  →あ Request.Form(“Name”)(2)  →い Request.Form(“Name”)(3)  →う

    • ベストアンサー
    • PHP
  • 変数名の付け方について

    例えば<input type="text" name="aaa">というフォームからのPOSTを受け取るとき、 自分はよく $aaa = $_POST['aaa']; のようにするのですが、変数名とフォームの名前を重複させるのは良くないでしょうか。 またPHPに限らずですが、別のスコープで同じ変数名を使い回すのは問題ないでしょうか。 グローバル変数は慎重に考えますが、ローカル変数はついhogeやtestを使い回してしまいます。 初心者なもので分かりにくい文章になったかもしれませんが、ご教授お願いします。

    • 締切済み
    • PHP
  • Formでの値の取得後、変数での表示ができない

    環境は; RedhatLinux7.1.2 Apache PHP PostgreSQL(今回は関係ないかな) 問題は、フォームにて値を渡した後$xxxxとして変数として表示できるはずなのにできないことです。 ちなみにPostの代わりにGetで行うとアドレス部分に確かに値が渡されたことが認められます。 同じファイルをPHPが使用できるレンタルサーバーで試したところ問題はありませんでした。 **** form.html ***** <form name="a" action="test.php" method="post"> <input type="text" name="a"> <input type="submit" value="submit" name="submit"> </form> **** test.php **** <? print $a; ?> 何が悪いのか全くわからないので、どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • form変数の初期化

    <br /><b>Notice</b>: Undefined index: your_name in <b>C:\xampp\htdocs\test\index.php</b> on line <b >83</b><br /> 入力画面で上記のエラーが解決しません。 どうすればいいでしょうか? 入力画面 <?php $_POST = array(); ?> <form method="post" action="./form_check.php"> <div class="element_wrap"> <label>氏名</label> <input type="text" name="your_name" value="<?php echo $_POST["your_name"]?>"> </div> <div class="element_wrap"> <label>メールアドレス</label> <input type="text" name="email" value=""> </div> <input type="submit" name="btn_confirm" value="入力内容を確認する"> </form> 確認画面 <?php $your_name = $_POST["your_name"]; ?> <form method="post" action="./test.php"> <div class="element_wrap"> <label>氏名</label> <p><?php echo $your_name; ?></p> </div> <div class="element_wrap"> <label>メールアドレス</label> <p><?php echo $_POST['email']; ?></p> </div> <input type="submit" name="btn_submit" value="送信"> </form> <form method="post" action="./index.php"> <!--<input type="button" name="btn_back" onclick="history.back()" value="戻る">--> <input type="submit" name="btn_back" value="戻る"> <input type="hidden" name="your_name" value="<?php echo $_POST['your_name']; ?>"> <input type="hidden" name="email" value="<?php echo $_POST['email']; ?>"> </form>

    • 締切済み
    • PHP
  • PHPの設定について

    よろしくお願いします。 先日、自宅サーバでアパッチとphpの4.3をインストールしました。 で、ローカルで試したところ、他は普通に動くのですが、変数を受け取りません。 たとえば <?php echo $test; ?> と記述したPHPをtest.phpとしてサーバフォルダにおき、 ブラウザでhttp://localhost/test.php?test=abc を見ても真っ白の画面になります。 同様に <form action="test.php" method="post"> (getでも試しました) <input type="text" name="test"> <input type="submit" value="送信"> </form> といったようにmethodで送っても真っ白な画面のままです。 次に test.phpを <?php if( $test == abc ){ echo "OK"; }else{ echo "NG"; } ?> とやってみて試しましたが結果はNGでした。 どうやら変数を受け取ってないらしいです。 phpのセキュリティを変更したらよいとの記事を見つけたのでそういう関係サイトを検索してみたのですが、それらしき内容を見つけられませんでした。 どなたかご教授お願いします。

    • 締切済み
    • PHP
  • form要素について

    php初心者です。ログインページを勉強中なのですが、 form要素で受け取ったデータを別ページで取得したいんですがどうすればいいでしょうか? ★条件 1.最初の読み込み時は『ゲスト』と表示させたい 2.ログイン後は『名前』を表示させたい ●input.htmlファイル <form method="POST" action="output.php">  名前<input type="text" name="name"> </form> ●output.phpファイル <?php if($_REQUEST["name"] != null){  echo($_REQUEST["name"]); }else{  echo("ゲスト"); }?> アドバイスお願いします。

    • ベストアンサー
    • PHP
  • phpでform画面を作るには

    phpの勉強を始め、 forとifだけでform画面を作ってみようと思いました。 配列でパスワードとユーザーの画像を用意して処理しようとしたのですが。 正しいパスを打ち込んでも「パスが違います」と3回表示されます。 どこがちがうのでしょうか...初心者なので正しいコードを教えて頂ければ幸いです。 $passArray[0] = "123"; $passArray[1] = "abc"; $passArray[2] = "xyz"; $passArray[0] = "<img src='img/user.png'>"; $passArray[1] = "<img src='img/user.png'>"; $passArray[2] = "<img src='img/user.png'>"; for($i=0;$i<3;$i++) { if($_POST["pass"] == $passArray[$i]) { print"<h2>ようこそ".$_POST["uName"]."様</h2>"; } else { print"パスが違います"; } } <form method="POST" action="test.php"> <h2>名前:</h2> <input type="text" name="uName" placeholder="ユーザー名"> <h2>パスワード:</h2> <input type="password" name="pass" placeholder="パスワード"> <h2>コメント:</h2> <input type="submit" value="送信" id="sub"> </form>

    • 締切済み
    • PHP
  • PHPからHTMLへの変数の受け渡し

    form.html→page1.php→page2.php というようなページをつくり、form.htmlでテキストエリア等<form>を使いpage1.phpにデータ:nameを送るとします。 その際$name = $_POST['name'];とするとphpでの変数になってしまってpage1のhtml上では認識されませんよね? page1からpage2に移動するときにform.phpでいれたnameのデータも <input type="hidden" name="名前" value="name"> というように使いたいのですがその際page1内でphpでの$nameをhtmlのnameに代入というかデータの受け渡しが必要になるかと思うのですがそれはどのように記述すればいいのでしょうか? ご教授よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう