@pritchin_maxim1
Начинающий IT-Специалист

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

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

Главное условие переход на сайт вместе с POST'ом.
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 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
Похожие вопросы