представить две вещи случаются - PullRequest
0 голосов
/ 11 марта 2011

Мое действие отправляет скрытые входные данные в PayPal для проверки. Мне также нужно отправить мне электронное письмо, прежде чем оно перейдет в PayPal.

Но так как действие моей формы вызывает PayPal, я не могу вызвать другую функцию. Я думал, что мог бы просто создать action = self и сделать то, что мне нужно, на своей странице, а затем отправить переменные nessesery post в paypal. Я делаю снимок ниже:

<?
if(isset($_POST['submit'])){
//get post data for me clean up and save then send

if(!mail(data, myemail, headers)){
//send data to paypal. 
curl(https://www.paypal.com/cgi-bin/webscr);
}

}else{
?>
<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<!-- DATA FOR ME-->

<p>Child's Name: <? echo $child_name; ?></p>
    <input type="hidden" name="child_name" value="<? echo $child_name; ?>">

<p>Birth Date: <? echo $birth_date; ?></p>
    <input type="hidden" name="birth_date" value="<? echo $birth_date; ?>">

<p>Parent/Guardian Name: <? echo $name; ?></p>
    <input type="hidden" name="name" value="<? echo $name; ?>">

<p>Email Address: <? echo $email; ?></p>
    <input type="hidden" name="email" value="<? echo $email; ?>">

<p>Home Phone: <? echo $phone; ?></p>
    <input type="hidden" name="phone" value="<? echo $phone; ?>">



<!-- DATA FOR PAYPAL-->
<input type="hidden" name="business" value="you@youremail.com">
<input type="hidden" name="item_name" value="Item Name">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="amount" value="<?php echo $total; ?>">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="XXXXXXXXXX">
<input type="image" src="https://www.paypal.com/en_US/i/btn/btn_paynowCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
</form>

Должен ли я использовать curl для повторной отправки данных в PayPal после успешного выполнения функции mail () на моей странице? Не уверен, как это будет работать?

Ответы [ 3 ]

1 голос
/ 11 марта 2011
1 голос
/ 11 марта 2011

Может быть так

<?
$url = "";

if(isset($_POST['submit'])){
//get post data for me clean up and save then send

    if(!mail(data, myemail, headers)){
        $url = "https://www.paypal.com/cgi-bin/webscr";
    }

}else{
?>
<form action="<? echo $url; ?>" method="post">

<!-- Same form as in the original post -->

</form>

<?
if ($url != "") {
?>
<script language="javascript">
document.forms[0].submit();
</script>
<?
}
?>
0 голосов
/ 11 марта 2011

Почему бы просто не с помощью JavaScript? Подпрограмма onsubmit может отправить POST в сценарий CGI, который отправляет вам электронное письмо, а затем возвращает истинное значение, чтобы обычная отправка выполнялась в PayPal. <ч /> Если подумать, вам нужно использовать методологию AJAX, чтобы ваш браузер оставался на той же странице.

...