Verification de formulaire et envoi dans bbd

lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012 - 12 juin 2011 à 22:46
lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012 - 13 juin 2011 à 13:36
bonjour,

j ai comme erreur
Fatal error: Call to undefined function: filter_var() in
je suis chez free
j ai renommer le fichier en .php5
toujours la meme erreur; cela ne sert a rien car free n a que la version 5.2
Par contre comment faire pour arreter le script car il me l enregistre meme si les messages sont la ?
j ai essayer exit; mais du coup il ne me l enregistre pas .
Merci d'avance
lorant

if( isset($_POST) )
{
if( empty($_POST['sexe']) )   echo "vous n'avez pas précisé votre civilité !
";
if( empty($_POST['prenom']) ) echo "vous n'avez pas précisé votre prénom !
";
if( empty($_POST['nom']) )    echo "vous n'avez pas précisé votre nom !
";
if( empty($mdp) )             echo "vous n'avez pas précisé votre mot de passe !
";
if( empty($mdp2) )            echo "vous n'avez pas précisé votre mot de passe de vérification!
";
   
if( $mdp != $mdp2 ) {
   echo "Les mots de passe que vous avez renseigné sont différents - Reformulez-les !";
}

if ( empty($email) ) {
$msg = "vous n'avez pas renseigné votre email
";
if ((!ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $email)))
$msg = "Le format de votre adresse Email doit être de format correct!
";

echo $msg;	
}
}

$db = mysql_connect('gsql.streets.free.fr', 'identifiant,'mdp');
 mysql_select_db('base');
 
 $requete ="INSERT INTO utilisateurs values ('".$sexe."','".$prenom."','".$nom."', sha1('".$mdp."'), '".$email."')";
 $resultat =mysql_query($requete);
 if ($resultat){
  echo mysql_affected_rows($db);
  echo "<meta http-equiv='refresh' content='0; url=index.php'>";
 }
else {echo"	Le service est temporairement indisponible, veuillez nous en excuser !";
}
 mysql_close($db);
 ?>
 </html>

3 réponses

cod57 Messages postés 1654 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 20
13 juin 2011 à 12:00
bonjour
essaie comme ça
<?php

/*initialise à null erreurs*/
$err=null;

if(isset($_POST)){
if( empty($_POST['sexe']))  $err.= "vous n'avez pas précisé votre civilité !
";
if( empty($_POST['prenom']) ) $err.= "vous n'avez pas précisé votre prénom !
";
if( empty($_POST['nom']) )    $err.= "vous n'avez pas précisé votre nom !
";
if( empty($mdp) )             $err.= "vous n'avez pas précisé votre mot de passe !
";
if( empty($mdp2) )            $err.= "vous n'avez pas précisé votre mot de passe de vérification!
";
   
if( $mdp != $mdp2 ) {
   $err.= "Les mots de passe que vous avez renseigné sont différents - Reformulez-les !";
}

if ( empty($email) ) {
$err.= = "vous n'avez pas renseigné votre email
";
if ((!ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $email))) {
$err.= = "Le format de votre adresse Email doit être de format correct!
";
}
}
}

/*pas d'erreurs on fait ...*/
if($err===null){
$db = mysql_connect('gsql.streets.free.fr', 'identifiant','');
 mysql_select_db('base');
 
 $requete ="INSERT INTO utilisateurs values ('".$sexe."','".$prenom."','".$nom."', sha1('".$mdp."'), '".$email."')";
 $resultat =mysql_query($requete);
 if ($resultat){
  echo mysql_affected_rows($db);
  echo "<meta http-equiv='refresh' content='0; url=index.php'>";
 }
else {echo"	Le service est temporairement indisponible, veuillez nous en excuser !";
}
mysql_close($db);
}else{
echo $err;
/*eventuellement une redirection ?*/
} 
?>
</html>



Bonne programmation !
0
lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012
13 juin 2011 à 12:46
merci cela fonctionne
par contre il me met à chaque fois format email incorrect a chaque fois meme si le champs est remplis.
J aimerai en fait tester le champs si vide de l email et s il est pas vide regarder si c est le bon format
avec var_filter cela fonctionne pas car j ai free
0
lorant59 Messages postés 42 Date d'inscription mardi 24 mars 2009 Statut Membre Dernière intervention 14 novembre 2012
13 juin 2011 à 13:36
j ai réussi il fallait mettre un elseif avec deux condition pour le controle email

if ( empty($email) ) {
$err.= "vous n'avez pas renseigné votre email
";}
elseif(!ereg('^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$', $email)){
$err.=  "Le format de votre adresse Email doit être de format correct!
";}

}


merci à toi
0