- 締切済み
指定したURLのページのフォーム内に自動で情報を書き込みたいのですが…
指定したURLへ飛んで、そのページにあるフォーム内に、指定した情報を自動で書き込むプログラムを作りたいのですが、皆目検討が付きません;; 簡単な例を挙げると、 ・googleのトップページの検索窓に指定された文字列を書き込み、「検索」ボタンを押し、その結果ページを表示。 というような感じです。 phpマニュアルや、他のサイトでも色々調べたのですが見つかりません。 そもそも、そんな事がphpで可能なのかさえ分からない始末です…。 まだphpを始めて間もないので、出来るだけわかりやすく説明して頂けたら幸いです。 宜しくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- gogo-tea
- ベストアンサー率75% (25/33)
>受け口がなくても、そのページ内にテキストボックスがあれば、文字列を記述する。みたいな方法ってないのでしょうか? 値を放り投げる(渡す側)はとにかく放り投げるだけ。←例:FORMのPOST 渡す側にとっては、相手のファイルがその値を受け取ろうが受け取るまいが知ったこっちゃないって感じです。 一方、受け側は渡されたものを受けるか受けないかは自由なわけです。 受けないのなら何も書かなければ受けないし、受けたいのであれば自分に対して放り投げられたモノを受け取る為の記述(PHPやPerlなどのスクリプト)がどうしても必要になるかと思います。
- gogo-tea
- ベストアンサー率75% (25/33)
はじめまして。 例えば渡す方のページでフォームを使って仮に http://www.hogehoge.co.jp/result.php へ <input name="aaa" type="text" value="目的の文字列"> という形で変数aaaに"目的の文字列"を入れてPOSTすれば result.phpは -----ここから記述開始----- <?php //↓GETでもPOSTでも渡されたものを受け取れる extract($_REQUEST); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>test</title> </head> <body> <input type="text" name="hoge" value="<?php echo $aaa ?>"> </body> </html> で変数aaaの値をテキストボックスに受け取ることができます。 渡される値が変わってもaaaという変数に入れてで渡せば テキストボックスの中には渡された値がちゃんと入ります。 つまり受け取った値をhtml内で表示したい場合は いったん受け取る記述 extract($_REQUEST); extract($_POST); extract($_GET); などを書いてから html内の表示したい場所に <?php echo 変数名 ?> と書けばOKです。
お礼
なるほど。 extract($_REQUEST); と記述しておけば、<?php echo 変数名 ?>でテキストボックス内にでも渡せますね! 勉強になります。 …という事はやはり、受け取り側にそういった記述が無いと渡す事はできないという事なのでしょうか?;; 受け口がなくても、そのページ内にテキストボックスがあれば、文字列を記述する。みたいな方法ってないのでしょうか?
- izayoimizuki
- ベストアンサー率41% (84/202)
> 上記の例だと、飛び先のフォーム内に「$_POST[aaa]」という記述があれば問題ないと思うのですが、(フォームの作り方が悪い?) $_POSTは配列ではなく連想配列(添え字に数字以外も使える)なので$_POST[aaa]ではなく$_POST["aaa"]のように引用符で囲まなければなりません. また $key = "aaa"; $_POST[$key]; のような事もできます.
お礼
$_POST["aaa"]ですね^^ ありがとうございます。
- izayoimizuki
- ベストアンサー率41% (84/202)
> googleのトップページの検索窓に指定された文字列を書き込み の部分は特別何も無いなら<input name="name" type="text" value="目的の文字列" />のようにHTMLレベルで解決してはいけませんか? PHPの変数を値に使いたければ$tag = "<input name=\"name\" type=\"text\" value=\"" . $value . "\" />";でいかがでしょうか? [「検索」ボタンを押し、その結果ページを表示。] までを自動でしたいのであれば直接検索結果のURIを指定してしまった方が良いのではないでしょうか? Java Scriptを使えばできないわけではないですがあえてするほどのことのようには思えないのですが...
お礼
回答ありがとうございます。 なるほど。phpにばかり頭が回っていてhtmlが疎かになってました。^^; しかし、例えば <form action="http://www.google.co.jp/" method="post"> <input name="aaa" type="text" value="目的の文字列" /> <input type="submit" /> </form> というフォームだと「http://www.google.co.jp/」に飛ばされた「目的の文字列」は、 「http://www.google.co.jp/」内にあるフォーム内に書き込まれないですよね? 上記の例だと、飛び先のフォーム内に「$_POST[aaa]」という記述があれば問題ないと思うのですが、(フォームの作り方が悪い?) それ以外に、うまく切り抜ける方法があるのでしょうか?;; あと、説明不足だったのですが「検索」が目的という訳ではないので、 「http://www.google.co.jp/search?hl=ja&q=%E4%BE%8B%E3%81%88&lr=」のように URIを直接指定する方法が使えないんです…。
お礼
>受け取る為の記述(PHPやPerlなどのスクリプト)がどうしても必要になるかと思います。 なるほど。やっぱり受け口が必要なんですねぇ。 ありがとうございます^^ 別の手段を考えてみます。