Envoi avec mail() et la sécurité?

Rechercher

Envoi avec mail() et la sécurité?

Par bodytalk  -  7 reponses  -  Le 20/02/2008 17:58  -  Editer  - 

Bonjour, originaire de la pao, sur Mac depuis 1990, je m'intéresse (seulement) depuis quelque mois au html, css et php; (merci à votre site et au site du zéro qui m'ont été bien utile). J'ai donc fait un site pour un ami et j'aimerais savoir si ce script est sécurit ou si je dois rajouter certaines conditions pour éviter les injections ou autre désagréments. Tout fonctionne pour le moment, mis à part le header que je n'ose modifier...

Voici donc le script récupéré et modifié:

Modéré car non mis en forme

 

Réponses apportées à cette discussion

Par Emacs  -  Le 20/02/2008 18:04  -  Haut de page  - 

Bonjour,

Peux-tu nous redonner ton code en utilisant l'icône approprié pour le mettre en forme stp ?

Merci :)

 
Par bodytalk  -  Le 20/02/2008 18:11  -  Haut de page  - 
<?
//on rend innofensives les données (seulement le html ici)
  if(get_magic_quotes_gpc())
    $_POST=array_map('stripslashes',$_POST);
  $_POST=array_map('trim',$_POST);
  foreach($_POST as $champ=>$valeur)
    $_POST[$champ]=htmlspecialchars($valeur,ENT_NOQUOTES);
  $date=date('d/m/Y H:i:s');
//on prépare les données pour envoyer le mail
  $header='From: '.$destinataire."\r\n".'Content-type:text/plain;charset=iso-8859-1';
  $subject='Demande de reservation';
  $message='';
//tous les champs du formulaire sont ajoutés dans le message
  foreach($_POST as $cle=>$valeur)
    $message.=$cle.' : '.$valeur."\n";
//on envoie le mail en séparant les adresse des deux destinataires par une virgule et un espace dans le premier argument de la fonction
  mail('bodytalk1@free.fr',$subject,$message,$header);
//on dirige vers le résultat, mais on petut le faire au début, seulement on ne verra pas les erreurs s'il y en a.
  header('Location: http://www.exemple.com/expl.html');
?>

Ouups, désolé, vraiment newbie ...

 
Par bodytalk  -  Le 20/02/2008 18:28  -  Haut de page  - 

Ah, j'oubliais le second inconvénient, c'est l'accentuation et les "ç" qui arrivent comme dans le code; pourtant il y a bien iso-8859?!?...

 
Par Emacs  -  Le 20/02/2008 20:10  -  Haut de page  - 

Salut,

Plusieurs remarques :

1/ Les tags php sont

 
Par bodytalk  -  Le 21/02/2008 08:35  -  Haut de page  - 

Super merci pour ta réponse; je suis vraiment un gros naze pour l'erreur 1/

Le fait est que, avec les guides ovh, cela fait une somme énorme d'infos à ingurgiter (heureusement que je parle anglais). Je retourne potasser.

@ bientôt

 
Par bodytalk  -  Le 22/02/2008 16:21  -  Haut de page  - 
if (eregi("\r",$valeur) || eregi("\n",$valeur)){
die("Why ?? :(");
}

Re-bonjour, après quelques recherches, j'ai trouvé ce code, mais le "\r" et "\n" sont déjà dans le $header

donc est-ce deux choses différentes?

Désolé pour mon niveau 0 mais je sature avec toute ces infos :-(

 
Par Emacs  -  Le 24/02/2008 11:32  -  Haut de page  - 

Bonjour,

Ce code est obsolète... Il faut préférer un preg_match() ou bien un preg_replace() qui sont plus rapides.

 

Ajouter une réponse à la discussion

Seuls les membres connectés sont autorisés à poster dans les forums !

Identifiez-vous
Join |  ID/MDP? |