переход на целевой URL после отправки формы PHP CURL

#php #redirect #curl

#php #перенаправление #curl

Вопрос:

Я новичок в этом. Я только что обнаружил curl. Похоже, я что-то упускаю.

Вот идея.

  1. HTML-страница имеет форму с одним скрытым полем, которое отправляет ее в файл php (order.php ) после того, как пользователь нажимает ОТПРАВИТЬ.

  2. order.php затем генерирует кучу других параметров и отправляет их в другой php-файл (ordercheck.php )

  3. ordercheck.php использует опубликованные данные.

Это почти работает.

НО: проблема в том, что браузер все еще показывает order.php в поле адреса.

Есть ли способ для браузера перейти на ordercheck.php после order.php опубликовал?

В конце концов, я хотел бы перейти от order.php на другой сервер (webscr PayPal), поэтому простой обработки данных для меня недостаточно. Мне нужно фактически опубликовать данные и перейти на новый URL, как если бы это была обычная отправка формы…

ПОЖАЛУЙСТА, помогите!

Ответ №1:

да, просто добавьте перенаправление после запроса curl вот так

 header("Location: newPage.php");
  

Я, вероятно, сделаю проверку, чтобы убедиться, что запрос curl был успешным, затем добавлю заголовок в php-код, который перенаправит пользователя.

если ваш запрос curl инициализирован переменной типа $ ch, тогда просто сделайте что-нибудь вроде:

 if ($ch){
   header("Location: newPage.php");
}
  

Это позволит убедиться, что запрос curl верен и завершен.

Комментарии:

1. Спасибо. Но по какой-то причине это дает мне не удается изменить информацию заголовка — заголовки, уже отправленные order.php. Ошибка отображается ПОСЛЕ вывода из ordercheck.php (который в основном отображает значения из $ _POST)

2. Я думаю о том, как вы можете это сделать. Если вам нужно действительно быстрое исправление, даже если это не идеальный способ, вы могли бы просто поместить тег meta refresh на страницу, которую вы хотите удалить из формы. вот так: pageresource.com/html/metref.htm однако я собираюсь посмотреть, смогу ли я придумать более простой способ

3. Если подумать, вы можете получать заголовки уже отправленного сообщения из-за того, что один из параметров установлен или не установлен, смотрите эту страницу php.net/manual/en/function.curl-setopt.php

4. CURLOPT_RETURNTRANSFER — это тот, о котором я думаю в частности. Причина, по которой я говорю это, в том, что я знаю, что одна из команд curl возвращает страницу, что означает, что заголовки уже установлены, но при xchanging опции заголовки не установлены, и перенаправление, которое я описал выше, может иметь место.

5. не для того, чтобы усложнять ситуацию еще больше, но у вас есть другие инструменты, которые будут делать то же самое, что и CUrl, например, Jquery. С помощью Jquery вы можете делать простые вещи, посмотрите на api.jquery.com/jQuery.ajax