Page 1 sur 1

formulaire e-commerce

Posté : 26 juin 2006, 21:56
par mibs
Hello,

Voilà en fait je fait un petit e-shop pour mon site. A un moment donné le client clique sur un bouton acheter pour aller dans la zone achat. A ce moment son e-mail ( qui est contenu dans la variable de session ) est enregistrée dans une table shop_commerce en ligne

Jusque là tout est bon.

Ensuite si ce client revient, et reclique sur le bouton achat une requète vérifie si le client figure déjà dans la table table shop_commerce

Jusque là tout est bon.

Apès vérification si le client ne figure pas, il sera àjouté à la table shop_commerce SINON aucun n'enregistrement n'est ajouté.

Et c'est là mon problème regardez :
 if ($boutonacheterChaqueUser  == 1) { // Show if recordset empty 
          
		   if ($sessionuser != $rowclient){
		   $varClientInscr = $sessionuser;
		   }
Donc ici je dis que si y a pas le client, alors $varClientInscr => aura la valeur du mail de client pour que je puisse enregistrer là c'est ok
            else
		   {
		   Ne poste pas le formulaire
                   Dirige nous vers une nouvelle page mapage.php
		   }
		   ?>
<form action="<?php echo $editFormAction; ?>" id="form1" name="achat" method="POST">
         <table width="186" border="1">
           <tr>
             <td width="60" height="28"><label>

<input name="Submit2" type="submit" id="Submit2" value="Acheter" />

Le truc c'est que dans else ( donc si un client existe ), mettre que $varClientInscr = "" ou NULL, ça ne passe pas car en fait my php admin n'accepte pas ça, il veut absolument une entrée.
Et justement il ne faut pas qu'il rajoute une ligne dans la table vu que le client est présent.

Donc je veux qu'il ne poste pas mais qu'il me dirige vers la page suivante c'est tout

Je sais pas si j'ai été très clair...

Une idée ?

:?

Posté : 27 juin 2006, 00:23
par datesta
si myphpadmin accepte pas c'est peut etre parceque tu a mis le champ en NOT NULL :?:

Posté : 27 juin 2006, 09:08
par guilt92
Bonjour,

Tu peux pas utiliser la fonction php de redirection, a savoir header.
Si tu ajoutes header("Location: mapage.php"); cela devrait fonctionner et si c'est dans le else tu seras redirigé directement...
else 
           { 
           //Ne poste pas le formulaire 
           //Dirige nous vers une nouvelle page mapage.php 
          header("Location: mapage.php");
           } 

Cette solution ne te convient pas ?

Posté : 27 juin 2006, 12:44
par mibs
Hello,

Oui, le champ était bien en not null, mais j'ai essayé de mettre NULL. Mais à ce moment un enregistrement se fait quand même dans la table mais ca crée quand même un enregistrement avec le champ en NULL.

Donc il faut que l'enregistrement ne s'effectue pas... même en mode NULL sinon un enregistrement s'effectue quand même.

sinon concernant la redirection automatisée
header("Location: mapage.php");
j'avais fais déjà comme ça mais ca n'avait pas marché, à cause que d'abord il devait valider l'enregistrement et ça faisait l'erreur.

Posté : 28 juin 2006, 12:35
par mibs
Pas d'idées pour le moment ?

Posté : 28 juin 2006, 13:14
par sadeq
....
sinon concernant la redirection automatisée
header("Location: mapage.php");
j'avais fais déjà comme ça mais ca n'avait pas marché, à cause que d'abord il devait valider l'enregistrement et ça faisait l'erreur.
C'est le header qui te faut. Maintenant si tu refuse une solution parcequ'il y a une erreur due à une mauvaise conception et utilisation du redirecteur
ce n'est certainement pas la faute à header.

Alors les vraies questions:
- C'était quoi l'erreur en utilisant header?
- Sais-tu comment utiliser header?
- Comment est l'algorithme général que tu utilises? et c'est quoi l'emplacement de "valider l'enregistrement" dans la séquence du programme?