hidden属性だけのフォームとは?どんなソースになるのか

このQ&Aのポイント
  • hidden属性だけのフォームは、ちゃんと動作しますか?自分のソースでは動作せず、送り先のPHPスクリプトでvar_dump()すると、$_POST['']の中身がNULLになることがあります。
  • hidden属性だけのフォームを使用すると、送信やリセットボタンを作らずに情報を送信することができます。
  • 上記のソースコードはhidden属性だけのフォームの例です。name属性に値を指定し、value属性には送信したいデータを指定します。送信先のPHPスクリプトで$_POST変数を確認することで、送信されたデータを取得することができます。
回答を見る
  • ベストアンサー

hidden属性だけのフォーム

hidden属性だけのフォームというのはちゃんと動作しますか? 自分のソースでは動作せず、送り先のPHPスクリプトでvar_dump()すると、$_POST['']の中身が NULL になってました。送信やリセットボタンを作らずに送信できるとすれば、どんな ソースになりますか? <?php echo '<form name="form1" method="POST" action="../../disp_access.php">'; echo '<input type="hidden" name="from" value="1">'; // どのページから飛んできたかを示す echo '<input type="hidden" name="browser" value="'.$referer.'">'; echo '<input type="hidden" name="ip" value="'.$ip.'">'; echo '</form>'; ?>

  • HTML
  • 回答数3
  • ありがとう数3

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

  • ベストアンサー
  • tracer
  • ベストアンサー率41% (255/621)
回答No.3

> となりますと、 > (1)header("Location: disp_access.php?~=~&"); > などとして、クエリーをGETで渡すなどでしょうか。 > > (2)セッション変数を用いたりするのでしょうか。セッション変数を使った > 場合の、スコープというのは、たとえば画像アクセス解析ページなどに > おいて、トップページがあるフォルダ内のソースファイルで宣言した場合、 > その中にある中、小フォルダにあるソースファイル内でも有効でしょうか。 言っている意味がまったく理解できないけれど、早い話、表示しているファイル自身がPHPならば、$_SERVER['REMOTE_ADDR']と、$_SERVER['HTTP_REFERER']だけで事足りるっていう話です。 表示しているファイルがhtmlファイルならば、No.1さんの回答通りにajax通信すればいいだけなので、formは必要ないですよ。 あと、用語をいろいろと勘違いされているようなので、他者に質問されるときは、聞きかじった用語を背伸びして使わないほうが混乱を防げると思いますよ。

beterugius
質問者

お礼

ご回答、どうもありがとうございました。

その他の回答 (2)

  • tracer
  • ベストアンサー率41% (255/621)
回答No.2

そもそも論を2つ書きます。 サーバーにデータを送るだけなら、そもそもformを使う必要がないですよ。 それ以前に、例に書かれたphpソースはリファラーとIP取得するものですが、その内容はphpだけで完結できるので、そもそもhtmlとサーバーの通信自体が必要ないですよ。

beterugius
質問者

お礼

ご回答、どうも有難うございました。

beterugius
質問者

補足

となりますと、 (1)header("Location: disp_access.php?~=~&"); などとして、クエリーをGETで渡すなどでしょうか。 (2)セッション変数を用いたりするのでしょうか。セッション変数を使った 場合の、スコープというのは、たとえば画像アクセス解析ページなどに おいて、トップページがあるフォルダ内のソースファイルで宣言した場合、 その中にある中、小フォルダにあるソースファイル内でも有効でしょうか。

  • t_ohta
  • ベストアンサー率38% (5071/13248)
回答No.1

> 送信やリセットボタンを作らずに送信 JavaScriptで送信すればいいでしょう。

beterugius
質問者

お礼

ご回答、ありがとうございました。

関連するQ&A

  • 配列をhiddenで

    こんばんは。いつもお世話になっております。 初歩的な質問かと思いますが、書籍を参考に、hiddenでのデータの受渡しの応用にと、配列でのチェックボックスを設けたのですが、上手く表示できずに悩んでおります。 書籍を片手にない知識を振り絞っているのですが、思うように結果を得る事が出来ません。お忙しい中恐縮ですが、アドバイスなど頂戴できたら幸いです。いつもすまらない質問ですみません。 confirm.php <?php if($_POST["open"]==""){ ?> <FORM name="form1" method="post" action="confirm.php"> <input type="checkbox" name="open[]" value="1" <?=$ca01?>>1 <input type="checkbox" name="open[]" value="2" <?=$ca02?>>2 <INPUT type="submit" value="送信"> <INPUT type="hidden" name="user_id" value="0001"> <?php exit; } else{ ?> <FORM name="form1" method="post" action="view.php"> <?php if(isset($_POST["open"])){ $open_box = implode(',',$_POST["open"]); if(stristr($open_box, "1")){$ca01 = "checked";} if(stristr($open_box, "2")){$ca02 = "checked";} } $open_box = implode(',',$_POST["open"]); echo $open_box; ?> <INPUT type="submit" value="決定"> <INPUT type="hidden" name="open[]" value="<?=$_POST["open"]?>"> <INPUT type="hidden" name="user_id" value="<?=$_POST["user_id"]?>"> </FORM> <?php } ?> view.php <?php $open_box = implode(',',$_POST["open"]); echo $open_box; ?>

    • ベストアンサー
    • PHP
  • ファイル間のデータの受け渡しについて hidden? session?

    1.php (フォームを表示) 2.php (入力内容の確認ページ) 3.php (最後のページ、送られた値を使用し、メール送信やデータベースに書き込むなどの処理をしたい。) とhiddenを使い、3つのファイルを作成しました。 ファイル"1.php" <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title></title> </head> <body> <form action="2.php" method="post"> <input type="text" name="data1" value="データその1"> <input type="hidden" name="data2" value="隠しデータ"> <input type="submit" name="" value="送信"> </form> </body> </html> ファイル"2.php" <?php echo "<h1>確認ページ</h1>"; echo $_POST[data1]."<BR>"; echo $_POST[data2]; print<<<_HOGE_ <form action="3.php" method="post"> <input type="hidden" name="data1" value="$_POST[data1]"> <input type="hidden" name="data2" value="$_POST[data2]"> <input type="submit" name="" value="送信"> </form> _HOGE_; ?> ファイル"3.php" <?php echo $_POST[data1]."<BR>"; echo $_POST[data2]; ?> 2.phpの(入力内容の確認ページ)を見ているときに、他の人が2.phpにアクセスして入力内容を盗み見る事は出来るのでしょうか? (2.phpに直接アクセス出来ないように、リダイレクト処理はするつもりですが。) 2.phpから3.phpに値を渡す場合、このようなhiddenの使い方は間違っていますか? セッションを使った方が良いのでしょうか?

    • ベストアンサー
    • PHP
  • シンプルなPHPのフォームテスト

    ランダムにでた計算の答えの値を フォームによって送信して正解か間違っているかを表示する PHPプログラムを考えてみたのですが上手くいきません。 in.php ------------------------------------------ <html> <body> <?php $saki = rand(1,9); $ato = rand(1,9); echo "計算:{$saki}X{$ato}="; $seikai = $saki*$ato; echo '<form action="out.php" method="post">'; echo '<input type="text" name="kotae">'; echo '<input type="hidden" name="hidden" value="$seikai">'; echo '<input type="submit" value="回答"></form>'; ?> </body> </html> ------------------------------------------ out.php ------------------------------------------ <html> <body> <?php $kotae = $_POST["kotae"]; $seikai = $_POST["hidden"]; if($kotae == $seikai){ echo "正解です"; }else{ echo "間違いです"; } ?> </body> </html> ------------------------------------------ in.phpファイルのインプットタグhiddenの所と out.phpファイルでの$_POST["hidden"]の受け取り部分が 間違っているのだと思いますが 正しくはどのようにしたらいいのでしょうか? もっとシンプルで分かりやすい書き方もあれば お教えください。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • postのタイムラグ

    以下のソースでPOSTの値が取れないときがあるので困っています。 具体的にはページを表示してから30秒程度待ってからの クリックじゃないとPOSTの値が取れません。 GETの場合はページ表示後すぐにボタンをクリックしても大丈夫でした。 原因が分からず途方に暮れています。 お知恵をお貸しください。 PHP Version 5.2.3 <?php $P_data = $_POST["pg"]; print("POST=>".$P_data."<BR>"); $G_data = $_GET["pg"]; print("GET=>".$G_data."<BR>"); print <<< DOC_END <html> <head> </head> <body> DOC_END; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=1>"; echo"<input type=submit value=あ>"; echo"</form>"; echo"<form action=test.php method=post>"; echo"<input type=hidden name=pg value=2>"; echo"<input type=submit value=い>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=3>"; echo"<input type=submit value=う>"; echo"</form>"; echo"<form action=test.php>"; echo"<input type=hidden name=pg value=4>"; echo"<input type=submit value=え>"; echo"</form>"; print <<< END </body> </html> END; ?>

    • 締切済み
    • PHP
  • chromeでフォームの値が取得できない

    PHPでフォームに入力された値を取得して画面に表示させる処理において、 Javascriptでフォームの値を変更した場合、chromeだと変更後の値が 取得できません。 例えば、 <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="111"> <input type="hidden" name="data1" value="AAA"> <input type="submit" value="送信"> </form> というようなフォームがあったとして、Javascriptで値を <form name="form" method="post" action="index.php"> <input type="checkbox" name="chk1" value="222"> <input type="hidden" name="data1" value="BBB"> <input type="submit" value="送信"> </form> と、変更しても送信ボタンを押して取得できる値は、上の方の値になります。 IEやFireFoxでは問題なく変更後の値が取得できるのですが、chromeだと 取得できません。 なにか解決方法があるのか、それともchromeの仕様なのかご教示いただければと 思います。 どうかよろしくお願いいたします。

  • フォームで同じ複数のnameで違うvalueの送信

    始めまして、現在一個のフォーム内で複数の同じnameで、違うvalueを送信しようと苦戦しております、、普通にタグを書くだけでは 一個のnameで違うvalueの送信は、最後のvalueしか送信できないです、 phpは使用できません。javaは、、殆ど素人なので、あまり分かりません、、formを一個一個区切るのも、レイアウト上できません、、 どうすればいいのでしょうか?・・・以下タグです。 昨日から、ここから先に進めません。。 先輩方助けてください、本当によろしくお願いします。 <form action="http://hoge.net/hoge/hogecheck.php" method="post"> <input type="hidden" name="site" value="hoge"> <input name="id" type="text" id="idform" maxlength="10" /> <input type="hidden" name="kin" value="3000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="5000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="10000"> <input type="image" src="buybtn.gif" /> <input type="hidden" name="kin" value="20000"> <input type="image" src="buybtn.gif" /> </form>

    • ベストアンサー
    • Java
  • <input type="hidden" >で配列(複数の要素)を渡したいとき?

    こんにちわ, 今HTML+PHPで $hoge[]にいくつかの要素が入っているとき, それをあるfoo.phpというページに渡したいとき, echo '<form action="foo.php" method="POST">'; echo '<input type="hidden" name="$hoge[]" >'; echo '</form>'; としたのですが,うまくいきません。 どうしたらよろしいでしょうか。

    • ベストアンサー
    • PHP
  • inputタグのhiddenの使い分けについて

    <form action="add.php" method="post"> <input type="hidden" name="check_name" value="{$name}"> このhiddenのinputは、ユーザーには情報を見せずに、postでいろんな情報をいっぱい渡したい場合に使われるものなのでしょうか。 また、value="{$name}"のように{}があるのですが、これは変数コンピュータに認識してもらうための決まりごとですよね。しかし、それが無い場合もあったりします。いれるべき場合とそうでない場合の区別はありますか。 よろしくお願いします。

    • ベストアンサー
    • 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でできるんでしょうか? 素人質問ですいませんが、何か足がかりになるようなものをご教授いただければと思います。

  • PHP チェックボックスのhidden値受け渡し

    こんばんは。いつもお世話になっております。 初歩的な質問かと思いますが、hiddenでのデータの受渡で、配列でのチェックボックスが上手くわたせずに悩んでおります。 if($_POST['send']){ **メール送信の処理します** $from_addres="xxxxxx@xxxxxxx.jp"; $to_addres=$mailadd; $make_subject="メール送信"; $message="-入力内容- アドレス:{$mailadd} なぜ:{$why}"; mailsend($to_addres,$from_addres,$make_subject,$message);//はぶいてますがfunction()書いています }elseif($_POST['submit']){ **内容確認** foreach ($_POST['why'] as $key => $why){ if($why==0){$why0="0です";} if($why==1){$why1="1です";} if($why==2){$why2="2です";} } **入力内容表示** <form method="post" action="<?=$_SERVER['../SCRIPT_NAME']?>"> <input type="hidden" name="why[]" value="<?php echo $_POST['why'];?>"> <input type="submit" name="return" value="修正"> </form> <form method="post" action="<?=$_SERVER['../SCRIPT_NAME']?>"> <input type="hidden" name="why[]" value="<?php echo $_POST['why'];?>"> <input type="submit" name="send" value="送信"> </form> }else{ <form method="post" action="<?=$_SERVER['../SCRIPT_NAME']?>"> <input name="why[]" type="checkbox" value="0"<?if($why==0){ print " checked";}?>>0 <input name="why[]" type="checkbox" value="1"<?if($why==1){ print " checked";}?>>1 <input name="why[]" type="checkbox" value="2"<?if($why==2){ print " checked";}?>>2 <input type="submit" name="submit" value="確認画面へ"> </form> } 同一ページにてif分で分岐して処理しています。 確認画面での値受け取りはできています。 その後の、送信・修正へのhiddenへの値受け渡しが上手くいきません。 結果、どう動作して欲しいかといいますと、 ・returnで戻った時に、値を保持してチェックしてあったチェックボックスに"checked"をつけたい ・sendへの値の受け渡し ・メールをとばすので、その本文への値の入れ方 foreach ($_POST['why'] as $key => $why){ if($why==0){$why0="0です";} if($why==1){$why1="1です";} if($why==2){$why2="2です";} } をメールをとばすところでも記述して$why0 $why1 $why2をprintすれば良いのでしょうか? ググってみたり、色々検索してみたのですが、調べ方がよくないので見つからず、質問をさせていただきました。 よろしくお願いします。

    • 締切済み
    • PHP

専門家に質問してみよう