2016-10-05 3 views
0

Итак, у меня есть две кнопки отправки, несмотря ни на что, даже если я удалю весь код с сломанной кнопки. Я получаю 403 erorr, но вторая кнопка отправки работает ...2 Submits 1 Выполняет тот же код?

Вот мой код html/php для кнопок:

<form action="buy.php?id=<?php echo $id; ?>" method="POST"> 
<input type="email" class="form-control" name="email" placeholder="Email" required> 
<br> 
<p></p> 
<?php if($row['pp'] == 1){ 
echo ' 
<input type="submit" class="btn btn-primary" value="Pay with Paypal" name="pp">'; 
} ?> 
<p></p> 
<?php if($row['btc'] == 1){ 
echo ' 
<input type="submit" class="btn btn-info" value="Pay with Bitcoin" name="btc">'; 
} ?></form> 

Код кнопки:

if(isset($_POST['btc'])){ 
    $email = htmlentities($_POST['email'], ENT_QUOTES); 
    $stmt = $db->prepare("INSERT INTO invoices (itemid, username, email, price, status, type) VALUES (:itemid, :username, :email, :price, :status, :type)"); 
    $stmt->execute(array(':itemid' => $id, ':username' => $row['username'], ':email' => $email, ':price' => $row['price'], ':status' => "awaiting", ':type' => "btc")); 
    $id = $db->lastInsertId(); 
    $stmt = $db->prepare("SELECT * FROM invoices WHERE id = :id"); 
    $stmt->execute(array(':id' => $id)); 
    $row2 = $stmt->fetch(); 
} 

разница только в том, где его БТД с для кнопки разбитым.

+2

Из этого я действительно не получить то, что произойдет, если вы отправляете с помощью кнопки с. – Aschab

+0

Ничто не подходит для запрещенного доступа 403. –

+1

... и где вы объявляете свои входные параметры ('$ id', ect' $ row'-array), которые вы используете в своих db-запросах, и в строке запроса? Вам нужно показать нам соответствующий код, а не только фрагменты. –

ответ

2

только <input type="submit" class="btn btn-info" value="Pay with Bitcoin" name="btc"> будет работать, потому что в вашем коде PHP, вы только разместить этот <input type="submit" class="btn btn-info" value="Pay with Bitcoin" name="btc">

Для достижения своей цели,

Используйте такое же имя как для кнопки, но с другим значением для каждого.

<input type="submit" class="btn btn-primary" value="Pay with Paypal" name="btnPay"> 
<input type="submit" class="btn btn-info" value="Pay with Bitcoin" name="btnPay"> 

Затем в файле PHP:

<?php 

    if(isset($_POST['btnPay'])){ 
    if($_POST['btnPay'] == "Pay with Paypal"){ 
     //code for paypal payment 
    } 
    else if($_POST['btnPay'] == "Pay with Bitcoin"){ 
     //code for bitcoin payment 
    } 
    } 

?> 
+0

... или просто иметь скрытое поле с btc или pp как значение, вместо сравнения меток кнопок на заднем конце (смена ярлыков и перерыв кода). –

+0

Это зависит от того, какой подход он должен использовать. – Irvin

+0

Спасибо, что исправил это. –