dポイントプレゼントキャンペーン実施中!

メインページ(main.php)から次のページ(get.php)
に値を渡しているのですが、受け取ってくれません。
URLを変数に入れて表示させたところ、URLの受け渡しはできていました。
※URL = http://localhost/get.php?id=333
このURLからidの値(333)を取るために
$ID = $_GET['id']
をget.php内に書いたところ、$IDの値が渡ってきません。
GETをREQUESTにしても同じです。
一体何が原因なのでしょうか?

環境:
PHP5.2.0
Apache2.2.3

A 回答 (5件)

ご質問の意味が分かりました。


以下で対応出来ると思います。

$url = urlencode("http://localhost/get.php?id=");
$id = 333;

<a href="get.php?url=<?=$url;?>&id=<?=$id;?>">get.php</a>

受け取り側
echo urldecode($_GET["url"]);
echo "<br />";
echo $_GET["id"];

この回答への補足

度々、解答ありがとうございます。
説明不足でした。大変申し訳ありません。
main.phpからget.phpの間に、a.php(仮)を挟んでいます。

main.php(入力)

↓←a.php($url、$idを取得)

get.php(値の受け取り)

としています。
main.phpから直接get.phpに渡した場合は問題なく渡りました。
間接的に渡すと渡せなくなっています。

重要な部分を説明していなくて申し訳ありません。

補足日時:2006/12/13 18:07
    • good
    • 0

a.phpからheader()関数でLocation を呼び出す時にも get.php?url=$url&id=$id; といったquery付きurlにすればいいのでは?


queryを付けたくないと云う意図なら、sessionを使うか、cookieを使うかしないと受け取れないでしょう。
http://php.s3.to/man/function.header.html

参考URL:http://php.s3.to/man/function.header.html
    • good
    • 0
この回答へのお礼

解答ありがとうございます。
お礼が遅くなって申し訳ありません。

皆様のおかげで、なんとか値を渡すことができました。

この場を借りてお礼を言います。
皆様ありがとうございました。

お礼日時:2006/12/15 18:36

main.phpからget.phpへの画面遷移はどのようになっていますか?


Aリンクを使うなら、
<a href="get.php?URL=<?=$URL;?>">get.php</a>
のように、エンコードした引数をURLの末尾につける必要があります。

つまり、、、

main.php
------------------------------------------
<?PHP
$HTTP = "http://localhost/get.php?id=";
$id = 333;
$URL = urlencode($HTTP.$id);
echo "<a href='get.php?URL={$URL}'>get.php</a>";
?>

get.php
------------------------------------------
<?PHP
echo urldecode($_GET["URL"]);
?>
とやれば参照出来るはずです。
    • good
    • 0

URLや日本語を含む文字列をGETで渡す場合は、


渡す値をエンコードしてあげなくてはなりません。

$HTTP = "http://localhost/get.php?id=";
$id = 333;
$URL = urlencode($HTTP.$id);

----------------------------------
で、受け取り側のページ(get.php)では、
受け取った変数をデコードしてあげれば大丈夫です。
$URL = urldecode($_GET["URL"]);

この回答への補足

解答ありがとうございます。
$_GET["URL"]の[""]内の値は送り側(main.php)の変数 $URL
で良いのでしょうか?
解答をそのまま試したところ、
get.phpのデコードには値が入っていませんでした。

補足日時:2006/12/13 15:05
    • good
    • 0

$ID = $_GET['id']


ではなく
$ID = $_GET{'id'};
ではないですか?

この回答への補足

解答ありがとうございます。
確認すると、$ID = $_GET['id']でありました。

補足ですが、
URLの構成が通常?と違い、例えば
$HTTP = http://localhost/get.php?id=

$id = 333
を組み合わせた
$URL = $HTTP.$id
と、なっています。
このような組み合わせでは値を取得できないようになっているのでしょうか?

補足日時:2006/12/13 14:29
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!