IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Probleme avec formulaire :/


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Par défaut Probleme avec formulaire :/
    Bonjour,

    Voici mon problème, quand je clique sur envoyer, il ne se passe strictement rien , mon formulaire me renvoie sur la meme page mais normalement il doit inserer les informations dans ma base de données et les echo doivent s'afficher bref cela ne fonctionne pas

    Vous allez me dire vas voir dans les tutoriaux pour corriger ton probleme , c'est fait mais je ne vois toujours pas où est le problème , bref si vous pouviez m'aider ...

    Voici un bout de mon code (sachant que la connection à la base est déjà faite :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
     
    $action = (isset($_POST['action']))?$_POST['action']:'';
    switch($action) {
    case "add":
     
    $connexion= @mysql_connect($serv,$user,$pass);
    if(!$connexion) {echo "Connexion impossible à la base de données <b>$bdd</b> sur le serveur <b>$serv</b><br>Vérifiez les paramètres du fichier conf.php"; exit;}
     
     
    if($_POST['Pseudo']==""){echo "Vous devez choisir un pseudo<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['Mdp']==""){echo "Vous devez choisir un mot de passe<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['Nom']==""){echo "Vous devez rentrer un nom<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['Prenom']==""){echo "Vous devez rentrer un prénom<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['Addresse']==""){echo "Vous devez rentrer une addresse<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['CP']==""){echo "Vous devez devez rentrer un code postal<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['Ville']==""){echo "Vous devez devez rentrer une ville<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
    if($_POST['Tel']==""){echo "Vous n'avez pas saisi votre numéro de téléphone<br><br><a href=\"javascript:window.history.back()\">Retour</a>";exit;}
     
     
    $requete=mysql_db_query($bdd,"select * from clients where Pseudo=\"$_POST\[\'Pseudo\'\]\"",$connexion) or die(mysql_error());
    $num=mysql_num_rows($requete);
    if($num!=0)
    	{
    	echo "Ce pseudo existe déjà, veuillez en choisir un autre<br><br><a href=\"javascript:window.history.back()\">Retour</a>";
    	}
    else
    {
    	$requete=mysql_db_query($bdd,"select max(Code_cli) from clients",$connexion) or die(mysql_error());
    	$idmax=mysql_result($requete,0,"max(Code_cli)");
     
    	$idnew=$idmax+1;
    	$requete=mysql_db_query($bdd,"insert into clients values ($idnew,\"$_POST\[\'Pseudo\'\]\",\"$_POST\[\'Mdp\'\]\",\"$_POST\[\'Nom\'\]\",\"$_POST\[\'Prenom\'\]\",\"$_POST\[\'Addresse\'\]\",\"$_POST\[\'CP\'\]\",\"$_POST\[\'Ville\'\]\",\"$_POST\[\'Tel\'\]\",\"$_POST\[\'Fax\'\]\",\"$_POST\[\'Societe\'\]\")",$connexion) 
    	or die(mysql_error());
     
    	echo "Merci, vous êtes bien enregistré. Cliquez <a href=\"..\index.php\">ici</a> pour retourner à l'accueil.";
    }	
     
    mysql_close($connexion);
     
    break;
    default :
    ?>
    <center>
    <form action='Inscriptions.php' method="POST" name="action" value="add">  <p> 
    Login*<input type="text" name="Pseudo" size="25" ><br>
    Mot de passe*<input type="password" name="Mdp"  size="25" ><br>
    Nom*<input type="text" name="Nom" size="25"  ><br>
    Prénom*<input type="text" name="Prenom"  size="25" ><br>
    Addresse*<input type="text" name="Addresse"  size="25" ><br>
    Code Postal* <input type="text" name="CP" size="25" ><br>
    Ville*<input type="text" name="Ville" size="25" ><br>
    Téléphone*<input type="text" name="Tel" size="25" ><br>
    Fax<input type="text" name="Fax" size="25" ><br>
    Societé<input type="text" name="Societe" size="25" >	  <br>
     
    <br><br><br>
    <p align="center" ><font size="1"><i> Les champs comportant un * sont obligatoires</i></font></p>
    <br>	  
     
    	  <input type="submit" ><br >
    </center>	  	  
    </form>
    <?
    break;
    }
    ?>

  2. #2
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    je pense que le problème vient du fait que "action" ne vaut jamais add. Il faut que ton action soit un champ input de type hiddent dans ton formulaire (ou mettre le nom action a ton submit, au choix) mais pas que ca soit dans la balise <form ... />

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut


    Comme le dit koopajah, le nom de ton formulaire N'EST PAS une variable transmise par post. Pour coder ses suggestions :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //champ caché
    <input type="hidden" name="action" value="add">
    // ou bouton submit :
    <input type="submit" name="action" value="add">

    Par ailleurs, je te conseille de n'utiliser le switch-case que si $action peut avoir plusieurs valeurs. Si vraiment tu as besoin d'utiliser des case, n'oublie les {} autour des blocs
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    switch($action) {
      case "add" : 
       {
        ...
       }
       break
      default :
       {
        ...
       }
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Citation Envoyé par Celira
    Par ailleurs, je te conseille de n'utiliser le switch-case que si $action peut avoir plusieurs valeurs. Si vraiment tu as besoin d'utiliser des case, n'oublie les {} autour des blocs
    Pourquoi mettre des {} autour de chaque "case" ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 8
    Par défaut
    Merci ca marche, mais maintenant ce qui rentre dans chacun de mes champs dans ma base de données c'est : Array['Pseudo'] , Array['Mdp'] , etc

    Et donc au bout de la deuxieme inscriptions , ca me met le pseudo existe deja

  6. #6
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    JE remplacerai ca :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_db_query($bdd,"select * from clients where Pseudo=\"$_POST\[\'Pseudo\'\]\"",$connexion) or die(mysql_error());

    par ca
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $requete=mysql_db_query($bdd,"select * from clients where Pseudo='" .$_POST['Pseudo']  "'",$connexion) or die(mysql_error());

    et idem pour les autres lignes qui utilisent $_POST[] dans une requete.

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Novembre 2004
    Messages : 151
    Par défaut
    bonjour,

    Personnellement pour plus de clarté j'écrirais les requete avec des simples quotes ...
    ca sert à rien d'écrire avec des doubles.

  8. #8
    Membre Expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Par défaut
    Comment ça, ca sert a rien ?
    Il faut bien mettre des quotes autour de la requete, ET des quote autour de chaque valeur a insérer dans la table (si c'est du texte).

    Donc je trouve plus clair ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Select * FROM matable WHERE monchamp = '". $mavaleur . "'";
    Que ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'Select * FROM matable WHERE monchamp = "'. $mavaleur . '"';
    Après c'est une question d'habitude mais je vois pas en quoi ca ne sert a rien les quote.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec formulaire rappelant la page
    Par zorba49 dans le forum Langage
    Réponses: 5
    Dernier message: 30/01/2007, 12h10
  2. Problème avec formulaire PHP
    Par silvain dans le forum Langage
    Réponses: 8
    Dernier message: 28/08/2006, 23h58
  3. probleme avec formulaire
    Par rane dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 20
    Dernier message: 26/06/2006, 13h27
  4. Réponses: 4
    Dernier message: 25/04/2006, 11h10
  5. Réponses: 3
    Dernier message: 24/02/2005, 15h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo