8792 sujets

Développement web côté serveur, CMS

Bonjour suite a mon probléme de spam, je cherche quelqu'un qui pourrai, gentillement, intégrer dans mon formulaire un test de champs pour éviter la saisie de la chaine de carractère 'http' (ou ne pas envoyer le message si cette chaine est présente dans le formulaire).
Je ne connais pas le php et utilise un formulaire trouvé.

Merci


<?php 
$nom=$HTTP_POST_VARS['nom']; 
$mail=$HTTP_POST_VARS['mail']; 

$message=$HTTP_POST_VARS['message']; 
$subject=$HTTP_POST_VARS['sujet'];
$redirection=$HTTP_POST_VARS['redirection'];
$subject=$HTTP_POST_VARS['cause'];




switch ($subject)
{	case "Demande de renseignements" :
		$destinataire = "alleycat@mail.pf";
		break;
	
	case "Réservation" :
		$destinataire = "alleycat@mail.pf";
		break;
	
	case "Erreur d'horthographe" :
		$destinataire = "alley_cat@mail.pf";
		break;
	
	case "Erreur de lien" :
		$destinataire = "alley_cat@mail.pf";
		break;
	
	case "Erreur d'affichage" :
		$destinataire = "alley_cat@mail.pf";
		break;
	
	case "Erreur d'accessibilité" :
		$destinataire = "alley_cat@mail.pf";
		break;
	
	case "Suggestion" :
		$destinataire = "alley_cat@mail.pf";
		break;
}




/////voici la version Mine 
$headers = "MIME-Version: 1.0\r\n"; 
 
//////ici on détermine le mail en format text 
$headers .= "Content-type: text/plain; charset=iso-8859-2\r\n"; 
 
////ici on détermine l'expediteur et l'adresse de réponse 
$headers .= "From: $nom <$mail>\r\nReply-to : $nom <$mail>\nX-Mailer [langue]HP"; 
 

 // Dans le cas o&#367; nos lignes comportent plus de 70 caract&#269;res, nous les coupons en utilisant wordwrap()
$message = wordwrap($message, 70);



$body="Nom : {$nom}\nMessage : {$message}\n"; 
if (mail($destinataire,$subject,$body,$headers)) { 
echo('<meta http-equiv="refresh" content="5;url=http://www.aquasafaribora.com/'.$redirection.'" />');

} 
?>
Avant ton switch, tu rajoutes le code suivant :

if(preg_match('$http://$',$message)) {
// ton traitement dans le cas où il y ait http
// dans mon cas ici, on bloque l'exécution du script
die("Non mais t'es fou toi !");
}


Sous couvert d'erreurs de typo ...
Au fait, dans ton cas, ton switch peut se résumer en :

switch ($subject){
	case "Demande de renseignements" :
	case "Réservation" :
	case "Erreur d'horthographe" :
	case "Erreur de lien" :
	case "Erreur d'affichage" :
	case "Erreur d'accessibilité" :
	case "Suggestion" :
		$destinataire = "alley_cat@mail.pf";
		break;
}


Voire même Smiley smile
$destinataire = "ally_cat@mail.pf";
Merci pour ton aide, Pour le switch il y a 2 adresses differentes alley_cat et alleycat, c'est pour les tests. Ces adresses seront remplacée par la mienne et celle de la société quand j'aurais résolu les problémes de spam.

Je vais mettre mon code php avec ta solution et voir si j'ai moins de spam.

Merci Smiley biggrin
Oui, alors je reprend ma remarque : tu n'es pas obligé d'écrire plusieurs fois les mêmes parties de code sur ton switch. Il te suffit d'aligner les "case".
Dans ton exemple, cela donnerait, en fait :
switch ($subject) {
	case "Demande de renseignements" :
	case "Réservation" :
		$destinataire = "alleycat@mail.pf";
		break;
	
	case "Erreur d'horthographe" :
	case "Erreur de lien" :
	case "Erreur d'affichage" :
	case "Erreur d'accessibilité" :
	case "Suggestion" :
		$destinataire = "alley_cat@mail.pf";
		break;
}


Eventuellement, si tu veux une action "par défaut", tu peux utiliser "default", ainsi :
switch ($subject) {
	case "Demande de renseignements" :
	case "Réservation" :
		$destinataire = "alleycat@mail.pf";
		break;
	
	case "Erreur d'horthographe" :
	case "Erreur de lien" :
	case "Erreur d'affichage" :
	case "Erreur d'accessibilité" :
	case "Suggestion" :
		$destinataire = "alley_cat@mail.pf";
		break;

        default:
                $destinataire = "uneautreadresse@mail.pf";
                break;
}

Ainsi, tu n'es pas obligé de prévoir tous les cas pour ton $subject Smiley smile
Merci

C'est tellement mieu un code simple Smiley cligne

est ce que cela fonctionne aussi (au cas ou j'aurais compris ) ?



switch ($subject)
{	case "Demande de renseignements" :
	case "Réservation" :
		$destinataire = "alleycat@mail.pf";
		break;
	
	
default: 
		$destinataire = "alley_cat@mail.pf";
        break;
}

Modifié par onibaba (18 Jan 2007 - 23:24)