• 締切済み

form入力数字 をphpでurlの後ろ反映させる方法

html の <form method="GET" action="post.php"> <input name="u_id" type="text" size="10"> <input type="submit" value="login"> </form> に入力された数字を以下のurlの後ろの●●に反映させhttp://localhost/schuler/php/pic/detail.php?num=●● ページを表示させたいのですが、どのように構文を作成すればよろしいでしょうか。 post.php ファイルを以下のように作成いたしましたが、全く反映されません。アドバイスをよろしくお願いいたします。 <?php $strKey = urlencode($_POST['u_id']); header("Location: http://localhost/schuler/php/pic/detail.php?num=$strKey"); ?>

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

みんなの回答

  • wp_
  • ベストアンサー率54% (132/242)
回答No.2

何故そのような回りくどい処理をするのかはあえて追求しますまい。 >$strKey = urlencode($_POST['u_id']); POSTになってます。GETメソッドの場合は$_GETで取得します。 $strKey = urlencode($_GET['u_id']); // $_REQUESTは「$_REQUESTを使う」という確固たる信念の元に // 設計されたシステム以外での使用は避けるべきです。 http://jp2.php.net/manual/ja/reserved.variables.php#reserved.variables.request http://jp2.php.net/variables.predefined ですが、Locationヘッダをリクエストしネットワークに無駄な負荷をかけるよりかは javascriptを用いてクライアント側で値を操作し送信する方が環境にやさしいです。 // そうは出来ない環境なのかもしれませんが <form method="GET" action="post.php" onsubmit="on()" id='f'> <input name="u_id" id='u_id' type="text" size="10" /> <input type="submit" value="login" /> <input type="hidden" name="num" value="" /> </form> <script type="text/javascript"><!-- function on() {  document.getElementById('num').value = document.getElementById('u_id').value;  document.getElementById('u_id').value = "";  document.getElementById('f1').submit(); } // --></script>

  • tumeno
  • ベストアンサー率41% (5/12)
回答No.1

まず、$strKeyは正しく入っているかを確認しましょう。 formは method="GET" ですよね。 GETの場合は$_REQUEST['u_id'])です。 または、method="POST"に変更しましょう。

takeranman
質問者

お礼

早速のご返答ありがとうございます。 phpファイルの方を method="POST" に修正し無事解決いたしました。

関連するQ&A

  • formの入れ子の回避方法

    アドバイス下さい。 <form method="post" name="addForm" id="addForm" action="aaa.php"> <input type="text" name="textA" id="textA"> <form method="post" name="uploadFormA" id="uploadFormA" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text1" id="text1"> <input type="file" name="upload_fileA" id="upload_fileA"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormB" id="uploadFormB" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text2" id="text2"> <input type="file" name="upload_fileB" id="upload_fileB"> <input type="button" value="アップロード"> </form> <form method="post" name="uploadFormC" id="uploadFormC" enctype="multipart/form-data" action="aaa.php"> <input type="text" name="text3" id="text3"> <input type="file" name="upload_fileC" id="upload_fileC"> <input type="button" value="アップロード"> </form> <input type="text" name="textB" id="textB"> <input type="submit" value="送信"> </form> のような、formが入れ子になってしまっているformがあります。 これを回避する方法を教えていただきたいです。 条件としては、 ・見た目はこの順番がいい。 ・javascript、CSS等なんでも良いです。 ・各「アップロード」ボタンで、text1,2,3,4、upload_fileA,B,C,Dを送信、「送信」ボタンでtextA,Bを送信したい。 以上、お願いいたします。

    • ベストアンサー
    • HTML
  • 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
  • PHPがHTMLのformの値を受け取らない

    状況: ファイルアップロードを作成しようとしたところPHPがHTMLのformのsubmitした物を受け取らない。 しかしHTML側にjavascriptを読み込ませ XMLHttpRequest によってsendすると受け取れる。 環境: apache 2.2.4 php 5.2.3 ------------HTML <html><body> <form action="test.php" enctype="multipart/form-data"> <input type="text" id="name"> <input type="file" id="file"> </form> </body></html> ------------PHP <?php header('Content-type: text/plain; charset=UTF-8'); print "\$_POST:";var_dump($_POST);print "\n"; print "\$_FILES:";var_dump($_FILES);print "\n"; ?> ------------結果 $_POST:array(0) { } $_FILES:array(0) { } ------------ 原因がphp.iniなのか、httpd.confなのか、はたまたそれ以外に原因があるのかがさっぱり判らず質問しました。 どうやったらHTMLのformの値をPHPで受け取れますか?

  • 【フォーム】PHPで確認画面をだした後にボタンを

    ほぼ初心者のものです 下記のようなフォームをつくりました <form action="regist.php" method="post"> <input type="radio" name="08241" value="A11"/> <input type="radio" name="08241" value="B11"/> <input type="radio" name="08241" value="C11"/> <input type="radio" name="08241" value="D11"/> <input type="radio" name="08241" value="E11"/> <input type="radio" name="08241" value="F11"/> <input type="submit" value="登録する" /> そしてこれらを確認するためにregist.phpを作成し <table width="250" border="1"> <tr> <td width="250">選択したもの</td> </tr> <tr> <td><?php echo $_POST["08241"] ?></td> </tr> <tr> <td>●●●</td> と記載し、選んだものを表示できるようにしました ここからが皆様にお力を借りたいところなのですが フォームから「A11」が選択されて確認画面に「A11」と表示されたとき ●●●のところに下記のような情報を含んだボタンを表示させたいんです <form name="a11" action="/products/detail.php" method="post" > <input type="hidden" name="mode" value="cart" /> <input type="hidden" name="product_id" value="137" /> <input type="hidden" name="product_class_id" value="634" /> <input type="hidden" name="quantity" value="1" /><br /> <input type="submit" value="決定する" onClick="alert('選択しました')" /> </form> このボタン情報はA11~F11まであって、product_idやproduct_class_idは それぞれ異なっています どこかに一覧を作成しておいて form nameで一致したものを表示させるといった やり方なのかなとは思うのですが、その方法がわかりません PHPを使えばいいのかJavascriptがよいのかもあわせ、記述方法などをご教授いただけませんでしょうか? どうかよろしくお願いいたします

    • 締切済み
    • PHP
  • PHP,HTMLでのform actionについて

    現在、以下のようにプログラムを書いています。 <form action="shellexec.php" id="editarea_form" method="POST"> <div align="center"><input type="submit" value="提出" style="width:200px;height:25px" id="submitBtn"> <textarea id="edit" name="edit" cols="120" rows="30"></textarea></div> <input type="hidden" name="save_address" value="<?php echo "tmp/".$_SERVER['REMOTE_ADDR']."/form3.php/current.c" ?>" id="saveAddress"> </form> これにより自サーバのホームページにフリーのエディタを付けてそこにプログラムを書いて貰って、提出ボタンを押して提出してもらい、提出されたプログラムの診断をしています。 そこにもう一つボタンをつけて別の処理を行うようにしたいのですが、form actionには一つしか書けないのでしょうか。二つ以上かける方法があれば教えて頂きたいです。 エディタに書いてもらってボタン1を押したら、その内容を用いてshellexec1を実行、ボタン2を押したらshellexec2を実行という風にしたいのです。 色々やってみたんですが難しくうまくいかないので質問しました。 よろしくお願いします。

    • 締切済み
    • PHP
  • PHPで隠しデータをPOST送信する方法

    <form name="example" method="POST" action="example.php"> <input type="text" name="id" value="" /> <input type="password" name="pw" value="" /> <input type="submit" value="ログイン" /> </form> 上記のようなログインフォームがあるとします。 <input type="hidden" />のようにソースを見たらわかってしまう方法ではなく、 クライアント側で完全に見えないよう、id,pwの送信と同時にPHPで隠しデータをPOST送信する方法はございますでしょうか。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • formタグについてPHP

    他でも質問しましたが、xamppはもともと練習に使うつもりでしたが、 現在はレンタルサーバーを使っているのでここで試したらどうかと 帰りの電車の中で考えました。 ※送るデーター <form acition="index.php"method="POST"> <p>氏名<input type="text" size="20" name="ad"></p> <input type="submit" value="送信"> </form> ※受け取るデーター index.php <?php echo$_POST['ad1']; echo$_POST['ad2']; ?> 質問1.上記に名前が書かれれば、サーバーに引き渡したデーターを ブラウザーに表示ができるのでしょうか? 質問2.echoはeachとは違うのでしょうか? 質問3.actionのところによくメールアドレスが入っていたりするような気がします。 メールアドレスでも受け取れるのでしょうか?

    • 締切済み
    • PHP
  • セッションにIDを振って値を代入

    PHP初心者です。 PHP4.2.xを使っています。 ショッピングカートで購入した商品データをセッションで維持してカートに追加する機能部分を作っていますがうまくいきません。 コードは以下のとおりです。 【goods.php】 ----------------------------------------------------------- <? session_start(); ?> ■商品1 <form action="cart.php" method="POST"> <input type="hidden" name="id" value="1" /> <input name="num" type="text" /> <INPUT type=submit value="カートに追加"> </form> ■商品1 <form action="cart.php" method="POST"> <input type="hidden" name="id" value="2" /> <input name="num" type="text" /> <INPUT type=submit value="カートに追加"> </form> ----------------------------------------------------------- 【cart.php】 ----------------------------------------------------------- <? session_start(); if($_POST['id'] != ""){ $id = $_POST['id']; $num = $_POST['num']; // セッション名自体をIDで作っています。中身は個数のみです。 $_SESSION["$id"] = $num; } echo "カートに入ってる商品<br />"; for ($i = 0; $i<=100; $i++) { if (!empty($_SESSION["$i"])){ echo $_SESSION["$i"]. "<br>\n"; } } ?> ----------------------------------------------------------- goods.phpのファイルで商品1と商品2を1つずつカートに入れれば cart.phpのページで 1 1 と表示されるはずが、1しか出ません。 $_SESSION["1"] $_SESSION["2"]の中身が表示される予定でしたがそうならず、 そのときPOSTで投げられたIDしか$_SESSION["$id"]に保持されません。 どうすればどんどん商品をカートに追加できますでしょうか? アドバイスのほどどうぞよろしくお願いします!

    • ベストアンサー
    • 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

専門家に質問してみよう