problème php verif formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème php verif formulaire

Re: problème php verif formulaire

par sim31490 » 04 févr. 2011, 16:57

OK Merci je vais me renseigné
@+

Re: problème php verif formulaire

par moogli » 04 févr. 2011, 16:50

sauf si tu n'a pas configuré le serveur ftp donc dans ton cas sendmail ?

@+

Re: problème php verif formulaire

par sim31490 » 04 févr. 2011, 16:34

j'utilise une machine virtuelle debian j'envoi les scripts par ftp normalement je devrais reçeuvoir les mails sans problèmes

Re: problème php verif formulaire

par moogli » 04 févr. 2011, 16:29

ajoute un test sur le retour de la fonction mail afin de voir si elle renvoie true / false

ensuite sache qu'il faut parfois pas mal de temps pour la réception du mail (en heure parfois).

ensuite si tu test en local il y a de forte chance que ton php ne soit pas configuré pour utiliser un serveur mail précis et que dans ce cas il n’envoie rien :)

@+

Re: problème php verif formulaire

par sim31490 » 04 févr. 2011, 15:51

merci beaucoup,
ça a l'air de marché mais je ne reçoit toujours pas de mail dans ma boite aux lettre

Re: problème php verif formulaire

par moogli » 04 févr. 2011, 15:34

salut,

la fonction session_start envoi, généralement un cookie, ceci est envoyé dans l'entête. Celle ci doit être envoyer avant tout affichage, c'est comme si tu utilisais la fonction header et comme dit dans sa doc
N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
donc tout ton tas de html avant le session start (les 40 1er lignes en fait) font que tu a cette erreur.

en gros session_start() doit être la la première chose que ton script utilise quitte à mettre un <?php session_start(); ?> tous seul sur la 1ere ligne du fichier ;)


@+

Re: problème php verif formulaire

par sim31490 » 04 févr. 2011, 14:31

voilà le code de ma page en entier:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title></title>
<link rel="shortcut icon" href="favicon.ico" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-15" />
<meta http-equiv="content-language" content="fr" />

<link href="style.css"	title="Défaut" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>

<div id="conteneur"><!-- Conteneur Global -->
<div id="header"></div><!-- Header -->
<div id="contenu"><!-- Contenu -->
<div id="left"><!-- Colonne de Gauche -->	
<!-- Menu -->
<div class="haut_menu">Menu</div>
           <ul>
               <li><a href="index.html" title="">Acceuil</a></li>
               <li><a href="competences.html" title="">Compétences</a></li>
               <li><a href="experience.html" title="">Expériences</a></li>
               <li><a href="formations.html" title="">Formations</a></li>
               <li><a href="loisirs.html" title="">Loisirs</a></li>
			   <li><a href="contact.php" title="">Contact</a></li>
           </ul>
<!-- Fin Menu -->		

	
</div><!-- Fin Colonne de Gauche --> 
	   
<div id="right"><!-- Colonne de Droite -->

<img src="images/welcome.jpg" width="596" height="196" alt=""/><!-- Image de bienvenue -->

<div class="news">Contact</div><div class="fond_contenu"><!--  Cadre News -->


<?php
session_start();
if(IsSet($_POST['verif_code']) AND !Empty($_POST['verif_code'])) // Le champ du code de confirmation a été rempli
		{ 
		
			if($_POST['verif_code']==$_SESSION['aleat_nbr']) // Si le champ est égal au code généré par l'image
			{ 
			
					$msg = "Civilité \t".$_POST['civilite']."\n";
					$msg .= "Nom : \t".$_POST['nom']."\n";
					$msg .= "Prénom : \t".$_POST['prenom']."\n";
					$msg .= "Adresses E-Mail : \t".$_POST['mail']."\n";
					$msg .= "Sujet : \t".$_POST['objet']."\n";
					$msg .= "Message : \t".$_POST['message']."\n";
	
					$recipient = "[email protected]"; //On met l'adresse email ou on veut recevoire le mail
					$subject = "Formulaire de CONTACT"; //On met le sujet du mail
					
					
    
				
    
					mail($recipient, $subject, $msg); 
	 
	 
					// message confirmation que le mail a bien été envoyé    
		
					  
					echo "<HTML><HEAD>";
					echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
					echo "<BODY background='fond_envoi.jpg' >";
					// Là, on affiche toute la source générée
					echo "<H1 align=center>Merci, $civilite $prenom $nom </H1>";
					echo "<P align=center>";
					echo "Votre formulaire a bien été envoyé !</P>";
					echo "<meta http-equiv='refresh' content='3;url=http://192.168.1.18/index.html' />";
					echo "</BODY></HTML>";		
					echo "<meta http-equiv='refresh' content='3;url=http://192.168.1.18/index.html' />";
		
			}
			else 
			{
					echo "<HTML><HEAD>";
					echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
					echo "<BODY background='welcome3.jpg' >";
					// Là, on affiche toute la source générée :
					echo "<H1 align=center>$civilite $prenom $nom </H1>";
					echo "<P align=center>";
					echo "Votre code de confirmation n'est pas bon !</P>";?>
					<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a><?php
					echo "</BODY></HTML>"; 
			}     
	
		}	
     	else 
		{
				echo "<HTML><HEAD>";
				echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
				echo "<BODY background='welcome3.jpg' >";
				// Là, on affiche toute la source générée :
				echo "<H1 align=center>$civilite $prenom $nom </H1>";
				echo "<P align=center>";
				echo "Vous devez remplir le champ du code de confirmation !</P>";?>
				<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a><?php
				echo "</BODY></HTML>"; 
   
		}


	

?>
 
</div><!--  Fin Cadre de News --> 
</div><!-- Fin Colonne de Droite -->
</div><!-- Fin Contenu -->
<div id="pied"></div> </div>
<!-- mention de copyright Ne pas retirer sans autorisation écrite -->

<!-- mention de copyright Ne pas retirer sans autorisation écrite -->	
</body>
</html>

Re: problème php verif formulaire

par macgawel » 04 févr. 2011, 14:05

Bonjour.

1. Pense à utiliser les balises de code (boutons PHP et autre), ce sera plus lisible....
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/verif_contact.php:11) in /var/www/verif_contact.php on line 42
En français :
PHP ne peut pas exécuter le session_start() parce que quelque chose a déjà été envoyé (via la ligne 42 du script verif_contact.php)

Quand tu regardes le source de ta page, tu dois avoir quelque chose avant le warning, non ?

problème php verif formulaire

par sim31490 » 04 févr. 2011, 12:59

Bonjour, je suis en train de creer un formulaire de contact pour mon site internet et quand je le rempli et que je fais 'envoyer' je reçoit ce message d'erreur

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/verif_contact.php:11) in /var/www/verif_contact.php on line 42

Merci,
Votre formulaire a bien été envoyé !

Le message ne s'envoi pas. la ligne 42 correspond a "session_start();"

quelqu'un a une idée????????????????????

voila une copy de ma page php de validation de formulaire


<?php
session_start();
if(IsSet($_POST['verif_code']) AND !Empty($_POST['verif_code'])) // Le champ du code de confirmation a été rempli
{

if($_POST['verif_code']==$_SESSION['aleat_nbr']) // Si le champ est égal au code généré par l'image
{

$msg = "Civilité \t".$_POST['civilite']."\n";
$msg .= "Nom : \t".$_POST['nom']."\n";
$msg .= "Prénom : \t".$_POST['prenom']."\n";
$msg .= "Adresses E-Mail : \t".$_POST['mail']."\n";
$msg .= "Sujet : \t".$_POST['objet']."\n";
$msg .= "Message : \t".$_POST['message']."\n";

$recipient = "[email protected]"; //On met l'adresse email ou on veut recevoire le mail
$subject = "Formulaire de CONTACT"; //On met le sujet du mail





mail($recipient, $subject, $msg);


// message confirmation que le mail a bien été envoyé


echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "<BODY background='fond_envoi.jpg' >";
// Là, on affiche toute la source générée
echo "<H1 align=center>Merci, $civilite $prenom $nom </H1>";
echo "<P align=center>";
echo "Votre formulaire a bien été envoyé !</P>";
echo "<meta http-equiv='refresh' content='3;url=http://192.168.1.18/index.html' />";
echo "</BODY></HTML>";
echo "<meta http-equiv='refresh' content='3;url=http://192.168.1.18/index.html' />";

}
else
{
echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "<BODY background='welcome3.jpg' >";
// Là, on affiche toute la source générée :
echo "<H1 align=center>$civilite $prenom $nom </H1>";
echo "<P align=center>";
echo "Votre code de confirmation n'est pas bon !</P>";?>
<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a><?php
echo "</BODY></HTML>";
}

}
else
{
echo "<HTML><HEAD>";
echo "<TITLE>Formulaire envoyer!</TITLE></HEAD>";
echo "<BODY background='welcome3.jpg' >";
// Là, on affiche toute la source générée :
echo "<H1 align=center>$civilite $prenom $nom </H1>";
echo "<P align=center>";
echo "Vous devez remplir le champ du code de confirmation !</P>";?>
<a href="<?php echo $_SERVER['HTTP_REFERER']; ?>">Retour</a><?php
echo "</BODY></HTML>";

}




?>