Squeak.ru - шаблоны программирования

как получить неизвестную строку в методе $ _GET через URL

Я хочу передать строку из одного файла PHP в другой с помощью метода $ _GET. Эта строка имеет разное значение каждый раз при передаче. Насколько я понимаю, вы передаете параметры GET по URL-адресу и должны явно указать, что это за параметр. Что, если вы хотите вернуть любое строковое значение от предоставляющего сервера серверу, запрашивающему его? Я хочу передать данные в формате json. Кроме того, как отправить его как Ajax?

Сервер (get.php):

<?php
$tagID = '123456';       //this is different every time
$tag = array('tagID' => $_GET['tagID']);
echo json_encode($tag);
?>

Сервер (rec.php):

<?php
$url = "http://192.168.12.169/RFID2/get.php?tagID=".$tagID;

$json = file_get_contents($url);
#var_dump($json);

$data = json_decode($json);
#var_dump($data);

echo $data;
?>
12.04.2017

  • Для AJAX проверьте MDN. Для переменной $ _GET просто перебирайте ее, так как это массив. foreach($_GET as $k => $v) { // code } сделает это. Хотя это не рекомендуется 12.04.2017
  • Неужели этот вопрос настолько глуп? У меня недостаточно знаний о методе _GET, я просто хочу передать строку с одного сервера на другой, извините за свой вопрос, но я даже не знаю, с чего начать. 12.04.2017
  • Небольшая проверка документации PHP над $_GET показывает, что $_GET переменная - это массив значений ›ключа (известный как dict, например, в Python). Это означает, что вы можете просто перебирать его как массив 12.04.2017
  • Строки запроса - это, по сути, пары значений ключ. укажите известный ключ, и значение может быть любым 12.04.2017
  • Вероятно, вы получили так много отрицательных голосов, потому что ваш код работает нормально - вы пробовали? Если да, что случилось? Чем это отличается от желаемого вами поведения? 12.04.2017
  • @ Стив, это ошибка: Примечание: неопределенная переменная: tagId в C: \ wamp \ www \ Brompton \ RFID2 \ rec.php в строке 3 12.04.2017
  • Я немного улучшу свой код. Быть ключевой ценностью, как и раньше. 12.04.2017
  • Вы боретесь с естественной природой того, как эти вещи работают. В вашем коде есть несколько плохих или проблемных элементов. Если передача формы с сервера на сервер отклоняется от GET, поскольку эти данные будут гораздо более заметны в журналах (угроза безопасности?). И FWIW, голоса против, возможно, вызваны тем, что вы не выполняете Ajax IMO. J предназначен для Javascript, не видит ... 13.04.2017

Ответы:


1

Если я правильно понял, вы хотите получить tagID с сервера? Вы можете просто передать серверу параметр запроса, который сообщает серверу, что возвращать.

РЕДАКТИРОВАТЬ: Это действительно неправильный способ реализации API (например, вообще), но, чтобы ответить на ваш вопрос, вот как:

Сервер

switch($_GET['request']) {

   case 'tagID';
        echo json_encode($tag);
        break;
}

Теперь вы можете получить tagID с URL-адресом вида 192.168.12.169/get.php?request=tagId

Клиент (PHP с CURL)

Когда дело доходит до клиента, все становится немного сложнее. Вы упомянули AJAX, но это будет работать только для JavaScript. Ваш php-файл не может использовать AJAX, вам придется использовать cURL.

$request = "?request=tagID";
$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, '192.168.12.169/get.php' . $request); 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, '3');
$content = trim(curl_exec($ch));
curl_close($ch);
echo $content;

РЕДАКТИРОВАТЬ: добавлен рабочий пример cURL только для полноты.

Включенный пример cURL из: Как переключиться с POST на GET в PHP CURL

Клиент (Javascript с AJAX)

$.get("192.168.12.169/get.php?request=tagId", function(data) {
    alert(data);
});
12.04.2017
  • Хорошо, моя ошибка, я отношусь к этому как к клиенту, но на самом деле это соединение между двумя серверами, я исправлю свой вопрос. 12.04.2017
  • @UZIERSKI В этом контексте вы действительно правильно используете термин «клиент». Между двумя PHP-серверами, независимо от того, как вы их называете, вы должны использовать cURL. 12.04.2017
  • Я упоминал об AJAX, поскольку я хочу обернуть этот tagID в JavaScript, но я думаю, что не должен упоминать об этом, поскольку сейчас я хочу узнать, как клиент (сервер) может запрашивать значение переменной с сервера. 12.04.2017
  • Вы имеете в виду обертку в JSON? На самом деле это можно сделать с помощью json_encode (добавлено в пример). 12.04.2017
  • да, спасибо, я попробую этот код позже, так как сейчас я вдали от машины. Возможно ли, чтобы вы отправили мне ссылку на простой Ajax в Javascript, запрашивая значение, как вы это сделали с cURL? 12.04.2017
  • @UZIERSKI Конечно. Имейте в виду, что это все просто, чтобы заставить его работать. Для производственной среды многого не хватает. 12.04.2017
  • Я так понимаю, что со стороны клиента многого не хватает? Я могу справиться с этим, ты уже мне очень помог 12.04.2017
  • Если я хочу передать больше параметров через оператор Switch, лучше ли преобразовать его в оператор if и поместить && между каждым из них, или есть какой-нибудь более аккуратный способ сделать это? 12.04.2017
  • Но тогда мне нужно было бы изменить его на метод POST, поскольку есть ограничение на метод GET 12.04.2017
  • Или используйте что-то вроде $ _SERVER ['QUERY-STRING'] 12.04.2017
  • @UZIERSKI Это становится немного сложнее. Операторы переключения можно складывать друг в друга. Если вы используете SWITCH или IF, решать вам. Если вы хотите использовать POST и GET, вы можете вместо этого использовать $_REQUEST, он также имеет значение. 12.04.2017
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...