質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

3回答

5498閲覧

file_get_contents()でgetリクエストを送る

fgfnabwym

総合スコア78

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2015/10/21 14:10

編集2022/01/12 10:55

phpのファイル間で変数をやり取りする方法を探しています。
postやgetでフォームなしでボタンを押さなくても、変数を別のファイルに送る方法はないでしょうか。

探したところfile_get_contents()というのを見つけたのですが、変数が届いていません。

test.phpの中身

php

1<?php 2$result = file_get_contents('http://localhost/get.php?test1=test1&test2=テスト2'); 3?>

get.phpの中身

php

1<?php 2if (isset($_GET["test1"])) { 3$test1 = $_GET["test1"]; 4} else { 5$test1 = "値が来ていません。"; 6} 7?>

どこがだめなのか教えていただけるとうれしいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

「変数が届いてません」というのは、どういう現象(画面、メッセージ)を見てそう言ってますか?
届いているはずですが。つまり、確認の方法が間違っている可能性が高いです。

実行しているスクリプトをそのままコピペしてください。
書かれているget.phpでは、出力に何も書いてないので、file_get_contentsで得られる値は空文字列というのが正常な結果です。

投稿2015/10/21 14:42

otn

総合スコア84421

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fgfnabwym

2015/10/21 15:21

otnさん teratermに接続できなくなってしまって。 思い出して書いていたら半端になってしまいました。 すみません。ありがとうございました。 これからは投稿する前にソースを確認するようにします。
guest

0

file_get_contensの説明にも書いてますが
第3引数にstream_context_createで作ったcontextを入れることで
GET,POST,DELETEとかをのっけてリクエストできます

以下ほぼまんまサンプルコード

PHP

1<?php 2// ストリームを作成します 3$opts = array( 4 'http'=>array( 5 'method'=>"GET", 6 'content'=> http_build_query(array( 7 'test1'=> 'test1', 8 'test2'=> 'テスト2', 9 )) 10 ), 11); 12$context = stream_context_create($opts); 13 14// 上で設定した HTTP ヘッダを使用してファイルをオープンします 15$file = file_get_contents('http://localhost/get.php', false, $context);

投稿2015/10/21 14:16

編集2015/10/21 14:32
KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fgfnabwym

2015/10/21 15:25

KazuhiroHatanoさん ありがとうございます。 teratermに接続できなくなってしまって。 プログラムも半端なのに。調べても理解できなかったりして。 KazuhiroHatanoさんに書いていただいたものを試します。
guest

0

php

1<?php 2if (isset($_POST["test1"])) { 3$test1 = $_POST["test1"]; 4} else { 5$test1 = "値が来ていません。"; 6} 7?>

php

1<?php 2if (isset($_GET["test1"])) { 3$test1 = $_GET["test1"]; 4} else { 5$test1 = "値が来ていません。"; 6} 7?>

投稿2015/10/21 14:13

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fgfnabwym

2015/10/21 14:17

Kosuke_Shibuyaさん、すみません。 間違えました。打ち間違えで、ファイルの中では、$_GETになっていました。
退会済みユーザー

退会済みユーザー

2015/10/21 14:45 編集

これを試した上での質問なんですね。では、KazuhiroHatano さんの回答にあるように、 stream_context_create を試しましょう。 というか、echo してないのだから、提示のソースでは確認できるはずもないのですけど…
fgfnabwym

2015/10/21 15:19

teratermに接続できなくなってしまって。 思い出して書いていたら半端になってしまいました。 すみません。ありがとうございました。 これからは投稿する前にソースを確認するようにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問