2017-09-25 11 views
0
$Link = 'http://somewebsite.com/api.php?message=someMessage&user_id=' . $UserID . '&password=' . $UserPW; 
echo $Link; 
echo "<br><br>"; 

$PageResponse = file_get_contents($Link); 

私は実際のサンプルを投稿できませんが、これは私が経験している問題です。PHPのfile_get_contentsがURLの末尾に変更する

私は$のリンクをエコーするとき、それは、これを返します。

http://somewebsite.com/api.php?message=someMessage&user_id=redacted&password=redacted 

しかし、このようになりますのfile_get_contentsが返すとエラー:あなたが気づく場合

Warning: file_get_contents(http://somewebsite.com/api.php?message=someMessage&amp;user_id=redacted&amp;password=redacted): failed to open stream: No connection could be made because the target machine actively refused it. in C:\wamp64\www\hello.php on line 14 

が、それは "&を変えています"文字を&amp;に書き換えてURLを破棄します。これに対処する簡単な方法はありますか?

+2

これはバグではありません、それは機能です – Calimero

+0

'file_get_contents'を使う前にURL文字列を' html_entity_decode'しようとしましたか?それ以外の場合は 'str_replace'が役に立ちます。 – Kapparina

+0

がデコードして置き換えようとしました。まだ変換が続く – kamelkid2

答えて

0

データの配列を作成できます。これを文字列としてシリアル化するよりも。 ここで、openssl_encryptとopenssl_decryptを使用する必要があります。

あなたのような何かを行うことができます:あなたのサイトから、どこでもそれを得ることができるので、今すぐあなたの暗号化されたデータがセッションに持って

$password   = "EaaJgaD0uFDEg7tpvMOqKfAQ46Bqi8Va"; 
$data    = [ 
    'message' => 'someMessage', 
    'user_id' => '111', 
    'password' => 'paaa' 
]; 
$string_to_encrypt = serialize($data); 

$encrypted_string = openssl_encrypt($string_to_encrypt, "AES-128-ECB", $password); 
//print_r($encrypted_string); 
$_SESSION["encrypted_value"] = $encrypted_string; 

。 今で

$encrypted_value = $_SESSION["encrypted_value"]; 
$decrypted_string=openssl_decrypt($encrypted_value,"AES-128-ECB",$password); 
//print_r($decrypted_string); 
$result = unserialize($decrypted_string); 
print_r($result); 

のようなあなたのデータを取得最後に、あなたは、配列を取得します。

あなたは)(あなたのセッション

のsession_startを開始する必要がなければなりません。

関連する問題