par
Invité » 18 avr. 2012, 18:52
Bonjour à tous !
Pour mon premier message ici, je vous décris mon petit souci :
J'ai créé un formulaire de contact sur une page en .html, ainsi qu'une page de traitement de données en .php. Deux données sont obligatoires : le nom et le mail de l'internaute (pour cela, j'ai simplement mis "required" dans mon code HTML). Pour le champ du mail, j'ai créé une regex, qui permets de ne pas accepter n'importe quoi de la part de l'internaute (au minimum, il doit avoir une adresse mail en
[email protected]). Si l'un des deux champs n'est pas rempli, un message automatique (géré par le navigateur) prévient l'utilisateur. Si le mail n'est pas valide, une alerte en javaScript est activé (je pensais que c'était mieux plutôt que d'afficher ça sur une page en php), puis le formulaire réapparait (en fait j'ai copié-collé le formulaire de ma page HTML sur ma page en .php). Puis, quand l'internaute a tout bien rempli, un message lui dit...et là ce que j'aimerai, c'est faire revenir l'internaute sur la page d'accueil (ou alors lui faire choisir où il veut naviguer). Mais comment faire ? voici mon code :
<?php
if (isset($_POST['mail']))
{
$_POST['mail'] = htmlspecialchars($_POST['mail']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
{
?>
<script>
alert("l'adresse mail n'est pas valide !");
</script>
<form action="contact_post.php" method="POST">
<label for="civilite" >civilité : </label><input type="radio" name="civilite" id="civilite" value="" /><br/><br/>
<label for="nom">votre nom : </label><input type="text" name="nom" id="nom" required/><br/><br/>
<label for="prenom">votre prénom : </label><input type="text" name="prenom" id="prenom" value="" /><br/><br/>
<label for="telephone">votre téléphone : </label><input type="text" name="telephone" id="telephone" value="" /><br/><br/>
<label for="mail">votre e-mail : </label><input type="text" name="mail" id="mail" required/><br/><br/>
<label for="texte">votre description : </label><textarea name="" id="texte" rows="4" cols="20"></textarea><br/><br/>
<input type="submit" value="Validation" />
</form>
<?php
}
else
{
?>
<script>
alert("Votre demande a été prise en compte.");
</script>
<?php
}
}
?>
Dans un deuxième temps, j'aimerai aussi savoir si mon code est relativement propre, ou si je code vraiment comme un gougnafier.
Merci beaucoup !
Bonjour à tous !
Pour mon premier message ici, je vous décris mon petit souci :
J'ai créé un formulaire de contact sur une page en .html, ainsi qu'une page de traitement de données en .php. Deux données sont obligatoires : le nom et le mail de l'internaute (pour cela, j'ai simplement mis "required" dans mon code HTML). Pour le champ du mail, j'ai créé une regex, qui permets de ne pas accepter n'importe quoi de la part de l'internaute (au minimum, il doit avoir une adresse mail en
[email protected]). Si l'un des deux champs n'est pas rempli, un message automatique (géré par le navigateur) prévient l'utilisateur. Si le mail n'est pas valide, une alerte en javaScript est activé (je pensais que c'était mieux plutôt que d'afficher ça sur une page en php), puis le formulaire réapparait (en fait j'ai copié-collé le formulaire de ma page HTML sur ma page en .php). Puis, quand l'internaute a tout bien rempli, un message lui dit...et là ce que j'aimerai, c'est faire revenir l'internaute sur la page d'accueil (ou alors lui faire choisir où il veut naviguer). Mais comment faire ? voici mon code :
[php]
<?php
if (isset($_POST['mail']))
{
$_POST['mail'] = htmlspecialchars($_POST['mail']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
{
?>
<script>
alert("l'adresse mail n'est pas valide !");
</script>
<form action="contact_post.php" method="POST">
<label for="civilite" >civilité : </label><input type="radio" name="civilite" id="civilite" value="" /><br/><br/>
<label for="nom">votre nom : </label><input type="text" name="nom" id="nom" required/><br/><br/>
<label for="prenom">votre prénom : </label><input type="text" name="prenom" id="prenom" value="" /><br/><br/>
<label for="telephone">votre téléphone : </label><input type="text" name="telephone" id="telephone" value="" /><br/><br/>
<label for="mail">votre e-mail : </label><input type="text" name="mail" id="mail" required/><br/><br/>
<label for="texte">votre description : </label><textarea name="" id="texte" rows="4" cols="20"></textarea><br/><br/>
<input type="submit" value="Validation" />
</form>
<?php
}
else
{
?>
<script>
alert("Votre demande a été prise en compte.");
</script>
<?php
}
}
?>
[/php]
Dans un deuxième temps, j'aimerai aussi savoir si mon code est relativement propre, ou si je code vraiment comme un gougnafier. :lol:
Merci beaucoup !