probleme verification formulaire

Petit nouveau ! | 3 Messages

14 mars 2007, 17:13

Bonjour,
J'ai un formulaire normalement quant le formulaire est bien rempli il devrais ne pas appliquer la partie avec le if et aller directement a la partie ou il se connecte la base mysql et remplie la base de donnée Mysql la il l'applique,donc que me manque t'il.

de plus quand la personne reoublis un champs la il ne me reconnais plus la variable pseudo
je voudrais bien savoir où est le probleme.
<html><body>
<?php
	
	{	
		$etiquettes = array ( "nom" => "nom",
							  "prenom"=> "prenom",
							  "email" => "email",
							  "pseudo" => "pseudo",
							  "races" => "races");
		foreach ($_POST as $clé=> $valeur)
		{if ($valeur == "" )
		 {
		     $champVide[$clé] = "blanc";
		 }
		}
		if (@sizeof($champVide) > 0)
		{ echo "<b>Un des champs n'a pas ete renseigné.
					vous devez saisir:</b><br>";
		}
			foreach ($champVide as $clé => $valeur)					 
		{		echo "&nbsp;&nbsp;&nbsp;&nbsp;$etiquettes[$clé]<br>";
		
		}	
		$nom= strip_tags(trim($_POST['nom']));
		$prenom= strip_tags(trim($_POST['prenom']));
		$email= strip_tags(trim($_POST['email']));
		$pseudo= strip_tags(trim($_POST['pseudo']));
		$races= strip_tags(trim($_POST['races']));
		
		
  				
		echo "<p><hr>
			<form action='traitement4.php' method='post'>
			<center>
        <table widht='95%' border='0' cellspacing='0'  cellpadding='2' >
		<tr><td align='right'><B>{$etiquettes['nom']}:</br></td>
			<td><input type='text' name='nom' size='50' maxlenght='50' value='$nom'></td>
			</tr>
			<tr><td align='right'><B>{$etiquettes['prenom']}:</br></td>
			<td><input type='text' name='prenom' size='50' value='$prenom'></td>
			</tr>
			<tr><td align='right'><B>{$etiquettes['pseudo']}:</br></td>
			<td><input type='text' name='psuedonyme' size='50' value='$pseudo'></td>
			</tr>
			<tr><td align='right'><B>{$etiquettes['email']}:</br></td>
			<td><input type='right' name='email' size='50' value='$email'></td>
			</tr>
			</table>
			</center>";
			
			?>

     
    //<div align='center'> 
	<br><strong>quelle race allez vous jouer:</strong></br>
    <?php     

    $user="root"; 
    $host="localhost"; 
    $password=""; 
    $database="race"; 
                 $connexion = mysql_connect($host, $user, $password) 
        or die ("connexion au serveur impossible"); 
    $db = mysql_select_db($database,$connexion) 
        or die ("selection de la base impossible"); 
    $rq = "SELECT races FROM race"; 
    $result = mysql_query($rq) 
        or die ("execution de la requete impossible"); 
    echo "<from action='traitement.php' method='POST'> 
        <select name='races'>\n"; 
                 while ($ligne = mysql_fetch_array($result)) 
    {extract($ligne); 
     if ($races<>"") 
    echo " <option value='$races'>$races\n\n</div>"; 
    } 
      ?> </table>
    <?php  
        echo " <div align='center'><p><input type='submit' value='inscription'>\n</div> 
      </form>\n"; 
	   exit();
	  }
?> 
<?php
		$user="root";	
		$host="localhost";
		$password="";
		$database="inscrip";
		$connection = mysql_connect($host,$user,$password)
			or die ("connexion au serveur impossible");
		$db= mysql_select_db($database,$connection)
			or die ("selection de la base de donnée impossible");
		$rq= "INSERT INTO inscription (nom,prenom,email,pseudo,race)
				VALUES ('$nom','$prenom','$email','$pseudo','$races')";
		$result = mysql_query($rq)
			or die ("execution de la requete impossible");
			echo "inscription effectué nous vous recontacterons plus tart<br></br>";
		exit();
		?>
<php>

Eléphanteau du PHP | 17 Messages

14 mars 2007, 17:26

1 - Pourquoi est-ce que la vérification échoue et la validation passe ?
Essaie d'ajouter la condition avant l'insertion des données dans la base.

Code : Tout sélectionner

<?php if (@sizeof($champVide) == 0){ $user="root"; $host="localhost"; $password=""; $database="inscrip"; $connection = mysql_connect($host,$user,$password) or die ("connexion au serveur impossible"); $db= mysql_select_db($database,$connection) or die ("selection de la base de donnée impossible"); $rq= "INSERT INTO inscription (nom,prenom,email,pseudo,race) VALUES ('$nom','$prenom','$email','$pseudo','$races')"; $result = mysql_query($rq) or die ("execution de la requete impossible"); echo "inscription effectué nous vous recontacterons plus tart<br></br>"; exit(); } ?>
ça permet de vérifier : Si tous les champs ont bien été saisis > Alors on ajoute les données




2 - Pour ta variable pseudo, c'est normal, car le champ s'appelle "psuedonyme" et non "pseudo". Il faut que tu le renomme

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

14 mars 2007, 18:07

Quelques remarques en passant sur ton code, même si Crapaud a déjà répondu aux soucis que tu rencontres :)
<html><body> 
<?php 
     
    {     // s'il n'y a pas de test avant, cette accolade ne sert à rien

        $etiquettes = array ( "nom" => "nom", 
                              "prenom"=> "prenom", 
                              "email" => "email", 
                              "pseudo" => "pseudo", 
                              "races" => "races"); 

        foreach ($_POST as $clé=> $valeur) {
                if ($valeur == "" ) { 
                     $champVide[$clé] = "blanc"; 
                } 

        } 

        if (@sizeof($champVide) > 0) { // plutôt que d'utiliser le @ pour cacher les erreurs, pourquoi ne pas déclarer le tableau $champVide avant de l'utiliser ? 
                echo "<b>Un des champs n'a pas ete renseigné. 
                    vous devez saisir:</b><br>"; 
        } 
        foreach ($champVide as $clé => $valeur) {
                echo "&nbsp;&nbsp;&nbsp;&nbsp;".$etiquettes[$clé]."<br>"; // sortir les variables, c'est plus propre
        }     

        $nom= strip_tags(trim($_POST['nom'])); 
        $prenom= strip_tags(trim($_POST['prenom'])); 
        $email= strip_tags(trim($_POST['email'])); 
        $pseudo= strip_tags(trim($_POST['pseudo'])); 
        $races= strip_tags(trim($_POST['races'])); 
         
        echo "<p><hr> 
            <form action='traitement4.php' method='post'> 
            <center> 
        <table widht='95%' border='0' cellspacing='0'  cellpadding='2' > 
        <tr><td align='right'><B>".$etiquettes['nom'].":</br></td> 
            <td><input type='text' name='nom' size='50' maxlenght='50' value='".$nom."'></td> 
            </tr> 
            <tr><td align='right'><B>".$etiquettes['prenom'].":</br></td> 
            <td><input type='text' name='prenom' size='50' value='".$prenom."'></td> 
            </tr> 
            <tr><td align='right'><B>".$etiquettes['pseudo'].":</br></td> 
            <td><input type='text' name='pseudo' size='50' value='".$pseudo."'></td> 
            </tr> 
            <tr><td align='right'><B>".$etiquettes['email'].":</br></td> 
            <td><input type='right' name='email' size='50' value='".$email."'></td> 
            </tr> 
            </table> 
            </center>"; // idem, sortir les variable, c'est mieux
             
            ?> 

      
    //<div align='center'>  <!-- les commentaires en html, c'est pas // ;) --> 
    <br><strong>quelle race allez vous jouer:</strong></br> 
    <?php      

    $user="root";  
    $host="localhost";  
    $password="";  
    $database="race";  

    $connexion = mysql_connect($host, $user, $password) or die ("connexion au serveur impossible");  
    $db = mysql_select_db($database,$connexion) or die ("selection de la base impossible");  

    $rq = "SELECT races FROM race";  
    $result = mysql_query($rq) or die ("execution de la requete impossible");  

    echo "<from action='traitement.php' method='POST'>  
        <select name='races'>\n";  
                 while ($ligne = mysql_fetch_array($result))  {
                     extract($ligne);  
                     if ($races<>"")  
                     echo " <option value='".$races."'>$races\n\n</div>";  
                }  
      ?> </table> <!-- C'est quoi cette balise table ?? un </select> ne serait-il pas plus adapté ? :) -->


    <?php   
        echo " <div align='center'><p><input type='submit' value='inscription'>\n</div>  
      </form>\n";  
       exit(); 

      } 

?>  
<?php 
	// s'il n'y a pas de test, cette requête s'exécute à chaque fois, quelles que soit les valeurs saisies..

        $user="root";     
        $host="localhost"; 
        $password=""; 
        $database="inscrip"; 
        $connection = mysql_connect($host,$user,$password) or die ("connexion au serveur impossible"); 
        $db= mysql_select_db($database,$connection)  or die ("selection de la base de donnée impossible"); 
        $rq= "INSERT INTO inscription (nom,prenom,email,pseudo,race) 
                VALUES ('".$nom."','".$prenom."','".$email."','".$pseudo."','".$races."')"; 
        $result = mysql_query($rq) or die ("execution de la requete impossible"); 
            echo "inscription effectué nous vous recontacterons plus tart<br></br>"; 
        exit(); 
        ?> 
<php> <!-- ca sert pas non plus ça :) -->
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...