Re-Bonjour,

Bon, j'ai peut être parlé trop vite ce matin.
Alors voilà, mon form et mes verifs fonctionnent bien, mais j'ai voulu ajouter un boutton de retour au formulaire à chaque fois qu'une erreur est détectée. Jusque là pas de problème; l'ennui c'est que lors du retour au formulaire si le visiteur a oublié un @ (par exemple), et bien ce que toutes ses données...sont effacées. Dur et agaçant si il doit à nouveau tout ré-écrire, non?
Alors, je sais bien (enfin je crois) que le mieux serait d'utiliser du JS, mais:
1) n'existe-t-il pas une manière de faire ça en php uniquement?
2)et même en JS, les données (corrects) précedentes ne seront elles pas effacées tout de même?
Voici mon form:
Code : Tout sélectionner
<form method="post" action="contform.php">
<table>
<tr><td>Votre Nom : *<input type="text" name="nom" size="20" /></td>
<td>Votre entreprise :<input type="text" name="soc" size="20" /></td></tr>
<tr><td>Secteur activité: * <select name="act">
<option value="0" selected="selected">--------------</option>
<option value="artisan">Artisans</option>
<option value="mode">Mode</option>
<option value="culture">Culture</option>
<option value="service">Service</option>
<option value="restauration">Restauration</option>
<option value="artistique">Artistique</option>
<option value="assoc">Association</option>
<option value="festival">Festival</option>
<option value="particulier">Particulier</option>
<option value="mairie">Mairie</option>
<option value="pme">PME</option>
<option value="pmi">PMI</option>
<option value="communication">Communication</option>
<option value="transport">Transport</option>
<option value="institution">Institution</option>
<option value="prof.liberale">Profession libérale</option>
<option value="medicale">Médical</option>
<option value="paramedical">Para-médical</option>
<option value="autre">Autre</option>
</select></td>
<td>Si besoin, précisez:<textarea name="precise"></textarea></td></tr>
<tr><td>Ville: *<input type="text" name="ville" size="20" /></td>
<td>Département :*
<select name="dpt">
<option value="0" selected="true">--</option>
<option value="64">64</option>
<option value="40">40</option>
</select></td></tr>
<tr><td>Site existant: *<input type="radio" name="choix" value="oui" />Oui
<input type="radio" name="choix" value="non" />Non</td>
<td>Votre email: *<input type="text" name="email" size="25" /></td></tr>
<tr><td>Votre message :<textarea name="mess"></textarea></td>
<td><center><input type="submit" value="envoyer" />
<input type="reset" value="Annuler" /></center></td></tr>
</table>
</form>
et voici mon script (j'en suis asses fier, parce que en fait je l'ai pensé tout seul et j'ai trouvé tout seul la méthode des boutons...après moults tatonnements dois je avouer
<?php
$from = $_POST['email'];
$nom = $_POST['nom'];
$soc = $_POST['soc'];
$act = $_POST['act'];
$preciz = $_POST['precise'];
$ville = $_POST['ville'];
$dpt = $_POST['dpt'];
$email = $_POST['email'];
$point = strpos($email,".");
$aroba = strpos($email,"@");
$adresse_destinataire = '[email protected]';
$objet = 'Contact commercial heprod';
$retour_a = $_POST['retour_a'];
$retour_c = $_POST['retour_c'];
$message = stripslashes(
"Nom:".$_POST['nom'] .
"\n Société:" .$_POST['soc'] .
"\n Activité:" .$_POST['act'] .
"\n Precision:" .$_POST['precise'] .
"\n Ville: " .$_POST['ville'] .
"\n Departement :" .$_POST['dpt'] .
"\n Site existant :" .$_POST['choix'] .
"\n Email de reponse :" .$_POST['email'] .
"\n Message :" .$_POST['mess']);
if(empty($nom))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le nom doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($act))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le secteur d\'activité doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($ville))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>La ville doit être renseignée</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($dpt))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le département doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center');
}
if(empty($email))
{
print ("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit être renseigné</b></center>");
die();
}
if($point=='')
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit comporter un <b>point</b></b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
elseif($aroba=='')
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit comporter un <b>\'@\'</b></b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
else
{
mail(
$adresse_destinataire, $objet, $message, $from);
print('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre demande a été envoyée avec succès !</b>
<br />
<br />
<a href="index.php"><input type="button" name="retour_a" value="retour accueil"/>
</a>
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>.</center>');
exit();
}
?>
Bon, je suis certain que l'on peut faire mieux et plus simple, mais bon, je débute, hein..
Merci de vos bons conseils et avis, pistes et infos
Re-Bonjour,
:( Bon, j'ai peut être parlé trop vite ce matin.
Alors voilà, mon form et mes verifs fonctionnent bien, mais j'ai voulu ajouter un boutton de retour au formulaire à chaque fois qu'une erreur est détectée. Jusque là pas de problème; l'ennui c'est que lors du retour au formulaire si le visiteur a oublié un @ (par exemple), et bien ce que toutes ses données...sont effacées. Dur et agaçant si il doit à nouveau tout ré-écrire, non?
Alors, je sais bien (enfin je crois) que le mieux serait d'utiliser du JS, mais:
1) n'existe-t-il pas une manière de faire ça en php uniquement?
2)et même en JS, les données (corrects) précedentes ne seront elles pas effacées tout de même?
Voici mon form:
[code]
<form method="post" action="contform.php">
<table>
<tr><td>Votre Nom : *<input type="text" name="nom" size="20" /></td>
<td>Votre entreprise :<input type="text" name="soc" size="20" /></td></tr>
<tr><td>Secteur activité: * <select name="act">
<option value="0" selected="selected">--------------</option>
<option value="artisan">Artisans</option>
<option value="mode">Mode</option>
<option value="culture">Culture</option>
<option value="service">Service</option>
<option value="restauration">Restauration</option>
<option value="artistique">Artistique</option>
<option value="assoc">Association</option>
<option value="festival">Festival</option>
<option value="particulier">Particulier</option>
<option value="mairie">Mairie</option>
<option value="pme">PME</option>
<option value="pmi">PMI</option>
<option value="communication">Communication</option>
<option value="transport">Transport</option>
<option value="institution">Institution</option>
<option value="prof.liberale">Profession libérale</option>
<option value="medicale">Médical</option>
<option value="paramedical">Para-médical</option>
<option value="autre">Autre</option>
</select></td>
<td>Si besoin, précisez:<textarea name="precise"></textarea></td></tr>
<tr><td>Ville: *<input type="text" name="ville" size="20" /></td>
<td>Département :*
<select name="dpt">
<option value="0" selected="true">--</option>
<option value="64">64</option>
<option value="40">40</option>
</select></td></tr>
<tr><td>Site existant: *<input type="radio" name="choix" value="oui" />Oui
<input type="radio" name="choix" value="non" />Non</td>
<td>Votre email: *<input type="text" name="email" size="25" /></td></tr>
<tr><td>Votre message :<textarea name="mess"></textarea></td>
<td><center><input type="submit" value="envoyer" />
<input type="reset" value="Annuler" /></center></td></tr>
</table>
</form>
[/code]
et voici mon script (j'en suis asses fier, parce que en fait je l'ai pensé tout seul et j'ai trouvé tout seul la méthode des boutons...après moults tatonnements dois je avouer :?
[php]
<?php
$from = $_POST['email'];
$nom = $_POST['nom'];
$soc = $_POST['soc'];
$act = $_POST['act'];
$preciz = $_POST['precise'];
$ville = $_POST['ville'];
$dpt = $_POST['dpt'];
$email = $_POST['email'];
$point = strpos($email,".");
$aroba = strpos($email,"@");
$adresse_destinataire = '
[email protected]';
$objet = 'Contact commercial heprod';
$retour_a = $_POST['retour_a'];
$retour_c = $_POST['retour_c'];
$message = stripslashes(
"Nom:".$_POST['nom'] .
"\n Société:" .$_POST['soc'] .
"\n Activité:" .$_POST['act'] .
"\n Precision:" .$_POST['precise'] .
"\n Ville: " .$_POST['ville'] .
"\n Departement :" .$_POST['dpt'] .
"\n Site existant :" .$_POST['choix'] .
"\n Email de reponse :" .$_POST['email'] .
"\n Message :" .$_POST['mess']);
if(empty($nom))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le nom doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($act))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le secteur d\'activité doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($ville))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>La ville doit être renseignée</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
if(empty($dpt))
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Le département doit être renseigné</b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center');
}
if(empty($email))
{
print ("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit être renseigné</b></center>");
die();
}
if($point=='')
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit comporter un <b>point</b></b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
elseif($aroba=='')
{
print ('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre email doit comporter un <b>\'@\'</b></b>
<br />
<br />
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>
</center>');
die();
}
else
{
mail(
$adresse_destinataire, $objet, $message, $from);
print('<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
<center><b>Votre demande a été envoyée avec succès !</b>
<br />
<br />
<a href="index.php"><input type="button" name="retour_a" value="retour accueil"/>
</a>
<a href="contact.php"><input type="button" name="retour_c" value="retour contact"/>
</a>.</center>');
exit();
}
?>
[/php]
Bon, je suis certain que l'on peut faire mieux et plus simple, mais bon, je débute, hein.. :oops:
Merci de vos bons conseils et avis, pistes et infos