Размещение данных формы на другой странице, а затем повторная публикация - PullRequest
1 голос
/ 11 мая 2011

В настоящее время я использую этот код для отправки данных формы в https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx:

<script type="text/javascript">

        $(document).ready(function(){
            $("#textnextofkin").validate({
                debug: false,
                rules: {
                    name: "required",
                    email: {
                        required: true,
                        email: true
                    }
                },
                messages: {
                    name: "Please let us know who you are.",
                    email: "",
                },
                submitHandler: function(form) {
                    // do other stuff for a valid form
                    $.post('http://www.example.co.uk/erc/process2.php', $("#textnextofkin").serialize(), function(data) {
                        $('#results').html(data);
                    });
                }
            });
        });

</script>

    <form name="textnextofkin" id="textnextofkin" method="POST" action="">
        <div class="hiddenfields">
            <p>Username:<br>
                <input name="EsendexUsername" type="text" value="AAAAA"></p>
            <p>Password:<br>
                <input name="EsendexPassword" type="password" value="AAAAA"></p>
            <p>Account:<br>
                <input name="EsendexAccount" type="text" value="AAAAA"></p>
            <p>Send Name<br>
                <input name="EsendexOriginator" type="text" value="example"></p>
            <p>Recipient:<br>
                <input name="EsendexRecipient" type="text" value="01234123456"></p>
            <p>Message:<br>
                <input name="EsendexBody" rows="3" cols="20" value="Hello test message"></p></div>
                <input type="submit" class="email-buttons" name="submit" value="Text next of kin">
    </form>

process2.php:

<?php 
    // Initialise CURL
    $curl_handle = curl_init();
    $data ="EsendexUsername=AAAAA&EsendexPassword=AAAAA&EsendexAccount=AAAAA&EsendexRecipient=01234123456&EsendexBody=test"; 
    $url = "https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx";
    curl_setopt ($curl_handle, CURLOPT_URL,$url);
    curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($curl_handle, CURLOPT_POSTFIELDS, $data);

    $result = curl_exec ($curl_handle);
    curl_close ($curl_handle); 
?>

Мне нужно изменить это, чтобы я мог вместо этого отправить POST данные формы в process.php, а затем использовать process.php для отправки информации на веб-сайт Esendex. Мне нужно сделать это, потому что process.php содержит данные, которые нужно включить в форму (например, $ _SESSION ['first_name']). Полагаю, мне нужно изменить вышеуказанный URL-адрес Esendex на process.php, но тогда я не знаю, что нужно ввести на страницу process.php для отправки получаемой информации.

Может ли кто-нибудь помочь мне сделать это?

Спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 11 мая 2011

Самое важное, что вам нужно знать, это то, что вам нужно включить curl, прежде чем вы сможете использовать код ниже.Скручивание обычно включено, но его стоит проверить

<?php 
    // Initialise CURL
    $curl_handle = curl_init();
    $data ="EsendexUsername=value&EsendexUsername=value&EsendexAccount=value"; 
    $url = "https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx";
    curl_setopt ($curl_handle, CURLOPT_URL,$url);
    curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($curl_handle, CURLOPT_POSTFIELDS, $data);

    $result = curl_exec ($curl_handle);
    curl_close ($curl_handle); 
?>

РЕДАКТИРОВАТЬ

попробуйте этот код вместо

<?php 
    // Initialise CURL
    $curl_handle = curl_init();
    $data ="EsendexUsername=value&EsendexUsername=value&EsendexAccount=value"; 
    $url = "https://www.esendex.com/secure/messenger/formpost/SendSMS.aspx";
    curl_setopt ($curl_handle, CURLOPT_URL,$url);
    curl_setopt ($curl_handle, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($curl_handle, CURLOPT_POSTFIELDS, $data);
    curl_setopt( $curl_handle, CURLOPT_SSL_VERIFYPEER, false );  //so we can post to https  
    $result = curl_exec ($curl_handle);
    curl_close ($curl_handle); 
?>

Приведенный выше код является простофрагмент, так что я не передал все $ данные, как вы можете видеть, поэтому вам придется сделать его более полным.Поместите код в process.php, и он должен отправить данные на веб-сайт Esendex.

EDIT Я бы посоветовал вам ознакомиться с CURL, чтобы действительно понять, что происходит в приведенном выше коде.Хорошей отправной точкой будет сайт php.ne t

1 голос
/ 11 мая 2011

Вы публикуете все вещи с помощью ajax в process.php. там вы получаете все переменные из массива $ _POST и добавляете свои поля.

Тогда вы можете использовать curl, чтобы сделать репост в esendex и поймать результат, который вы затем вернете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...