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

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

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

Главное условие переход на сайт вместе с POST'ом.
  • Вопрос задан
  • 389 просмотров
Решения вопроса 2
customtema
@customtema
Кастомный софт и бизнес-аналитика
Для начала - убрать из подписи слово "специалист" и декомпозировать вопрос. Ответ на поверхности: 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.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
от 90 000 до 150 000 руб.
Reklama Guru Санкт-Петербург
от 50 000 до 60 000 руб.
Sveak Барнаул
от 40 000 руб.
17 авг. 2018, в 17:10
15000 руб./за проект
17 авг. 2018, в 16:58
60000 руб./за проект