Vérification formulaire php svp [Fermé]

Signaler
-
mouf13
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
-
Bonjour,


J'ai réalisé un petit formulaire dans le but de récupérer les emails de mes visiteurs avec 2 champs: prénom et email.

Jusqu'ici tout va bien le script marche bien, seulement ayant insérer dans le code php une vérification des 2 champs j'ai un petit problème.

En effet quand php vérifie une erreur ou un champ vide celui ci indique au visiteur par un message qu'il manque soit le prénom ou que l'email est invalide.
Si tel est le cas dans ce message d'avertissement un lien de retour au formulaire est disponible.

Donc mon problème est lorsque je clic sur ce lien les 2 champs du formulaire réapparaissent vides, il faut alors tout retaper.

J'aimerai savoir comment faire pour conserver les champs remplis pour que le visiteur n'ai pas à tout retaper de nouveau.

Merci de votre aide.

18 réponses

Personne à une idée ou mon message est mal tourné ?

Merci
Messages postés
17
Date d'inscription
lundi 1 septembre 2008
Statut
Membre
Dernière intervention
16 mars 2009
3
Bonjour,

Ton message est très clair, c'est surement que peu de gens connaissant la réponse sont passés par ici...

Tu peux essayer de réimplater les 2 variables dans le formulaire lorsque tu clic sur "retour".
Merci pour ta réponse je vois pas vraiment ce que tu veux dire pourrais-tu développer un peu si cela ne te dérange pas stp.

Implanter les 2 variables "prénom" et "email" dans la partie du code "retour" ?


Merci
Alain_42
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
868
dans ton lien de retour tu ajoutes des parametres passés par l'URL

ex:

<a href="page_formulaire.php?prenom=<?php echo $prenom; ?>&mail=<?php echo $prenom; ?>>lien</a>

et dans ta page_formulaire.php

if(isset($_GET['prenom'])) $prenom=$_GET['prenom']; else $prenom="";
if(isset($_GET['mail'])) $prenom=$_GET['mail']; else $mail="";

et tes champs:

<input type="text" name="prenon" value="<?php echo $prenom; ?>">
<input type="text" name="mail" value="<?php echo $mail; ?>">
> Alain_42
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017

Ces lignes de codes ne conviennent pas parce que mon formulaire est en deux fichiers html et php.

- html: contact.html

- php: email.php
Bonjour Alain_42,

Ok je vais essayer ca et je te tiens au courant merci bien.
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
utilise les sessions.
c'est quoi les sessions ??
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
J'ai du mal à comprendre le principe des sessions qui m'a l'air adapté à mon cas.

Je ne sais pas comment et ou les inclure dans mon code php.

Est ce que quelqu'un pourrait m'en dire plus SVP ?

Merci d'avance
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
les sessions te permettent de stocker des variables et de les appeler quelque soit la page demandée.

- a voir sur php.net :
session_start();
$_SESSION

en gros
creer un fichier page1.php
<?php
session_start();
$_SESSION['masession'] = 'toto';
?>

puis un second page2.php
<?php
session_start();
print_r($_SESSION);
?>

Ouvre ton navigateur sur page1.php puis va sur page2.phptu comprendras mieux. rien de bien compliqué.
Bonjour,


Je reviens à vous toujours avec le même problème, j'ai jeté un oeil sur les sessions je dois être nul je n'y arrive pas.

Je récapitule un formulaire d'inscription avec vérification des 2 champs (prénom et email), si erreur avertissement par un message contenant un lien de retour au formulaire.
Donc si je clic sur ce lien de retour je souhaite que les champs restent remplis pour ne pas tout retaper et juste corriger le champs concerné.

Est ce que quelqu'un pourrait me dire où faut-il mettre ces fameuses sessions php dans mon code que voici:

2 fichiers 1 html, 1 php

Le formulaire "contact.html":

<html>
<body>


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


<p align="center">
Votre Prénom <br /> <input type="text" name="prenom" size="40"/><br /><br />


Votre E-mail <br />
</font> <input type="text" name="email" size="40">
</p>

<p align="center">
<input type="submit" value="Envoyer" />
</p>

</form>
</body>
</html>


Le fichier php "email.php":


<?php


$prenom = $_POST['prenom'];
$email= $_POST['email'];


$mon_email = 'monsite.com'; # L'adresse e-mail pour savoir qui s'est inscrit
$sujet = 'inscription'; # Sujet du mail a envoyer au nouvel inscrit
$message = " Bonjour $prenom,bla bla.....


# Partie pour valider l'adresse e-mail
$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)


if (preg_match('/\A\s*\Z/', $prenom)) { // test du prenom
die('Veuillez inscrire votre prénom merci<a href=http://monsite.com/contact.html><br>Retour au formulaire</a></p>');
} elseif (!preg_match($email)) { // test de l'adresse e-mail
die("Votre adresse email $mail est invalide veuillez recommencer merci<a href=http://www.monsite.com/contact.html><br>Retour au formulaire</p>");

}


$msg .= $message;


mail($email, $sujet, $msg,
"Reply-to: $mon_email\r\nFrom: $mon_email");
mail($mon_email, "Nouvel inscrit: $prenom", "\n
Un nouvel inscrit: $prenom

E-mail: $email\n\n" ,
"Reply-to: $mon_email\r\nFrom: $mon_email");

?>

Merci d'avance pour votre aide
Personne a une idée ?

Merci
Mouf13 ou es tuuuuuu ???
Aidez moi SVP merci
Toujours personne ? ma question est trop complexe ?
Alain_42
Messages postés
5374
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
868
Bonsoir,

je te propose une autre methode avec une verif en Javascript, donc avant que le formulaire ne soit envoyé, si il y a un champ vide ou pas bon, le client à une boite d'alerte et le formulaire n'est pas envoyé. Donc pas besoin du bouton retour formulaire, des SESSIONS etc..


attention il faut que ton formulaire soit bien comme ci dessous avec les name les id

onSubmit="return verif_form();" veut dire que qd le bouton Submit sera clické, le form ne sera envoyé au serveur que qand la fonction verif_form() aura repondu "true", si elle repond "false" ça part pas


<html>
<head>
<script language="javascript" type="text/javascript">
//fonction de verification des champs si pas vides et si mail conforme
function verif_form(){
	if(document.getElementById('prenom').value==""){
		alert("Vous devez remplir le champ prenom !");
		form1.prenom.focus(); //met le curseur sur le champ en cause
		return false;
	}
	var obj=document.getElementById('email');
	if(obj.value==""){
		alert("Vous devez remplir le champ email !");
		form1.mail.focus();
		return false;
	}
	var exp=new RegExp("^[\\w\\-]+(\\.[\\w\\-]+)*@[\\w\\-]+(\\.[\\w\\-]+)*\\.[\\w\\-]{2,}$", "i");
	if(obj.value !="" && !exp.test(obj.value)){
		alert("Adresse email non valide ");
		form1.mail.focus();
	return false;
	}
return true
}
</script>
</head>
<body>


<form name="form1" method="post" action="email.php" onSubmit="return verif_form();">


<p align="center">
Votre Prénom <br />
 <input type="text" name="prenom" id="prenom" value="" size="40"/><br /><br />


Votre E-mail <br />
</font> <input type="text" name="email" id="email" value="" size="40">
</p>

<p align="center">
<input name="envoyer" type="submit" value="Envoyer" />
</p>

</form>
</body>
</html>

et ton script email.php:

<code><?php
$prenom = $_POST['prenom'];
$email= $_POST['email'];
$mon_email = 'monsite.com'; # L'adresse e-mail pour savoir qui s'est inscrit
$sujet = 'inscription'; # Sujet du mail a envoyer au nouvel inscrit
$message = " Bonjour $prenom,bla bla.....";
$header="Reply-to: $mon_email\r\nFrom: $mon_email";

if(mail($email, $sujet, $msg,$header)){
	echo "mail1 envoye";
}else{
	echo "mail1 non envoye";
}

$sujet2="Nouvel inscrit: $prenom";
$message2="\nUn nouvel inscrit: $prenom E-mail: $email\n\n";

if(mail($mon_email, $sujet2,$message2 ,$header)){
	echo "mail2 envoye";
}else{
	echo "mail2 non envoye";
}

?>

</code>
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
hey !
Deja les validation JS OK, mais uniquement si il y a validation php derrière sinon attends toi a des surprises sur les navigateurs ou javascript est désactivé...

en deux mot paske j ai pas torp le temps, et sur une seule page tu debroussailleras apres

<?php
session_start();

$login = '';
if(isset($_POST['LOGIN'])) {
if(!empty($_POST['LOGIN'])) {
$_SESSION['LOGIN'] = $_POST['LOGIN'];
$login = $_SESSION['LOGIN'];
} else {
action a executer qd le login est vide
}
}
elseif(isset($_SESSION['LOGIN']) && !empty($_SESSION['LOGIN'])) {
$login = $_SESSION['LOGIN'];
}
?>
<html> blabla...
<form blabla>
login : <input type="text" name="LOGIN" value="<?php echo $login; ?>"/>
blabla
</form>

GL & HF !
Bonjour,

Merci pour votre aide j'ai réussi à mettre en place mon formulaire.

Cependant je souhaite également savoir quel code placé pour vérifier qu'un inscrit à donner un email valide en lui envoyant un mail de confirmation avec un lien à cliquer et qui lui renverra un second mail pour la validation.

Faut-il une base de donnée, quelqu'un pourrait m'aider a créer cela SVP ?

Merci bien
Quelqu'un aurait une idée svp ?

Merci
Messages postés
150
Date d'inscription
mardi 20 juin 2006
Statut
Membre
Dernière intervention
22 février 2011
16
Pour valider un email : google valider un email en php

Ensuite voila ce que j'utilise pour les mails de confirmation

-> inscription du user
-> recuperation de l id ($id = mysql_insert_id (recupere le dernier id entré en base)
Dans le mails : veuillez cliquez sur le lien pour valider votre inscription : tonsite/validation_inscription.php?id='.md5($id)
Tu aura donc un lien avec un id crypté en md5

Lorsque le user affiche la page de validation :
Tu selectionnes tous les users puis pour chaque resultat trouvé, tu regarde si le id cypté est égal a celui de l'url.
Si c'est le cas, tu sors de la boucle et tu peux valider l'inscription \o/