[PHP] validation d1 formulaire via phpmyadmin

kanabinch Messages postés 42 Date d'inscription   Statut Membre -  
kanabinch Messages postés 42 Date d'inscription   Statut Membre -
Bonjour,

Voilà j'ai besoin que qq'un qui me dise où est-ce que mon code cloche.
Il permet d'enregistrer un eleve grâce à un formulaire dans la base de donnée phpmyadmin.
Mon problème l'enregistrement dans la base de données ne fonctionne pas.

FORMULAIRE :
<form method="post" action="inscription.php">
<table>
<tr>
<td>Nom</td>
<td><input type="text" name="nom"></td>
</tr>

<tr>
<td>Prenom</td>
<td><input type="text" name="prenom"></td>
</tr>

<tr>
<td>Date de naissance</td>
<td><input type="text" size="10" name="dat_naiss">(jj/mm/aaaa)</td>
</tr>
</table>

<input type="submit" value="Valider" name="Valid">

</form>

CODE PHP (dans la même page):
<?php
include("inclusion/connexion.php");

if(isset($Valid))
{
if (empty($_REQUEST['nom']) || empty($_REQUEST['prenom']) || empty($_REQUEST['dat_naiss']))
die("ERREUR : tous les champs doivent etre remplis.");

$sql="INSERT INTO eleve (nom_eleve, pnom_eleve, dat_naiss_eleve)
VALUES ('".$_REQUEST['nom']."','".$_REQUEST['prenom']."','".$_REQUEST['dat_naiss']."')";

mysql_query($sql);

if (mysql_query($sql) != false)
print("eleve < ".$_REQUEST['nom']." > enregistré.");
else
print("Echec lors de la création de la fiche.");

mysql_close();
}
?>

Merci d'avance
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. Alain_42 Messages postés 5413 Statut Membre 904
     
    Bonjour,

    qqs erreurs: il faut récuperer par $_POST

    Essayes comme ça:

    <?php
    include("inclusion/connexion.php");
    
    if(isset($_POST['Valid']))
    {
    if (empty($_POST['nom']) || empty($_POST['prenom']) || empty($_POST['dat_naiss'])){
    
    $sql="INSERT INTO eleve (nom_eleve, pnom_eleve, dat_naiss_eleve)
    VALUES ('".$_POST['nom']."','".$_POST['prenom']."','".$_POST['d at_naiss']."')";
    
    $enr=mysql_query($sql) or die ("Pb avec la requette :".mysql_error());// rajouté trace erreur
    
    //if (mysql_query($sql) != false)  //comme ça c'est pas bon car tu fais deux fois la commande mysql_query
    if($enr){ // sous entendu $enr true
    	print("eleve < ".$_POST['nom']." > enregistré.");
    }else{
    	print("Echec lors de la création de la fiche.");
    }
    mysql_close();
    }
    }else{
    	print "ERREUR : tous les champs doivent etre remplis.";
    }
    ?> 
    
    0
  2. Alain_42 Messages postés 5413 Statut Membre 904
     
    Rebonjour,

    En complement à mon précedent post:

    essayes comme ça fichier inscription.php:

    <html>
    <?php
    //int variables
    $form_ok=0;
    //recup des valeurs postées en passant la fonction htmlentities (protection contre codes malicieux, on ne sait jamais)
    	// si tu ne comprends pas les 3 lignes ci dessous vas voir sur Google ou Exalead "PHP objet ternaire"
    	$nom=isset($_POST['nom']) ? htmlentities($_POST['nom']) : "";
    	$prenom=isset($_POST['prenom']) ? htmlentities($_POST['prenom']) : "";
    	$date_naiss=isset($_POST['dat_naiss']) ? htmlentities($_POST['dat_naiss']) : "";
    
    if(isset($_POST['Valid'])){
    	
    	
    	if ($nom=="" || $prenom =="" || $date_naiss ==""){// si au moins un des champs est vide
    		print "<font color=\"red\">ERREUR : tous les champs doivent etre remplis.</font>";
    		
    	}else{
    		$form_ok=1;
    		
    		include("inclusion/connexion.php");
    		$sql="INSERT INTO eleve (nom_eleve, pnom_eleve, dat_naiss_eleve)
    		VALUES ('".$nom."','".$prenom."','".$prenom."')";
    
    		$enr=mysql_query($sql) or die ("Pb avec la requette :".mysql_error());// rajouté trace erreur
    
    		//if (mysql_query($sql) != false)  //comme ça c'est pas bon car tu fais deux fois la commande mysql_query
    		if($enr){ // sous entendu $enr true
    			print("Eleve < ".$_POST['nom']." > enregistré.");
    		}else{
    			print("Echec lors de la création de la fiche.");
    		}
    		mysql_close();
    		
    		}
    }		
    if($form_ok==0){// si premier affichage ou si saisies  non comformes on affiche le formulaire
    ?> 
    
    	<form name="ma_form" method="post" action="inscription.php">
    	<table>
    	<tr>
    	<td>Nom</td>
    	<td><input type="text" name="nom" value="<?php print $nom; ?>"></td>
    	<!-- value=".........." c'est pour que si une des saisies est non comforme ça réaffiche celles déja saisie  -->
    	</tr>
    
    	<tr>
    	<td>Prenom</td>
    	<td><input type="text" name="prenom" value="<?php print $prenom; ?>"></td>
    	</tr>
    
    	<tr>
    	<td>Date de naissance</td>
    	<td><input type="text" size="10" name="dat_naiss" value="<?php print $date_naiss; ?>">(jj/mm/aaaa)</td>
    	</tr>
    	</table>
    
    	<input type="submit" value="Valider" name="Valid">
    
    	</form>
    <?php
    }
    ?>
    </html>
    
    0
  3. kanabinch Messages postés 42 Date d'inscription   Statut Membre 1
     
    Merci d'avoir pris le temps de résoudre mon problème mais j'ai encore un problème

    Il s'affiche :

    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\directeur\inscription.php on line 75

    72 $form_ok=1;
    73 include("inclusion/connexion.php");
    74 $sql="INSERT INTO eleve (nom_eleve, pnom_eleve, dat_naiss_eleve)
    75 VALUES ('".$nom."','".$prenom."','".$prenom."')";
    76
    77 $enr=mysql_query($sql) or die ("Pb avec la requette :".mysql_error());
    0
  4. Alain_42 Messages postés 5413 Statut Membre 904
     
    Essayes avec:

    $sql="INSERT INTO eleve (nom_eleve, pnom_eleve, dat_naiss_eleve)  VALUES ('".$nom."','".$prenom."','".$date_naiss."')";
    


    J'avais mis deux fois $prenom
    et vérifies bien que tu n'ai pas une erreur dans la dernière ligne de ton fichier inclus "connexion.php"

    un ; qui manque par exemple
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. kanabinch Messages postés 42 Date d'inscription   Statut Membre 1
     
    J'ai rectifier pour les 2 $prenom, faute d'inattention mais ça fait toujours la même chose.
    Si il y avait eu une erreur au niveau de la requette il y aurait écrit "Pb avec la requette" mais ce n'est pas le cas
    pour mon inclusion tout est correct, il ne manque pas de ";" non plus.

    Savez-vous ce que signifie :
    "Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\directeur\inscription.php on line 77"
    (77 correspond toujours à la même ligne)
    ?
    0
  7. kanabinch Messages postés 42 Date d'inscription   Statut Membre 1
     
    J'ai 2/3 petites erreurs et maintenant qd je saisi nom, prenom et date de naissance et que je fais Valider ça me dit
    "eleve < toto > enregistré."
    Par contre qd je vais ds la base de données une ligne correspond à cet enregistrement mais sans les données (vide)
    0
  8. Alain_42 Messages postés 5413 Statut Membre 904
     
    Cette erreur signifie que php ne comprend pas une varaible.

    C'est signe d'une erreur de syntaxe quelque part , en général ligne précédente.

    La je n'en vois pas mais regardes bien ton fichier connexion.php ou mets le code de ce fichier en masquant les codes d'accès à la base bien sûr.

    @lain
    0
  9. kanabinch Messages postés 42 Date d'inscription   Statut Membre 1
     
    et lorsque je clik sur Valider sans avoir saisi aucune information
    il est écrit "eleve < > enregistré."
    Pas de message d'erreur.
    Bon en tout cas vous m'avez bcp aidé et je vous remercie. Je ne vais pas vous emmebêter plus
    au revoir
    0