@pritchin_maxim1
Начинающий IT-Разработчик

Как имитировать отправки форму через post php?

У меня есть несколько переменных которые мне надо отправить через post по средствам php c дальнейшим переходом на страницу отправки.
Как такое реализовать?

Главное условие переход на сайт вместе с POST'ом.
  • Вопрос задан
  • 2202 просмотра
Решения вопроса 2
customtema
@customtema
arint.ru
Для начала - убрать из подписи слово "специалист" и декомпозировать вопрос. Ответ на поверхности: phpfaq.ru/newbie/na_tanke

Если я вас все же совсем неправильно понял (что не отменяет предыдущих рекомендаций), тогда ответ - CURLом.
Ответ написан
Комментировать
Aligatro
@Aligatro
Turn food and coffee into software...
При помощи ajax отправляете данные формы в php handler, производите требуемые манипуляции и
сабмитите форму с переходом куда вам необходимо. Либо всё тоже самое, но не сабмитите форму по адресу, а просто перенаправляете пользователя на нужную страницу через тот же js.

P.s Так как вы хотите (перенаправить пользователя на другую страницу вместе с POST запросом) сделать средствами только лишь PHP - невозможно.

Приблизительно так:
function redirect_post($url, array $data, array $headers = null) {
    $params = array(
        'http' => array(
            'method' => 'POST',
            'content' => http_build_query($data)
        )
    );
    if (!is_null($headers)) {
        $params['http']['header'] = '';
        foreach ($headers as $k => $v) {
            $params['http']['header'] .= "$k: $v\n";
        }
    }
    $ctx = stream_context_create($params);
    $fp = @fopen($url, 'rb', false, $ctx);
    if ($fp) {
        echo @stream_get_contents($fp);
        die();
    } else {
        // Error
        throw new Exception("Error loading '$url', $php_errormsg");
    }
}
// redirect_post('http://example.com', array('name' => 'John', 'surname' => 'Backers', 'cardnum' => '9874982364917423'));

вы можете сформировать запрос и отобразить ответ (можно и через curl). Но это не перенаправит пользователя по другому адресу, по факту это запрос типа server-server. Где ваш сервер формирует запрос, отправляет наружу, получает ответ и что-то с ним делает.

Второй вариант, это создание скрытой формы на странице средствами javascript
function redirectPost(url, data) {
    var form = document.createElement('form');
    document.body.appendChild(form);
    form.method = 'post';
    form.action = url;
    for (var name in data) {
        var input = document.createElement('input');
        input.type = 'hidden';
        input.name = name;
        input.value = data[name];
        form.appendChild(input);
    }
    form.submit();
}
// redirectPost('http://example.com', { name: 'John',	surname: 'Backers',	cardnum: '9874982364917423' });

и ее автоматический сабмит.

Необходимые данные из php (например хеш приватного ключа) вы можете получить при помощи того же ajax'a.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы