Bonjour,

Je cherche a securiser un script de newsletter. J ai passé le serveur en register_globals=off et tout fonctionne maintenant...excepté ce script d envoi de newsletter...

Pourriez vous me dire ce qui est faux dans ma portion de code car je ne vois vraiment d'ou vient l'erreur! Lorsque je suis en register_globals=on tout fonctionne et en "off" cela ne m envoi pas le mail...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?php 
include ('dbconnect.php');
 
//sujet du mail
$typedemande =  mysql_real_escape_string($_POST['typedemande']);
 
$choixnewsletter =  mysql_real_escape_string($_POST['choixnewsletter']);
 
//message du mail
$message =  mysql_real_escape_string($_POST['message']);
 
//verification valeur int:
for ( $i = 1; $i <= 21 ; $i++ )
$int[$i] = mysql_real_escape_string($_POST['int'.$i]);
 
//header des mails
$Destinataire = ''.$data['email'].'';
$Sujet = "$typedemande";
$entetemail = "From: xxx.fr <webmaster@xxx.fr> \n"; // Adresse expéditeur
$entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ;
$entetemail .= "MIME-Version: 1.0\r\n"; 
$entetemail .= "Content-type: text/html; charset=iso-8859-1"; 
$msg = "$message \n";
 
if ($int1 == '1')
{ 
$sql=mysql_query('SELECT email FROM membres') or die(mysql_error());
 
while($data = mysql_fetch_array($sql))
{
mail($Destinataire,$typedemande,$msg,$entetemail);
}
echo 'Le mail a été envoyé à tous les membres de la base'; 
}
//Envoi au mail de test
if ($int2 == '1')
{ 
{
$Destinatair = "xxxx@hotmail.fr";
mail($Destinatair,$typedemande,$msg,$entetemail);
}
echo 'Le mail de test a été envoyé à xxxx@hotmail.fr'; 
}
 
if ($int3 == '1')
{ 
$sql=mysql_query("SELECT email FROM tempmail")or die(mysql_error());
while($data = mysql_fetch_array($sql))
{
mail($Destinataire,$typedemande,$msg,$entetemail);
}
sql=mysql_query("TRUNCATE TABLE tempmail")or die(mysql_error());
echo 'Le mail a été envoyé aux membres présent dans la table tempmail'; 
}
 
if ($int4 == '1')
{ 
$sql=mysql_query("SELECT email FROM membres WHERE jeuxenligne = '1' AND newsletter='$choixnewsletter'")or die(mysql_error());
 
while($data = mysql_fetch_array($sql))
{
mail($Destinataire,$typedemande,$msg,$entetemail);
}
echo 'Le mail a été envoyé aux membres ayant pour centre d intérêt les jeux en ligne'; 
}
 
//Puis je continue jusqu a int21 avec la meme portion que $int4 mais en choisissant un centre d interet different à chaque fois...
 
// on ferme la connexion à mysql
mysql_close(); 
?>
merci