verifier un formulaire en PHP - PHP - Programmation
Marsh Posté le 21-08-2006 à 10:11:57
ok c'est sympa merci
je le colle en dessous
- Haut de page (avant la balise <html> )
<?php
// Couleur du texte des champs si erreur saisie utilisateur
$color_font_warn="#FF0000";
// Couleur de fond des champs si erreur saisie utilisateur
$color_form_warn="#FFCC66";
// Ne rien modifier ci-dessous si vous nêtes pas certain de ce que vous faites !
if(isset($_POST['submit'])){
$erreur="";
// Nettoyage des entrées
while(list($var,$val)=each($_POST)){
if(!is_array($val)){
$$var=strip_tags($val);
}else{
while(list($arvar,$arval)=each($val)){
$$var[$arvar]=strip_tags($arval);
}
}
}
// Formatage des entrées
$f_1=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_1)));
$f_2=trim(ucwords(eregi_replace("[^a-zA-Z0-9éèàäö\ -]", "", $f_2)));
$f_3=strip_tags(trim($f_3));
// Verification des champs
if(strlen($f_1)<2){
$erreur.="<li><span class='txterror'>Le champ « Nom : » est vide ou incomplet.</span>";
$errf_1=1;
}
if(strlen($f_2)<2){
$erreur.="<li><span class='txterror'>Le champ « Prénom : » est vide ou incomplet.</span>";
$errf_2=1;
}
if(strlen($f_3)<2){
$erreur.="<li><span class='txterror'>Le champ « E-Mail : » est vide ou incomplet.</span>";
$errf_3=1;
}else{
if(!ereg('^[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+'.
'@'.
'[-!#$%&\'*+\/0-9=?A-Z^_`a-z{|}~]+\.'.
'[-!#$%&\'*+\./0-9=?A-Z^_`a-z{|}~]+$',
$f_3)){
$erreur.="<li><span class='txterror'>La syntaxe de votre adresse e-mail n'est pas correcte.</span>";
$errf_3=1;
}
}
if(strlen($f_4)<2){
$erreur.="<li><span class='txterror'>Le champ « Course du : » est vide ou incomplet.</span>";
$errf_4=1;
}
if(strlen($f_5)<2){
$erreur.="<li><span class='txterror'>Le champ « Catégorie » est vide ou incomplet.</span>";
$errf_5=1;
}
if(strlen($f_7)<2){
$erreur.="<li><span class='txterror'>Le champ « Fréquences : » est vide ou incomplet.</span>";
$errf_7=1;
}
if(strlen($f_8)<2){
$erreur.="<li><span class='txterror'>Le champ « N° de transpondeur » est vide ou incomplet.</span>";
$errf_8=1;
}
if($erreur=="" ){
// Création du message
$titre="Message de votre site";
$tete="From:Site@Mrclongwy.fr\n";
$corps.="Nom : : ".$f_1."\n";
$corps.="Prénom : : ".$f_2."\n";
$corps.="E-Mail : : ".$f_3."\n";
$corps.="Course du : : ".$f_4."\n";
$corps.="Catégorie : ".$f_5."\n";
$corps.="N° de licence FVRC : : ".$f_6."\n";
$corps.="Fréquences : : ".$f_7."\n";
$corps.="N° de transpondeur : ".$f_8."\n";
if(mail("julien.marchal@free.fr", $titre, stripslashes($corps), $tete)){
$ok_mail="true";
}else{
$erreur.="<li><span class='txterror'>Une erreur est survenue lors de l'envoi du message, veuillez refaire une tentative.</span>";
}
}
}
?>
- Entre les balises <head> et </head>
<style type="text/css" media="screen"><!--
INPUT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
SELECT { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
TEXTAREA { color: #000; font-size: 11px; font-family: verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular; background-color: #EEEEEE }
.txterror { color: black; font-size: 11px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
.txtform { color: black; font-size: 12px; font-family: Verdana, Arial, Helvetica, Geneva, Swiss, SunSans-Regular }
--></style>
- Entre les balises <body> et </body>
<? if($ok_mail=="true" ){ ?>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<tr><td><span class='txtform'>Le message ci-dessous nous a bien été transmis, et nous vous en remercions.</span></td></tr>
<tr><td> </td></tr>
<tr><td><tt><?echo nl2br(stripslashes($corps));?></tt></td></tr>
<tr><td> </td></tr>
<tr><td><span class='txtform'>Nous allons y donner suite dans les meilleurs délais.<br>A bientôt.</span></td></tr>
</table>
<? }else{ ?>
<form action='<? echo $PHP_SELF ?>' method='post' name='Form'>
<table width='100%' border='0' cellspacing='1' cellpadding='1'>
<? if($erreur){ ?><tr><td colspan='2' bgcolor='red'><span class='txterror'><font color='white'><b> ERREUR, votre message n'a pas été transmis</b></font></span></td></tr><tr><td colspan='2'><ul><?echo$erreur?></ul></td></tr><?}?>
<tr><td colspan='2'><span class='txterror'>Les champs marqué d'un * sont obligatoires</span></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Nom :* :</span></td><td><input type='text' style='width:200 <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Prénom :* :</span></td><td><input type='text' style='width:200 <?if($errf_2==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_2' value='<?echo stripslashes($f_2);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>E-Mail :* :</span></td><td><input type='text' style='width:200 <?if($errf_3==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_3' value='<?echo stripslashes($f_3);?>' size='24' border='0'></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Course du :* :</span></td><td><textarea style='width:360 <?if($errf_4==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_4' rows='6' cols='40'><?echo$f_4?></textarea></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Catégorie* :</span></td><td><textarea style='width:360 <?if($errf_5==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_5' rows='6' cols='40'><?echo$f_5?></textarea></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>N° de licence FVRC : :</span></td><td><textarea style='width:360 <?if($errf_6==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_6' rows='6' cols='40'><?echo$f_6?></textarea></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>Fréquences :* :</span></td><td><textarea style='width:360 <?if($errf_7==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_7' rows='6' cols='40'><?echo$f_7?></textarea></td></tr>
<tr><td align='right' width='30%'><span class='txtform'>N° de transpondeur* :</span></td><td><textarea style='width:360 <?if($errf_8==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_8' rows='6' cols='40'><?echo$f_8?></textarea></td></tr>
<tr><td align='right' width='30%'></td><td><input type='submit' name='submit' value='Envoyer' border='0'></td></tr>
</table>
</form>
<? } ?>
Marsh Posté le 21-08-2006 à 10:22:50
1ere piste : essaye voir de supprimer les accents et les caractères spéciaux...
Marsh Posté le 21-08-2006 à 10:30:04
ok je vai retirer é,è,à, °. si tu penses à autres chose dit moi le.
Marsh Posté le 21-08-2006 à 11:13:09
je ferais sa ce soir, car la je suis au boulot! Je te redirai sa ce soir vers 21h pour te dire si ca marche ou pas!
merci
Marsh Posté le 21-08-2006 à 11:37:12
salut, pour avoir eu des tas de probleme comme le tiens, je te conseil pour cibler le probleme, de créer une toute petite page avec juste une ligne pour t'envoyer un mail :
créé un petit formulaire avec juste un bouton 'envoyer' (donc avec l'id 'envoyer') puis en haut de la page rajoute ça :
<?php
if (isset($POST['envoyer'])) {
mail(tonadresse@domaine.com,test, test pour verifier);
}
?>
bien sûr tu remplace tonadresse@domaine.com, par l'adresse que tu veux.
déjà ça te permettra de savoir si la fonction mail() fonctionne bien.
Marsh Posté le 21-08-2006 à 11:42:32
la variable $corps est initialisé avec quelles valeurs ?
tu ne peux pas faire le stripslahes avant, (l'afficher pour être sur qu'il est bon pour tes tests) inclure le résultat aprés?
tu as vérifié que ton serveur pouvais envoyer des mails via php ? qu'il n'étais pas limité à un type d'adresse ?
tu as essayé d'envoyer un mail tout simple avec ton serveur ?
personnellement, je ne mettrais pas la fonction mail dans le test de IF... je la sortirais, attaquerais une variable avec, et entrerais cette variable dans le IF.. mais bon je ne pense pas que ça soit ton soucis.
...
je ne vois rien d'autre..
Marsh Posté le 21-08-2006 à 11:43:59
donc si je comprend bien, (je rapelle que moi et le PHP ca au moins 5) je cré une page et je met juste le bouton envoyer et rien au dessus? c'est bien ca? je ne rajoute rien ni champs...
Marsh Posté le 21-08-2006 à 11:54:57
oui, comme te di Chani_t, il faut déjà vérifier que ton serveur envoi bien des mails via php.
tu créé ta page avec ton formulaire et juste un bouton envoyé et le code que je t'ai donné et tu test!!!
ça devrait ressembler à ça :
Code :
|
Marsh Posté le 21-08-2006 à 12:49:30
Mon futur hebergeur sera OVH, donc je pense qu'il accepte ce genre de chose, voici le lien de l'offre que j'ai choisi:
http://www.ovh.com/fr/produits/start1g.xml
Mais pour l'insatnt j'heberge chez free, sur une de mes adresses pour que je puisse tester mes pages...
Le probleme vient-il de chez free peut etre NON?
Merci
Marsh Posté le 21-08-2006 à 18:01:30
peut être :-))))) mais teste comment veux tu savoir sinon!!! si ça marche avec ta petite page c que ça vient de ton scripte, à ce moment faudra trouver une âme charitable pour éplucher ton scripte :-). je ne suis pas assez calé en prog moi pour le faire dslé!!!
Marsh Posté le 21-08-2006 à 19:48:00
ok je vai coller le script qui a ete mis, et je clic sur envoyer et je regarde si g bien recu sur le mail que g modifié dans le script et je te redi
Marsh Posté le 21-08-2006 à 10:05:01
Je recherche quelqu'un pour verifier un script en PHP que j'ai generer sur un site mais j'ai un probleme au niveau de l'envoi, en effet, lorsque je clic sur envoyer, il me dit que le message est envoyé mais je ne recois rien dans ma boite mail?
quelquun pour verifier mon script car je ne connecter pas le php.
Merci d'avance
Julien