Объект PHP QueryString 404 не найден

Я Android-разработчик, очень мало знающий PHP. Я застрял с этой проблемой получения 404 Error Object Not Found при чтении переменных из строки запроса. Я добавил файл .htaccess, в результате ошибка исчезла, но переменные не читаются. Хотя, если я читаю URL-адрес без строки запроса, он работает отлично. Я не могу придумать причину, по которой это не должно работать. Вот что я пробовал:

PHP-файл:

Имя файла: file_getTest.php

function file_get_contents_curl($url) {
  $ch = curl_init();
  $timeout = 5;
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
  $data = curl_exec($ch);
  curl_close($ch);
  return $data;
}
$baseUrl='http://xyz.com?language=en';
$language = $_GET['language'];
$session = $_GET['sessionID'];
$placeOrigin=$_GET['place_origin'];
$typeOrigin=$_GET['type_origin']; 
$nameOrigin=$_GET['name_origin'];
$homePage =($baseUrl."&sessionID=".$session."&place_origin=".$placeOrigin."&type_origin=".$typeOrigin."&name_origin=".$nameOrigin);

//if "echo file_get_contents($baseUrl)" is executed it works fine

//echo file_get_contents($homePage); //I have tried file_get_contents but no use

echo file_get_contents_curl($homePage);

.htaccess код:

RewriteEngine on
RewriteRule .* file_getTest.php

Без файла .htacess и с помощью curl() я получаю эту ошибку:

Запрошенный URL /test/file_getTest.php&sessionID=прочитанное значение&place_origin=прочитанное значение&type_origin=прочитанное значение&name_origin=прочитанное значение не был найден на этом сервере.

С файлом .htaccess и использованием curl() я получаю следующую ошибку:

HTTP/1.1 404 Объект не найден

Без файла .htacess и с помощью file_get_contents() я получаю эту ошибку:

Запрошенный URL /test/file_getTest.php&sessionID=прочитанное значение&place_origin=прочитанное значение&type_origin=прочитанное значение&name_origin=прочитанное значение не был найден на этом сервере.

С файлом .htaccess и использованием file_get_contents() я получаю следующую ошибку:

file_get_contents(http://xyz.com?language=en&sessionID=&place_origin=&type_origin=&name_origin=): не удалось открыть поток: HTTP-запрос не выполнен! HTTP/1.1 404 Объект не найден в C:\wamp\www\file_getTest.php в строке 20

Буду очень признателен за любую помощь. Я застрял в этой проблеме в течение некоторого времени и не могу найти решение.


person Khan    schedule 07.02.2013    source источник
comment
Вот почему я застрял. Кажется, я не могу найти ошибку, но спасибо за ваш вклад.   -  person Khan    schedule 07.02.2013
comment
Работает ли URL-адрес в рамке независимо в веб-браузере? Однако вам необходимо проверить эти параметры $_GET.   -  person SparKot    schedule 07.02.2013
comment
Да, URL работает нормально. В этом нет ничего плохого, включая параметры в строке запроса.   -  person Khan    schedule 07.02.2013
comment
Вы можете получить доступ, скажем, google.com из PHP? Проверьте конфигурации тогда.   -  person SparKot    schedule 07.02.2013
comment
Да нормально работает. У меня нет проблем с доступом к статическим URL-адресам. У меня проблемы с параметрами GETting.   -  person Khan    schedule 07.02.2013


Ответы (1)


Проблема была решена. Это кажется довольно странным, но все, что я сделал, это поменял местами двойные кавычки "" в $homepage на одинарные кавычки в остальных переменных. После этого я закодировал все параметры строки запроса, и это сработало как шарм.

поэтому окончательный код выглядит так:

$baseUrl="http://xyz.com?language=en";

$session = $_GET["sessionID"];
$placeOrigin=$_GET["place_origin"];
$typeOrigin=$_GET["type_origin"]; 
$nameOrigin=$_GET["name_origin"];

$placeDestination=$_GET["place_destination"];
$typeDestination=$_GET["type_destination"];
$nameDestination=$_GET["name_destination"];

$sessionE=urlencode($session);
$placeOriginE=urlencode($placeOrigin);
$typeOriginE=urlencode($typeOrigin);
$nameOriginE=urlencode($nameOrigin);

$placeDestinationE=urlencode($placeDestination);
$typeDestinationE=urlencode($typeDestination);
$nameDestinationE=urlencode($nameDestination);

$homepage=$baseUrl.'&sessionID='.$sessionE.'&place_origin='.$placeOriginE.'&type_origin='.$typeOriginE.'&name_origin='.$nameOriginE.'&place_destination='.$placeDestinationE.'&type_destination='.$typeDestinationE.'&name_destination='.$nameDestinationE;
person Khan    schedule 21.02.2013