Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comment bloquer l´acces au bouton payer

Bloquer l´accés si frais de port non post

Sujet résolu
    30 novembre 2021 à 17:32:16

    Bonsoir ,

    j´ai réaliser un panier et je souhaiterai bloquer l´accés au bouton "Acheter" si l´utilisateur ne choisis pas les frais de ports.

    je suppose qu´il faudrait un IF ( si utilisateur ne $_POST ('port') )

    alors ... et c´est la ou je bloque je pourrai faire un echo et afficher un message du genre n´oublier pas de choisir les frais de ports ´)

    mais comment bloquer le bouton submit qui conduit sur ma page de paiement ???

    Voici mon code panier
    <?php endforeach; ?>
    			<FORM action="panierclass.php" method="post"><?php echo _("Estimation des frais de ports") ?> :
        			<SELECT name="port" size="1">
        			<OPTION value= 2.64><?php echo _("France + 2,64€") ?>
        			<OPTION value = 5.50><?php echo _("Union Européenne + 5,50€") ?>
        			<OPTION value= 5.50><?php echo _("International + 5,50€") ?>
        			</SELECT>
        			<input type="submit" value="<?php echo _("validez") ?>">
        			</FORM>
        			
    			<div class="rowtotal">
    				<?php echo _("Grand Total") ?> : <span class="total"><?= number_format($panier->total() * 1,2,',',' '); ?> € </span>
    			</div>
    			<input type="submit" value="Recalculer">
    		</div>
    	</div>
    	</form>
    	<form action="../payer.php">
             <button type="submit"><?php echo _("Acheter") ?></button>
    et voici la classe de mon panier ou j´ai les variables et la construction
    <?php
    class panier{
    
    	private $DB;
    
    	public function __construct($DB){
    		if(!isset($_SESSION)){
    			session_start();
    		}
    		if (empty($_SESSION['port'])) {
    			$_SESSION['port']= 0;
    		}
    		if(isset($_POST['port'])){
    			$_SESSION['port'] = $_POST['port'];
    		}
    		if(!isset($_SESSION['panier'])){
    			$_SESSION['panier'] = array();
    		}
    		$this->DB = $DB;
    
    		if(isset($_GET['delPanier'])){
    			$this->del($_GET['delPanier']);
    		}
    		if(isset($_POST['panier']['quantity'])){
    			$this->recalc();
    		}
    	}
    
    	public function recalc(){
    		foreach($_SESSION['panier'] as $product_id => $quantity){
    			if(isset($_POST['panier']['quantity'][$product_id])){
    				$_SESSION['panier'][$product_id] = 1;
    			}
    		}
    	}
    
    	public function count(){
    		return array_sum($_SESSION['panier']);
    	}
    
    	public function total(){
    		$total = 0;
    		$ids = array_keys($_SESSION['panier']);
    		if(empty($ids)){
    			$products = array();
    		}else{
    			$products = $this->DB->query('SELECT id, price FROM products WHERE id IN ('.implode(',',$ids).')');
    		}
    		foreach( $products as $product ) {
    			$total += $product->price * $_SESSION['panier'][$product->id];
    		}
    		if ($total > 50) {
    			$_SESSION['port']= 0;
    		}
    		return $total + $_SESSION['port'];
    	}
    
    	public function add($product_id){
            if(isset($_SESSION['panier'][$product_id])){
                $_SESSION['panier'][$product_id]++;
            }else{
                $_SESSION['panier'][$product_id] = 1;
            }
        }
    
    	public function del($product_id){
    		unset($_SESSION['panier'][$product_id]);
    	}
    
    }


    • Partager sur Facebook
    • Partager sur Twitter

    Comment bloquer l´acces au bouton payer

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown