Forum-webmaster
Technique - programmation => PHP / MySQL => Message commencé par: lunaloka le le 29-08-2008 a 17:47:38

Titre: sécurité sur un script
Posté par: lunaloka le le 29-08-2008 a 17:47:38

Bonjour,
J'ai récupéré un code pour mettre une incription à une newsletter sur mon site.
Je n'ai que 3 choses sur mon formulaire :
- 1 case pour l'adresse mail
- 2 boutons radio (inscription / désinscription)

Comme je connais pas grand chose en php, je voudrais simplement qu'on m'aide à faire coller le code php de ma page "traitement.php" avec le contenu de mon formulaire, histoire d'avoir un truc cohérent et qui fonctionne!

De + quelles sont les valeurs à entrer dans la base de données concernant les boutons radio?

Et au passage,j'aimerais savoir si ce code contient des failles de sécurité et si oui, comment les parer.
Merci d'avance à ceux qui prendront le temps de regarder ;)

Le formulaire:

Code:

<form method="post" action="traitement.php">
Votre e-mail :
<input type="text" name="email" size=30 />
<ul><li>
<input type="radio" value="inscription" name="action"/>
<label for="inscription">Inscription</label>
</li><li>
<input type="radio" value="desinscription" name="action"/>
<label for="desinscription">Désinscription</label>
</li></ul>
<input type="submit" value="OK" class="bouton" />
</form>


voici la page de traitement:

Code:

<?php
$msg_erreur = "Erreur. Les champs suivants doivent être obligatoirement remplis :<br/><br/>";
$msg_ok = "Votre demande a bien été prise en compte.";
$message = $msg_erreur;
define('MAIL_DESTINATAIRE','contact@mail.fr');
define('MAIL_SUJET','Newsletter');

// vérification des champs
if (empty($_POST['email']))
$message .= "Votre adresse mail<br/>";

// si un champ est vide, on affiche le message d'erreur
if (strlen($message) > strlen($msg_erreur)) {

echo $message;

// sinon c'est ok
} else {

foreach($_POST as $index => $valeur) {
$$index = stripslashes(trim($valeur));
}

//Préparation de l'entête du mail:
$mail_entete = "MIME-Version: 1.0\r\n";
$mail_entete .= "From: {$_POST['nom']} "
."<{$_POST['email']}>\r\n";
$mail_entete .= 'Reply-To: '.$_POST['email']."\r\n";
$mail_entete .= 'Content-Type: text/plain; charset="iso-8859-1"';
$mail_entete .= "\r\nContent-Transfer-Encoding: 8bit\r\n";
$mail_entete .= 'X-Mailer:PHP/' . phpversion()."\r\n";

// préparation du corps du mail
$mail_corps = "Message de : $civilite $nom\n";
$mail_corps .= "Adresse : $adresse, $codepostal $ville, $pays\n";
$mail_corps .= "Ses centres d'intérêts : $sqlinterets\n\n\n";
$mail_corps .= $comments;

// envoi du mail
if (mail(MAIL_DESTINATAIRE,MAIL_SUJET,$mail_corps,$mail_entete)) {

//Le mail est bien expédié
echo $msg_ok;
} else {

//Le mail n'a pas été expédié
echo 'Une erreur est survenue lors de l\'envoi du formulaire par email';
}

}
?>


et au passage, vous parait-il correct? merci!



Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.