formでのやりとり

このQ&Aのポイント
  • PHPのformでのやり取り方法について質問があります。フォームに入力された値をpage.phpで受け取り、データベースのプロフィールを変更する処理を行いたいですが、hiddenフィールドの値を書き換えられてしまう問題が発生しています。hiddenフィールドを隠したりする方法はあるのでしょうか?また、送信する際に値を隠す方法はありますか?
  • hiddenフィールドを使用してformでやりとりする際に、値の書き換えを防ぐ方法について教えてください。hiddenフィールドを隠す方法や、値を送信する際に秘匿する方法についてお知りになっている方いらっしゃいますか?
  • formでのやりとりにおいて、hiddenフィールドの値の書き換えを防ぐ方法について教えてください。また、値を送信する際に隠す方法や秘匿する方法についてもお知りになっている方いらっしゃいますか?
回答を見る
  • ベストアンサー

formでのやりとり

PHPで値のやりとりで下記のような状態のものがあるとします。 内容はプロフィールの変更MYSQLへUPDATEです。 このフォームに入力してもらいpage.phpで処理をするとします。 <form action="page.php" method="post"> <input type="hidden" value="test123@yah.co.jp" name="email"> <input type="submit" value="プロフィール変更"> </form> このtest123@yah.co.jpさんがクリックするとemailが送られるpage.phpで処理され問題はないのですが、Firebugなどでソースを書き換え(アドレスの部分を)sample@yah.co.jpと書き換えてボタンをクリックするとsample@yah.co.jpさんのプロフィールが簡単に書き換えられてしまいます。 このtype="hidden"を隠したりする方法はないのでしょうか? それとも受け渡し時に何かの処理でチェックするのでしょうか? このアドレスなどを$SESSIONで代用したとして、たとえば隠したい値などをformで送信する際はどのように処理をするのが適切なのでしょうか? 今更的な質問ではございますが、よろしくお願いいたします。

  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

>このアドレスなどを$SESSIONで代用したとして、たとえば隠したい値などを >formで送信する際はどのように処理をするのが適切なのでしょうか? 隠したいものはセッション変数($_SESSION)に入れます。 formに入れれば隠すことは出来ません(というか、勝手なname属性と値でPOSTされることだってあり得ます)。

milkkokoa94856
質問者

お礼

agunuz様 ご回答ありがとうございました。 今更ながら一応確認のために質問してみました(笑) やはり$SESSIONで処理するのが適切ということで、認識します。 ありがとうございました。

関連するQ&A

  • 一つのページで二つのFormを別々に使いたい

    <body> <form name="fm1"> <input type="hidden" value="1" id="page"> <input type="button" value="送信する" onClick="execute()"> </form> <form name="fm2"> <input type="hidden" value="2" id="page"> <input type="button" value="送信する" onClick="execute()"> </form> <div id="container">content</div> </body> </html> 上記のように同じ関数execute()を実行するのですが、受け渡す値がvalue="1" と value="2"と別々になっています。 素人考えではフォームfm1とfm2とは別々の値(1or2)を渡すと思ったのですが、どちらのボタンを押してもvalue="1"の結果となります。 二つのフォームを別々に動作させるにはどのようにすればよいでしょうか。

  • フォームについて

    <form action="test.php" method="GET"> <input type="hidden" name="page" value="1"> <input type="submit" value="index"></form> <form action="test.php" method="GET"> <input type="hidden" name="page" value="1"> <input type="submit" value="index"></form> --------------------------------------------- このようにして書くと、どうしてもボタンが縦に並んでしまいます。どのようにすれば横一列に並べる事が出来るでしょうか?

    • ベストアンサー
    • HTML
  • 名無しformの操作

    以下のような、元々名前のないformが複数ある場合にボタンイベントで発生した共通のtest()関数内で処理を行う場合、どのフォームか識別できる方法はあるのでしょうか? テスト1、をクリックした場合、テスト1のフォームの操作を行いたいです。 <script ....... function test(???) { document.どのフォームかわからない.action="/index.cgi"; document.どのフォームかわからない.a.value="1"; document.どのフォームかわからない.submit(); } </script> <form> <input type="hidden" name="a" value=""> <input type="button" value="テスト1" onclick="javascript:test(???)"> </form> <form> <input type="hidden" name="a" value=""> <input type="button" value="テスト2" onclick="javascript:test(???)"> </form> <form> <input type="hidden" name="a" value=""> <input type="button" value="テスト3" onclick="javascript:test(???)"> </form>

  • 同一ページで複数のformを扱う場合

    同一のページ内にhiddenでIDを振った削除ボタンを用意しクリックされたIDを取得するにはどのようにすれば良いでしょうか? <form action="/test.php" name="1" method="post"> <input type="hidden" name="id" value="1" /> <input type="submit" name="delete" value="削除"> </form> -- 省略 <form action="/test.php" name="10" method="post"> <input type="hidden" name="id" value="10" /> <input type="submit" name="delete" value="削除"> </form> formにnameを振ってみても最後のIDがPOSTされてしまいます。

    • 締切済み
    • PHP
  • 別formのhidden項目を自form値として送信したい

    同ページ内に <form name="form1" action="aa"> <input type="text" value="123"> <!-- hidden項目は無い場合もある --> <input type="hidden" name="form1_1" value="xxx"> <input type="hidden" name="form1_2" value="yyy"> <input type="submit"> </form> <form name="form2" action="bb"> <input type="text" value="456"> <input type="hidden" name="form2_1" value="www"> <input type="hidden" name="form2_2" value="zzz"> <input type="submit"> </form> といった感じのformタグをおいています。 そこで、form2を送信する時に、form1のhiddenのみform2のformValueとして送信したいのですが、どんな風に飛ばしたらよいのでしょうか? というより、from2を飛ばすときに、他のformのhidden項目があったら自formの値として送信することってできるんでしょうか? javascriptでできるんでしょうか? 素人質問ですいませんが、何か足がかりになるようなものをご教授いただければと思います。

  • 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
  • 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の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> </FORM> の中に さらに <FORM> </FORM>があるときのSUBMITボタンについて

    今、 <FORM ACTION="aaa.asp" METHOD="POST" Name="form1"> <input type="SUBMIT" value="ボタン1"> <FORM ACTION="bbb.asp" METHOD="POST" Name="form2"> <input type="SUBMIT" value="ボタン2"> </FORM> </FORM> としていて、ボタン2を押すとbbb.aspに 飛んでほしいのでに、aaa.aspに飛んでしまいます。 こういう場合どのようにすればよいのでしょうか? それぞれのボタンは hidden の値をそれぞれの フォームの中の値を渡したいので どうしてもSubmitがいいのです。

    • ベストアンサー
    • HTML
  • 全ページ form textにvalue=""を入れるのを忘れた

    お世話になります。 大バカなことをしてしまいました。助けてください。 全ページにわたり、フォームがあるのですが、 全ページにわたって、 <form method="post" action="sample.php" name="test"> <dl> <dt><input class="mailBox" type="text" size="20" name="data[email]"/></dt> <dd><input class="submitBtn" type="submit" value="送信"/></dd> </dl> </form> と、書いてしまいました。そうです、dtの入れ子になっているinput textに value=""を入れるのを忘れてしまいました。 そこでJqueryを使って、valueがない場合、value=""追加して書こうと思っていて以下のように書きましたがうまくいきません。どうすればよいか、教えてください! $(function(){ if(!$('form :text[value=""]')){ $("this").html('form :text[value=""]'); } });