使用Post两次出错?

时间:2014-01-18 01:44:39

标签: php html post paypal

因为我使用的是PayPal和BlueSnap我有两个不同的IPN,并且当它们都在页面上时似乎有问题,如果我拿走一个然后他们将工作真的需要这个工作花了几个小时试图解决它:/

<?php
    /**
     * If the player clicks the continue
     * button, it will perform the following
     * process. The process will redirect to
     * the checkout URL as long as the player
     * has entered their username details.
     */
    if (isset($_POST['continue'])) {
        $username = trim($_POST['username']);
        $product = trim($_POST['product']);
        if ($username != "Enter Username" && $username != "") {
            header("Location: http://www.plimus.com/jsp/buynow.jsp?contractId=" . $product . "&custom1=" . $username);
            exit;
        }
    }
?>
<html>

            <form action="<?php ?>" method="POST">
                <div name="select">
                    Product:
                    <select name="product">

                    </select>
                </div>
                <div name="username">
                    Username:
                    <input type="text" maxlength="12" name="username" value="Enter Username" onblur="if(this.value=='') this.value='Enter Username';" onfocus="if(this.value=='Enter Username') this.value='';"/>
                </div>
                <?php
                    /**
                     * If the user enters their username details
                     * incorrectly, it will perform this process.
                     * This will just send a line of text asking
                     * them to enter their username. I recommend
                     * carrying over this process when you integrate
                     * it with your own website theme.
                     */
                    if (isset($_POST['continue']))
                        echo "<font color=red>Please enter your username.</font>";
                ?>
                <div name="button">
                    <button type="submit" name="continue" value="Continue">Continue</button>
                </div>
            </form>
<a href="http://www.plimus.com/ecommerce/buyers" target="_blank" title="Trusted and Secure Online Payment Processing via PLIMUS"><img src="https://www.plimus.com/images/icons_wizard/icons/cards/cards_type2_1-1.gif" border="0"></a>
            </center>

            <br>

            <br>
<center>
<?php

    if(isset($_POST['submit'])) {
        $errors = array();

        $user = trim($_POST['user']);
        $prod = trim($_POST['prod']);
        header("Location: paypal.php?username=". $user ."&prod=". $prod);
        exit;
    }

?>

    <form action="<?php echo basename($_SERVER['PHP_SELF']); ?>" method="POST">
    <tr><td><center>
        <table>
            <select name="prod">


            </select> </td></tr>
            <tr>
                <td>Username:</td>
                <td><input type="text" name="user" value="" /></td> <td colspan="2"><input type="submit" name="submit" value="Submit" /></td> 
            </tr>
            </table>
            </form>

1 个答案:

答案 0 :(得分:0)

假设您将处理过的数据存储到某种形式的数据库中 我会做的是像往常一样存储数据,然后运行快速选择以确保没有双重提交。 这也假设您已经清理/验证了POSTDATA

$check = mysqli_query($link, "SELECT `id` FROM `ipn_data` WHERE `txn_id` = '".$_POST['txn_id']."'");
if(mysqli_num_rows($check))
    exit("You've already submitted this payment");
mysqli_query($link, "INSERT INTO `ipn_data` (`custom`, `txn_id`) VALUES (".$_POST['custom'].", '".$_POST['txn_id']."')");

沿着这些方向的东西。
我可以根据要求提供我的paypal IPN课程

<form action="someaction.php" name="paypal" method="post">
<form action="someaction.php" name="plimus" method="post">
然后只需运行检查以查看发布的表格:
if(isset($_POST['paypal']))
if(isset($_POST['plimus']))