• ベストアンサー

ユーザーに入力してもらった値を変数として格納しました。それをURLに組み込むにはどうすればいいのでしょうか?

[index.html] <form action="aaa.php" method=post> ID<input type="text" name="id" value="" istyle="4" mode="numeric"><input type="submit" name="" value="OK"> </form> ここで数字6桁のユーザーIDを入力してもらい、次のaaa.phpで各MenuのURLの後ろにユーザーIDをつけることでユーザーによって違う画面を表示させたいのですが。 [aaa.php] <?php $id = $_POST['id']; ?>//IDの受け取り <table width="100%"> <tr> <td rowspan="7"><img src="" alt=""></td> <td><?php echo $id; ?>さんの画面</td> </tr> <tr><td><a href="http://abc.jp/aaa?u={$id}">画像変更</a></td> </tr> <tr> <td><a href="http://abc.jp/bbb?u={$id}&amp;p=1">伝言板</a></td> </tr> <tr> <td><a href="http://abc.jp/ccc?u={$id}&p=1">MailBox</a></td> </tr> 以下略 このように{}で囲ってみたり、いろいろ試したのですが、実際アクセスした時に{$id}が[{id}]のままであったり表示されなかったりして、ユーザーID(数字6桁)に変換されません。どのようにすればうまくいくでしょうか? よろしくお願いします。

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

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

<?php $id = $_POST['id']; print <<<eof <table width="100%"> <tr> <td rowspan="7"><img src="" alt=""></td> <td>{$id}さんの画面</td> </tr> <tr><td><a href="http://abc.jp/aaa?u={$id}">画像変更</a></td> </tr> <tr> <td><a href="http://abc.jp/bbb?u={$id}&amp;p=1">伝言板</a></td> </tr> <tr> <td><a href="http://abc.jp/ccc?u={$id}&p=1">MailBox</a></td> </tr> eof; ?> ですね ただ、urlに埋め込むなら、きちんとエンコードしてくださいね

その他の回答 (4)

  • nick9090
  • ベストアンサー率26% (102/378)
回答No.5

厳しい言い方になって申し訳ないのですが、 あなたの現在の知識でそういうスクリプトを公開するのは止めてください。 必ずセキュリティ上の問題が発生します。 下手したら、あなたが訴えられてしまう可能性だってありえます。 ユーザーが入力した値を用いるならば、セキュリティについて一通り勉強してからにしてください。 ネットや書籍などでいろいろ調べられます。 たとえば以下の本などはよくまとまっていて分かりやすいです。 http://www.amazon.co.jp/dp/4883374718/

回答No.4

PHPコードは <?php ~ ?> で囲まれた中だけ解釈されます。 設定により<? ~ ?>等の省略形も有効になりますが推奨されません。 (XMLやXHTMLの標準規格に沿っていません) <a href="​http://abc.jp/aaa?u=<?php echo $id; ?>">画像変更</a> 例としては上記の通りになります。 {$id}はヒアドキュメント(下記の記述方法)の中で有効な記述方法です。 <?php print <<<eof <a href="​http://abc.jp/bbb?u=​{$id}&amp;p=1">伝言板</a> eof ?> これらのPHPの基本的な構文についてはマニュアルを参照する事をオススメします。

参考URL:
http://www.php.net/manual/ja/language.basic-syntax.php
  • STICKY2006
  • ベストアンサー率29% (1536/5269)
回答No.2

phpユーザーじゃないので、自信薄ですが。 >><form action="aaa.php" method=post> を <form action="aaa.php" method=get> でどうでしょうか。 通常(?)URLにパラメータとしてくっつけるときは、送信方式をgetにしてやるか、明示的にURLにパラメータをくっつけて渡してやることになる(かと思っています。) >><?php $id = $_POST['id']; ?>//IDの受け取り の前後どこでも、確認用にメッセージが出るようにしておくといいと思いますよ。 「id」の値を表示させておくとか。

noname#77845
noname#77845
回答No.1

$idに入っているなら、一番最後の例を使うと <td><a href="http://abc.jp/ccc?u=<?=$id?>&p=1">MailBox</a></td> となります。要するに、 <?= と ?> で囲みます。

関連するQ&A