Probleme avec 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 : Probleme avec formulaire

par Ryle » 05 août 2007, 14:12

Modération :
yuuzhantar, si ta question est résolue, pense à ajouter le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.
Tu peux réaliser cette opération en cliquant sur le bouton Image en haut à gauche de ce sujet.

par yuuzhantar » 05 août 2007, 12:50

salut

sa marche ! mais cela ne vient pas du code que je vous ai passé mais d'une fonction de protection qui empeche les attaques et qui était passée avant

voila

++

par Nico128 » 04 août 2007, 13:50

J'ai un peu repris ton code pour voir avec le mien et ça marche bien, voici ce que j'ai :
			$to = "monadresse@email";
			$objet= "test";
			$message =  $_POST['message'];    	   
        	$message=str_replace("\r\n","<br>",$message);
    		$headers.="Content-Type: text/html; charset=\"iso-8859-1\""; 
			mail($to, $objet, $message, $headers); 

par yuuzhantar » 04 août 2007, 12:55

$post sert a la page découpée en deux, elle vient d'un $_POST et si elle est vide on affiche le formulaire, sinon on envoi le mail ou affiche un message d'erreur

et avec ta derniere astuce j'ai par exemple ceci : essai\r\n\r\nessai\r\n\r\nessai

alors que j'avais des sauts de ligne

sinon merci pour tes idées d'optimisation de code

par Ryle » 04 août 2007, 12:34

if(empty($post)) 
C'est une variable à toi $post ? ou c'est un $_POST complètement loupé ? :)
$message=str_replace("\r\n","<br>",$message); 
Pourquoi ne pas utiliser nl2br() ?
mail("XXXXXXXX", "$objet", "$message", "$headers");
Pourquoi inclure tes variables dans des chaines ? Sortez vos variables !! PHP est obligé de parser ta chaine pour voir s'il trouve une variable.. donne lui directement la variable :)
mail("XXXXXXXX", $objet, $message, $headers);
Bon et sinon pour tes \r\n qui apparaissent, tu lui fait absolument rien d'autre à ta variable $message ? Si tu l'affiches avant de l'envoyer ça donner quoi ?
echo '<pre>';
echo htmlentities($message);
echo '</pre>';

Probleme avec formulaire

par yuuzhantar » 04 août 2007, 12:16

Bonjour

je vous explique : j'ai sur mon site un formulaire de contact sur un seul page, quand on poste, un petit hidden prouve que l'on a posté et une autre partie du script s'exécute

voici un morceau de mon code :
if(empty($post))
	{
	?>
        formulaire de contact
	<?php
	}
else
	{
        $message=$_POST['message'];
...

	protect_mail($mail);
	protect_mail($objet);
	
        $message=str_replace("\r\n","<br>",$message);
	$headers= ....

	mail("XXXXXXXX", "$objet", "$message", "$headers");
}
mais quand je recoit mon mail, je vois par exemple dans le message :
essai\r\n\r\n++
pourquoi je ne vois pas des sauts de ligne ( <br> )

note : dans les headers de mon mail je le met en html
$headers.="Content-Type: text/html; charset=\"iso-8859-1\"";

merci