Formulaire php champs

Fermé
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 - 4 juin 2007 à 11:52
 youplaboum - 4 juin 2007 à 17:37
j'ai un problème : sur mon formulaire php certains champs sont obligatoire et je teste la validité sur d'autres mais quand un utilisateur entre une donnée invalide ou oublie de remplir un champs tous les champs du formulaire s'effacent or je veut qu'il n'y ai que le mauvais qui s'efface
j'ai besoin d'aide
merci d'avance

4 réponses

emendiel Messages postés 29 Date d'inscription jeudi 28 septembre 2006 Statut Membre Dernière intervention 8 février 2008
4 juin 2007 à 11:55
Peut tu afficher ton s'il te plait je voudrait le voir avant de dire une betise ^^ mais je pense savoir ce que c'est
0
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 4
4 juin 2007 à 12:00
voila mon code :

$Nada = '';
$Email = htmlspecialchars($_POST['Email']);
$Mot_Passe = $_POST['Mot_Passe'];
$Phrase_Mot_Passe = $_POST['Phrase_Mot_Passe'];
$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Nom_Societe = $_POST['Nom_Societe'];
$Adresse = $_POST['Adresse'];
$Cp = $_POST['Cp'];
$Ville = $_POST['Ville'];
$Pays = $_POST['Pays'];
$Etat = $_POST['Etat'];
$Tel_Standard = $_POST['Tel_Standard'];
$Tel_Direct = $_POST['Tel_Direct'];
$Tel_Portable = $_POST['Tel_Portable'];
$Fax_Standard = $_POST['Fax_Standard'];
$Fax_Direct = $_POST['Fax_Direct'];
$Service = $_POST['Service'];
$Batiment = $_POST['Batiment'];
$Heure = 'D HH:MM:SS.fraction';
$Date = strftime ("%y-%m-%d");
$Observation = $_POST['Observation'];


If ( $Email == '' or $Mot_Passe == '' or $Nom == '' or $Nom_Societe == '' or $Adresse == '' or $Adresse == '' or $Cp == '' or $Ville == '' or $Pays == '' or $Tel_Direct == '')
{
echo "Vous devez remplir toutes les conditions !<br>";
}
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$Email))
{
echo "L'adresse mail est invalide !<br>";
}
else
{
mysql_query("INSERT INTO vente_clients(id, Email, Mot_Passe, Phrase_Mot_Passe, Nom, Prenom, Nom_Societe, Adresse, Cp, Ville, Pays, Etat, Tel_Standard, Tel_Direct, Tel_Portable, Fax_Standard, Fax_Direct, Service, Batiment, Date, Heure, Observation) VALUES('', '".$Email."', '".$Mot_Passe."', '".$Phrase_Mot_Passe."', '".$Nom."', '".$Prenom."', '".$Nom_Societe."', '".$Adresse."', '".$Cp."', '".$Ville."', '".$Pays."','".$Etat."', '".$Tel_Standard."', '".$Tel_Direct."', '".$Tel_Portable."', '".$Fax_Standard."', '".$Fax_Direct."', '".$Service."', '".$Batiment."', '".$Date."', '".$Heure."', '".$Observation."')");
}



mysql_close();
?>
0
emendiel Messages postés 29 Date d'inscription jeudi 28 septembre 2006 Statut Membre Dernière intervention 8 février 2008
4 juin 2007 à 12:08
non c'est pas l'erreur que j'avias mais j'ai peut etr une solution pour toi ^^(je sais pas si ca va marcher)
Mais au lieu de faire un seul if pour tout verifier fais en un par condition
et tu reset seulement le champ et tu sort de la fonction
0
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 4
4 juin 2007 à 13:09
ok je te remercie c peut être ça j'y avait pas penser je vais essayer
0
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 4
4 juin 2007 à 13:46
j'ai changé mon code mais tous les champs s'efface quand même :


<?
mysql_connect("localhost", "jeremy", "######" );
mysql_select_db("gs_computer");


$Nada = '';
$Email = htmlspecialchars($_POST['Email']);
$Mot_Passe = $_POST['Mot_Passe'];
$Phrase_Mot_Passe = $_POST['Phrase_Mot_Passe'];
$Nom = $_POST['Nom'];
$Prenom = $_POST['Prenom'];
$Nom_Societe = $_POST['Nom_Societe'];
$Adresse = $_POST['Adresse'];
$Cp = $_POST['Cp'];
$Ville = $_POST['Ville'];
$Pays = $_POST['Pays'];
$Etat = $_POST['Etat'];
$Tel_Standard = $_POST['Tel_Standard'];
$Tel_Direct = $_POST['Tel_Direct'];
$Tel_Portable = $_POST['Tel_Portable'];
$Fax_Standard = $_POST['Fax_Standard'];
$Fax_Direct = $_POST['Fax_Direct'];
$Service = $_POST['Service'];
$Batiment = $_POST['Batiment'];
$Heure = 'D HH:MM:SS.fraction';
$Date = strftime ("%y-%m-%d");
$Observation = $_POST['Observation'];

{
mysql_query("INSERT INTO vente_client(id) VALUES('')");
}
if (!eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*$",$Email))
{
echo "L'adresse mail est invalide !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Email) VALUES('".$Email."')");
}
If($Mot_Passe == '')
{
echo "Vous n'avez pas remplit le mot de passe !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Mot_Passe) VALUES('".$Mot_Passe."')");
}
{
mysql_query("INSERT INTO vente_client(Phrase_Mot_Passe) VALUES('".$Phrase_Mot_Passe."')");
}
If($Nom == '')
{
echo "Vous n'avez pas remplit le nom !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Nom) VALUES('".$Nom."')");
}
{
mysql_query("INSERT INTO vente_client(Prenom) VALUES('".$Prenom."')");
}
If($Nom_Societe == '')
{
echo "Vous n'avez pas remplit le nom de la société !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Nom_Societe) VALUES('".$Nom_Societe."')");
}
If($Adresse == '')
{
echo "Vous n'avez pas remplit l'adresse !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Adresse) VALUES('".$Adresse."')");
}
If($Cp == '')
{
echo "Vous n'avez pas remplit le code postal !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Cp) VALUES('".$Cp."')");
}
If($Ville == '')
{
echo "Vous n'avez pas remplit la ville !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Ville) VALUES('".$Ville."')");
}
If($Pays == '')
{
echo "Vous n'avez pas remplit le pays !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Pays) VALUES('".$Pays."')");
}
{
mysql_query("INSERT INTO vente_client(Etat) VALUES('".$Etat."')");
}
{
mysql_query("INSERT INTO vente_client(Tel_Standard) VALUES('".$Tel_Standard."')");
}
If($Tel_Direct == '')
{
echo "Vous n'avez pas remplit le numéro de téléphone !<br>";
}
else
{
mysql_query("INSERT INTO vente_client(Tel_Direct) VALUES('".$Tel_Direct."')");
}
{
mysql_query("INSERT INTO vente_client(Tel_Portable) VALUES('".$Tel_Portable."')");
}
{
mysql_query("INSERT INTO vente_client(Fax_Standard) VALUES('".$Fax_Standard."')");
}
{
mysql_query("INSERT INTO vente_client(Fax_Direct) VALUES('".$Fax_Direct."')");
}
{
mysql_query("INSERT INTO vente_client(Service) VALUES('".$Service."')");
}
{
mysql_query("INSERT INTO vente_client(Batiment) VALUES('".$Batiment."')");
}
{
mysql_query("INSERT INTO vente_client(Date) VALUES('".$Date."')");
}
{
mysql_query("INSERT INTO vente_client(Heure) VALUES('".$Heure."')");
}
{
mysql_query("INSERT INTO vente_client(Observation) VALUES('".$Observation."')");
}


mysql_close();
?>


</body>
</html>
0
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 4
4 juin 2007 à 14:30
Le pire c qu'il n'y a plus rien qui 'affiche dans ma base de donnée :(
help
0
youplaboum > jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008
4 juin 2007 à 14:44
fait un truk du genre sur ton formulaire,
<tr><td><label>Nom*</td>
<td><input type="text" name="nom" tabindex="40" value=<?php echo $nom;?>></label></td></tr>.


au pire tu met une condition en php dans value
<tr><td><label>Nom*</td>
<td><input type="text" name="nom" tabindex="40" value=<?php if (condition de validité) {echo $nom;} else {echo " "} ?>></label></td></tr>


tu peux meme rajouter une colonne qui lui dit pourquoi il a une erreur dans le cas ou y'en a une
par exemple
<tr><td><label>eMail*</td><td><input type="text" name="eMail" tabindex="130"  value=<?php if (validMail($eMail) != $eMail) { echo " ";} else {echo $eMail;} ?>></label></td>
<td><?php if (validMail($eMail) == $eMail) { echo "";} else { echo(validMail($eMail));} ?></td></tr>

validMail est une fonction que j'ai fait pour vérifier la validité de l'email

allez c'est la fête, t'en a peutetre pas besoin mais tiens si tu veux
/* verifie la syntaxe de l'adresse eMail */
	 function validMail($mail)
    {

    switch ($mail) {
	
	case  "" :
    return "l'email est vide";
    break;
	
	case(strspn($mail, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_@.-") < strlen($mail)):
	return"caractères non conformes";
    break;
	
	case(substr_count($mail, "@") == "0" or substr_count($mail, "@") != "1"):
	return"@ doit être présent et seulement une fois";
	break;
	
	case((strpos($mail, "@")) == "0"):
	return"@ ne peut être en début d'eMail";
	break;
	
	case(strpos($mail, "@")  == (strlen($mail) - "1")):
	return"@ ne peut être en fin d'eMail";
	break;
	
	case(strlen($mail) < "6"):
	return"l'email doit faire plus de 6 caractères";
	break;
	
	case(strlen($mail) > "50"):
	return"l'email doit faire moins de 50 caractères";
	break;
	
	case(strspn($mail["0"], "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") == "0"): 
	return"le premier caractère de l'eMail doit être une lettre";
	break;
	
	case(strspn($mail[strlen($mail)-"1"], "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz") == "0"):
	return"le dernier caractère de l'eMail doit être une lettre";
	break;
	
	case(strpos($mail, "@.") != ""): 
	return"il ne doit pas y avoir de '@.' dans un eMail";
	break;
	
	case(strpos($mail, "..") != ""):
	return"il ne doit pas y avoir de '..' dans un eMail";
	break;
	
	
	case($mail[strlen($mail) - "3"] == "." or  $mail[strlen($mail) - "4"] == "."):
	return $mail;
	break;
	
	
	default:
	return"il doit y avoir 2 ou 3 lettres après le dernier point";
	break;
	}}
0
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 4 > youplaboum
4 juin 2007 à 14:55
merci youplaboum je vais essayé mais avec mon dernier essai un champs = une entrée dans myadmin comme g 22 champs il me rajoute 22 lignes a chaque inscription
0
youplaboum > jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008
4 juin 2007 à 15:04
mais t'es fou regarde
<?php
	include("fonctions/fonction_valid.php");
?>
<html>
	<head>
		<title>-------, -----------</title>
		<link rel="stylesheet" type="text/css" href="style/style.css"/>
	</head>
	<body>
	<?php
		/* affiche le formulaire si les données n'ont pas été envoyé ou déclare les variables du formulaires si il a été rempli*/
		if (isset($_POST['inscrire']))
		{
		$eMail = $_POST['eMail'];
		$civ = $_POST['civ'];
		$nom = $_POST['nom'];
		$prenom = $_POST['prenom'];
		$RS = $_POST['RS'];
		$adresse = $_POST['adresse'];
		$CP = $_POST['CP'];
		$ville = $_POST['ville'];
		$telfix = $_POST['telfix'];
		$telport = $_POST['telport'];
		$fax = $_POST['fax'];
		$motdepasse = $_POST['motdepasse'];
		$motdepasse2 = $_POST['motdepasse2'];
		}
		else
		{
		include('inscrire.php');
		exit;
		}
		/*--------------------------------------------------------------------------------*/
		
		/* va chercher si l'adresse email rentré par l'utilisateur a déja été enregistré*/
		mysql_connect("localhost", "root", "") or die ("impossible de se connecter à la base de données");
		mysql_select_db("-------");
		$req = mysql_query("select eMail as mail from clients where eMail = '$eMail'");		
					$data = mysql_fetch_assoc($req);
		mysql_close();
		
		/*vérifie si le formulaire est correctement rempli */
		if (($nom == "") or ($prenom == "") or ($adresse == "") or (validCP($CP) != $CP) or 
			($ville == "") or (validNum($telfix) != $telfix ) or (validMail($eMail) != $eMail) or ($motdepasse == "") or ($motdepasse2 == "")
			or ($motdepasse != $motdepasse2) or strlen($motdepasse) < "6" or (strlen($motdepasse) > "50"))
		{
		include ('inscrire_erreur.php');
		}
		/* affiche soit que l'enregistrement a  été effectué soit que l'email est déjà enregistrer*/
		else if ($data['mail'] == $eMail) 
		{ echo "Cette adresse eMail a déjà été enregistré sur Faximilé";
			echo "<br/><br/>";
			echo "<a href=\"index.php\">retour vers l'acceuil du site</a></body>"; 
		}
		else
		{
		mysql_connect("localhost", "root", "") or die ("impossible de se connecter à la base de données");
		mysql_select_db("-------");
		$req = mysql_query("select eMail as mail from clients where eMail = '$eMail'");		
					$data = mysql_fetch_assoc($req);
		mysql_close();
		
	
		mysql_connect("localhost", "root", "") or die ("impossible de se connecter à la base de données");
		mysql_select_db("-------");
		mysql_query("INSERT INTO clients (eMail, Civ, Nom, PNom, RS, Adresse, CP, Ville, TelFix, TelPort, Fax, Motdepasse)
		values ('$eMail', '$civ', '$nom', '$prenom', '$RS', '$adresse', '$CP', '$ville', '$telfix', '$telport', '$fax', '$motdepasse')");
		mysql_close();
		
		if ($civ == "Mr")
		{ $sexe="";}
		else
		{ $sexe="e";}
		echo "<img src=\"images/-------.jpg\" alt=\"logo -------\"><br/><br/>";
		echo "Merci de votre inscription à Faximilé";
		echo "<br/><br/>";
		echo "<body id='inscri'>Vous avez bien été enregistré " . $sexe . " : " . $civ . " " . $nom . " " . $prenom ;
		echo "<br/><br/>";
		echo "Un email vous a été envoyé ";
		echo "<br/><br/>";
		echo "<a href=\"index.php\">retour vers l'acceuil du site</a></body>"; 
		/* envoie un email pour dire que c'est bon*/
		
		$msg ='<html><head><title>------- vous souhaite la bienvenue</title></head>';
		$msg .='<body text-align="left"><img src="http://www.-------.fr/images/-------.jpg" alt="logo -------" text-align="center" margin-left="50%" width="100px" height="100px"></br></br><i>Bienvenue ' . $civ . ' ' . $nom . ' ' . $prenom . '</i><br/><br/>';
		$msg .='<p>Nous vous confirmons votre inscription au site de -------</p>votre compte est activé et il vous suffit simplement de vous connecter avec vos login et</br> mot de passe (ci dessous) pour utiliser votre compte sur le site<br/>';
		$msg .='Gardez ce mail dans un coin car il vous sera utile si vous oubliez vos login et mot de passe</br>';
		$msg .='<br><u>identifiant</u>  :<b>' . $eMail . '</b><u><br/>mot de passe</u> :<b> ' . $motdepasse .'</b>';
		$msg .='<p>Merci</p>'; 
		mail($eMail, "Inscription au site -------(Mail à LIRE et à CONSERVER)", $msg, "From: '-------'<-------@wanadoo.fr>\r\nReply-To: <-------@wanadoo.fr>\r\nContent-Type: text/html; charset=\"iso-8859-1\"\r\n");
		/**/
		}
		
		?>
	</body>
</html>





avec cette page, ca tenmene sur ta page ou ya ton formulaire si le bouton envoyer n'a pas encore été cliker, sinon, si le formulaire a deja été rempli et envoyé, il vérifie si il ya des erreur et ranmene a inscrire_erreur.php tant qu'il yen a.
si tu veux je t'envoie cette feuille, avec les formulaires et la bibliothèque de fonction qui vérifie la validité des champs.
0
jérémy1664 Messages postés 165 Date d'inscription lundi 4 juin 2007 Statut Membre Dernière intervention 3 juillet 2008 4 > youplaboum
4 juin 2007 à 15:17
Ben merci c vraiment sympa de ta part jve bien aussi la bibliothèque de fonction sa m'aidera de toute façon un jour ou l'autre
0