Enregistrement dans une BDD mysql

Fermé
Hazel - 10 mars 2010 à 15:56
 Hazel - 12 mars 2010 à 08:59
Bonjour,

Je suis stagiaire dans un lycée et je dois rajouter une partie à leur site internet concernant les anciens élèves ; je dois vérifier qu'ils font bien partie de la base de données des anciens élèves (qui ne contient que leurs nom, prénom et date de naissance) et je dois leur permettre de s'inscrire via un formulaire pour compléter ces informations.

J'ai tout codé, la vérification fonctionne bien, mais malheureusement lorsque je remplis le formulaire et que je le valide, il ne se passe rien, enfin rien n'est enregistré dans la base de données... Je n'arrête pas de revérifier mon code, je ne trouve pas l'erreur ! Je n'ai pas eu de formation php dans mon école, et il n'y a personne pour m'aider, donc je me débrouille comme je peux, je m'excuse d'avance de mon faible niveau :/ ...

Voilà mon code, j'espère qu'il n'y a pas trop d'erreurs :


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
<title>Vérification de l'élève</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="design_montalembert.css" />
</head>

<body>

<div class="grand_cadre">
<a href="http://www.college-montalembert.net/com/homepage"><img src="images/banniere.jpg" alt="Collège-Lycée Montalembert" " border="0"/></a>

<h2>Vérification de l'élève :</h2>

<br/><br/>

<?php

if (!isset($_POST['valider']) ) ;

{

?>
<h3>Veuillez entrer vos nom, prénom et date de naissance dans les champs ci-dessous :</h3>
<div class="cadre">

<form action="verification_eleve.php" method="post">

<p>
<span class="libelle1">Nom : </span> <input type="text" name="nom_eleve" />   <span class="astérisque">* </span><br/><br/>
<span class="libelle1">Prénom(s) : </span> <input type="text" name="prenom_eleve" />   <span class="astérisque">*</span> <br/><br/>
Date de naissance :    
<span class="libelle1">Jour : </span>  <input type="text" name="jour_naiss"size="1px" />  <span class="astérisque">*</span>  
<span class="libelle1">Mois : </span>  <input type="text" name="mois_naiss"size="1px" />   <span class="astérisque">*</span>  
<span class="libelle1">Année :</span>   <input type="text" name="annee_naiss" size="2px"/>  <span class="astérisque">*</span>   (jj/mm/aaaa)

<br/><br/>

<input type="submit" name="valider"/>
</p>

</form>

</div>

<?php
}

if (isset($_POST['nom_eleve']) && isset($_POST['prenom_eleve']) && isset($_POST['jour_naiss']) && isset($_POST['mois_naiss']) && isset($_POST['annee_naiss']))
{
if ($_POST['nom_eleve'] != NULL && $_POST['prenom_eleve'] != NULL && $_POST['jour_naiss'] != NULL && $_POST['mois_naiss'] != NULL && $_POST['annee_naiss'] != NULL )
{
$date_naissance = $_POST['jour_naiss'] . $_POST['mois_naiss'] . $_POST['annee_naiss'] ;
$verification = false ;
$_POST['nom_eleve'] = strtoupper ($_POST['nom_eleve']) ;
$_POST['prenom_eleve'] = strtoupper ($_POST['prenom_eleve']) ;

mysql_connect("localhost", "root", "");
mysql_select_db("montalembert");

$reponse = mysql_query("SELECT * FROM eleves_comparer") or die(mysql_error() ) ;

while ($donnees = mysql_fetch_array ($reponse) )
{
if ($_POST['nom_eleve'] == $donnees['nom_eleve'] && $_POST['prenom_eleve'] == $donnees['prenom_eleve'] && $date_naissance == $donnees['date_naissance'])
{
$verification = true;
$nom_eleve = $_POST['nom_eleve'];
$prenom_eleve = $_POST['prenom_eleve'];
$id_eleve = $_POST['prenom_eleve'] . "_" . $_POST['nom_eleve'];
mysql_connect("localhost", "root", "");
mysql_select_db("montalembert");
mysql_query("INSERT INTO eleves_membres (num_eleve, id_eleve, nom_eleve, prenom_eleve, date_naissance) VALUES('', '$id_eleve', '$nom_eleve', '$prenom_eleve', '$date_naissance')");
mysql_close () ;
}

}

if ($verification == true)
{
?>
<br/><br/>

<form action="verification_eleve.php" method="post">

<h3>Inscription </h3>

<div class="cadre">

Nom :       <?php echo $_POST['nom_eleve']; ?> <br/><br/>
Prénom(s) :   <?php echo $_POST['prenom_eleve']; ?> <br/><br/>
Date de naissance :    
<?php echo $_POST ['jour_naiss']; ?>   /   <?php echo $_POST ['mois_naiss']; ?>
  /   <?php echo $_POST ['annee_naiss']; ?>
<br/><br/>
<span class="libelle2">Mot de passe : </span><input type="password" name="mot_de_passe"/> <span class="astérisque">*</span> (20 caractères maximum) <br/><br/>
Année d'entrée dans l'établissement :   <span class="libelle1">septembre </span>  <input type="text" name ="annee_entree" size="2px"/> <span class="astérisque">*</span>   
<span class="libelle1">Classe : </span>   <select name="classe_entree" id="classe_entree">
<option value="6ème">6ème</option>
<option value="5ème">5ème</option>
<option value="4ème">4ème</option>
<option value="3ème">3ème</option>
<option value="2nde">2nde</option>
<option value="1ère">1ère</option>
<option value="Terminale">Terminale</option>
</select> <span class="astérisque">*</span>
<br/><br/>

Année de sortie de l'établissement :       <span class="libelle1">juin </span> <input type="text" name ="annee_sortie"size="2px"/> <span class="astérisque">*</span>   
<span class="libelle1">Classe : </span>   <select name="classe_sortie" id="classe_sortie">
<option value="6ème">6ème</option>
<option value="5ème">5ème</option>
<option value="4ème">4ème</option>
<option value="3ème">3ème</option>
<option value="2nde">2nde</option>
<option value="1ère">1ère</option>
<option value="Terminale">Terminale</option>
</select> <span class="astérisque">*</span>
<br/> <br/>


</div>

<h3> Informations personnelles </h3>

<div class="cadre">

<span class="libelle2">Adresse : </span> <input type="text" name="adresse"/> <span class="astérisque">*</span> <br/><br/>
<span class="libelle2">Code postal : </span> <input type="text" name ="code_postal"size="3px"/> <span class="astérisque">*</span> <br/><br/>
<span class="libelle2">Ville : </span> <input type="text" name ="ville"/> <span class="astérisque">*</span> <br/><br/>
<span class="libelle2">Portable : </span> <input type="text" name="portable"size="10px"/> <span class="astérisque">*</span> <br/><br/>
<span class="libelle2">E-mail : </span> <input type="text" name="email"/> <span class="astérisque">*</span> <br/><br/>

</div>

<h3>Etudes post-bac</h3>

<div class="cadre">

<span class="libelle2">Etablissement : </span> <input type="text" name="etablissement_postbac"/><br/><br/>
<span class="libelle2">Filière : </span> <input type="text" name="filiere_postbac"/><br/><br/>
<span class="libelle2">Niveau d'études : </span> <input type="text" name="niveau_etudes"/><br/><br/>
</div>

<h3>Activité professionnelle</h3>

<div class="cadre">
<span class="libelle2">Domaine d'activité : </span> <input type="text" name="domaine_activite"/><br/><br/>
<span class="libelle2">Fonction : </span> <input type="text" name="fonction"/><br/><br/>
<span class="libelle2">Descriptif : </span> <input type="text" name="descriptif"/><br/><br/>
<span class="libelle2">Organisme : </span> <input type="text" name="organisme"/><br/><br/>
<span class="libelle2">Adresse : </span> <input type="text" name="adresse_organisme"/> <br/><br/>
<span class="libelle2">Code postal : </span> <input type="text" name ="cp_organisme"size="3px"/> <br/><br/>
<span class="libelle2">Ville : </span> <input type="text" name ="ville_organisme"/><br/><br/>
</div>
<br/>
<input type="submit" name="valider_enregistrement"/>
<br/><br/>
</div>
</body>

<?php

}
else
{
echo "Vous n'êtes pas dans notre base de données ! Si vous pensez qu'il y a un problème, veuillez contacter l'administrateur du site." ;
}

}
else
{
?>
<div class="cadre">
Vous n'avez pas rempli tous les champs nécessaires. (Les champs nécessaires sont marqués d'une <span class="astérisque">*</span>) <br/><br/>
Vous allez être redirigés vers la page précédente. Si vous ne souhaitez pas attendre, cliquez <a href="verification_eleve.php">ici</a>.
</div>

<?php
echo "<meta http-equiv='refresh' content='5';URL=verification_eleve.php'>";
}
}
?>
</form>

<?php

if (isset($_POST['valider_enregistrement']) )
{
mysql_connect("localhost", "root", "");
mysql_select_db("montalembert");

if ($_POST['mot_de_passe'] != NULL && $_POST ['annee_entree'] != NULL && $_POST ['annee_sortie'] && $_POST ['adresse'] != NULL
&& $_POST ['code_postal'] != NULL && $_POST ['ville'] != NULL && $_POST ['portable'] != NULL && $_POST ['email'] != NULL)

{
$annee_entree = $_POST ['annee_entree'] ;
$classe_entree = $_POST ['classe_entree'];
$annee_sortie = $_POST ['annee_sortie'] ;
$classe_sortie = $_POST ['classe_sortie'];
$adresse = $_POST ['adresse'];
$code_postal = $_POST ['code_postal'];
$ville = $_POST ['ville'];
$portable = $_POST ['portable'];
$email = $_POST ['email'];
$etablissement_postbac = $_POST['etablissement_postbac'];
$filiere_postbac = $_POST['filiere_postbac'];
$niveau_etudes = $_POST['niveau_etudes'];
$domaine_activite = $_POST['domaine_activite'];
$fonction = $_POST['fonction'];
$descriptif = $_POST['descriptif'];
$organisme = $_POST['organisme'];
$adresse_organisme = $_POST ['adresse_organisme'];
$cp_organisme = $_POST ['cp_organisme'];
$ville_organisme = $_POST ['ville_organisme'];
$mot_de_passe = $_POST['mot_de_passe'] ;

mysql_query("UPDATE eleves_membres SET annee_entree = '$annee_entree', classe_entree ='$classe_entree', annee_sortie = '$annee_sortie', classe_sortie =
'$classe_sortie', adresse = '$adresse', code_postal = '$code_postal', ville = '$ville', portable = '$portable', email = '$email', etablissement_postbac =
'$etablissement_postbac', filiere_postbac = '$filiere_postbac, niveau_etudes = '$niveau_etudes', domaine_activité = '$domaine_activite', fonction = '$fonction',
descriptif = '$descriptif', organisme = '$organisme', adresse_organisme = '$adresse_organisme', cp_organisme = '$cp_organisme', ville_organisme =
'$ville_organisme', mot_de_passe = '$mot_de_passe')");
mysql_close () ;

}
else
{
echo "Vous n'avez pas rempli tous les champs nécessaires !" ;
}
}

?>

<br/><br/>
</div>
<br/><br/><br/><br/>
</div>
<br/><br/><br/><br/><br/><br/>
</body>
</html>



Merci d'avance, je vais continuer à chercher les erreurs de mon côté !
A voir également:

5 réponses

Bravo pour le code Oo, un gros truc bien indigeste...

A mon avis ça doit se trouver à ces lignes l'erreur

mysql_connect("localhost", "root", "");
mysql_select_db("montalembert"); 


Cela marche bien en local, mais à mon avis une école doit pas avoir son serveur SQL sur le même serveur
0
Non, malheureusement je travaille encore en local, et ça ne fonctionne pas :(
0
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
11 mars 2010 à 01:42
Vérifie la syntaxe de tes requètes avec un echo... peut etre que des variables ne sont pas bien initialisées...
0
Bonjour,

Je pense avoir trouvé mon problème pour l'enregistrement !
Il y avait quelques erreurs de syntaxe, mais le gros problème qui bloque ma requête, c'est qu'il y a certains champs dans mon formulaire qui peuvent rester vides, ils sont facultatifs. Et apparemment si je les enregistre dans la bdd alors qu'ils n'ont aucune valeur, l'UPDATE ne se fait pas !!

Mais du coup, je ne sais pas comment faire pour enregistrer les champs dans la bdd, même s'ils sont vides :/

Merci pour votre aide !
0
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
11 mars 2010 à 11:53
au lieu de les mettre à vide, mets un espace, ou un point
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

J'ai essayé de faire comme ça, mais apparemment ça ne change rien, puisque même quand je remplis tous les champs moi même, l'UPDATE ne fonctionne pas du tout... Alors que quand j'avais arrêté ma requête avant les champs facultatifs, ça fonctionnait :/

Il doit y avoir un problème dans la 2ème partie de la requête, mais je ne le trouve pas...
0
J'ai trouvé finalement ce qui faisait planter ma requête : je n'avais pas sécurisé les champs avec la fonction addslashes ; dès qu'il y avait une apostrophe, l'UPDATE s'annulait.

Par contre, il y a quelque chose que je ne comprends pas dans mon code, quelque chose qui fonctionnait avant, mais qui ne fonctionne plus maintenant, pourriez vous m'aider à comprendre pourquoi ?

J'affiche tout d'abord le formulaire de vérification de l'élève, qui demande nom, prénom et date de naissance. Si la vérification retourne VRAI, alors j'affiche le formulaire d'inscription complet. Mais je voudrais que le 1er formulaire ne soit plus affiché.
On m'avait conseillé de faire, comme on le voit dans mon 1er post :

if (!isset $_POST['valider'])
{
//affichage du 1er formulaire
}

Ce qui voulait dire que si on avait pas encore cliqué sur valider, il apparaissait. ($_POST['valider'] étant un submit)

Mais bizarrement, depuis hier, ça ne fonctionne plus. Le 1er formulaire reste toujours affiché...

J'ai essayé de changer le !isset par une vérification de variable en $_SESSION qui change de valeur lorsque l'utilisateur a déjà cliqué sur valider, mais ça ne fonctionne pas non plus :/

Avez vous une idée de ce que ça pourrait être ?
Mercu d'avance !
0