Marchait mais marche plus!

Répondre
Angelo
le 06/02/2005 à 22:54
Angelo
Bonjour à tous, voilà je vous explique mon problème, pour mon site j'ai du créer une interface d'administration dont les fonctions sont stockées dans une librairie PHP4. Avant cette librairie fonctionnait sans problème, mais depuis le passage de mon hébergeur à PHP 4.3.8 la librairie ne marche plus. Plus particulièrement la mailing-liste dont voici le code:

<?PHP
function mailer()
{
if($_POST['ajouter']=='Envoyer!' && $_POST['action']=="ajouter")
{
$connexion_hote = mysql_connect(hote,utilisateur,password);
$connexion = mysql_select_db(bdd);
$res=mysql_query("SELECT `email` FROM `abonnement`");
$titre= "Newsletter";
$email2 = "webmaster1@numericable.frfr";
$entete = "<style>A {text-decoration:none; color:#990000};A:hover {font-weight: bold};A:active {color:#990000};A:visited {text-decoration: none; color:#990000;};</style><body text='#990000' link='#990000' vlink='#990000' alink='#990000'>";
$signature= "<table border='0' bgcolor='' width='100%'><tr><td width='' align='center'><a href='http://www.freepgs.com/dondavid'>Cliquez ici pour accèder au site</a></td><td width='' align='center'><a href='http://55732.aceboard.net/index.php?login=55732'>Cliquez ici pour accèder au forum</a></td></tr></table><p><center>Amicalement,<br/>Angelo</p></center>Merci de ne pas répondre à ce mail car il est généré automatiquement.";
$message=stripslashes($entete.$_POST['message'].$signature);
while($infos=mysql_fetch_array($res))
{
mail($infos['email'],$titre,$message,"From:$email2\nMIME-version: 1.0\nContent-type: text/html; charset= iso-8859-1\n");
}
echo "<center>Mail envoyé</center>";
}
else {

?>
<form name="form1" action="index.php3?action=verifie" method="post">
<table border="0" class="tableau" cellpadding="5" cellspacing="3" width="100%" align="center">
<tr>
<td width="100%" class="titre">

<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td>Contenu :</td>
<td><textarea name="message" style="width:99%; height:300px" class="textarea"><font face="Times New Roman" size="3" color=#990000>Bonjour, voici la newsltter .</textarea>
<script language="JavaScript1.2" defer>
editor_generate('message');
</script></td></tr>
<tr><td colspan="2">&nbsp;</td></tr></tr><tr>
<td width="100%" align="center" colspan="2">
<input type=hidden name=login value="<?php echo $_POST['login']; ?>" >
<input type=hidden name=password value="<?php echo $_POST['password']; ?>" >
<input type=hidden name=texte value="<?php echo $ip ?>" >
<input type=hidden name=action value="ajouter" >
<input type="hidden" name="ajouter" value="Envoyer!">
<input type="submit" name="envoyer" value="Envoyer!"/>
</td>
</tr>
</table>

</form>
</td>
</tr>
</table>

<?
}
}
?>


La page me met mail envoyé lors de l'envoi du formulaire alors que le mail ne l'a pas été. J'avoue être très intrigué par ce problème singulier. Si quelqu'un voit pourquoi ce script ne marche plus ça m'aiderait beaucoup. D'avance merci.

Koboneil : Merci d'utiliser le BB-code !
mojorisin
le 07/02/2005 à 10:53
mojorisin
Essaies de débuguer ton code :
Vérifie ce qui est renvoyé par ta base de données par exemple.
Lis la doc de ton hébergeur sur la fonction mail, il peut y avoir certaines contraintes à respecter.
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
bibi
le 07/02/2005 à 12:44
bibi
remplaces

mail($infos['email'],$titre,$message,"From:$email2\nMIME-version: 1.0\nContent-type: text/html; charset= iso-8859-1\n");


par
<?
if(mail($infos['email'],$titre,$message,"From:$email2\nMIME-version: 1.0\nContent-type: text/html; charset= iso-8859-1\n"))
{
echo "ok";
}
else
{
echo 'pas ok';
}
?>
commit suicide
Angelo
le 07/02/2005 à 18:00
Angelo
Merci de vos réponses

koboneil ==> désolé j'y penserai la prochaine fois.

mojorisin ==> Mon hébergeur n'a pas de doc à ma connaissance. Debbbuger mon code, qu'entends-tu par là? avec un débuggeur, je n'en ai pas, j'suis obligé de faire ça à l'ancienne loll. Ou avec Easy PHP, mais comme la base de données n'existe pas sur mon PC, ça ne me semble pas cohérent.

bibi ==> Le code que tu m'as donné ne retourne rien si ce n'est qu'il fait planter toute la librairie.

J'ai essayer de vérifier la requète SQL, sur PHPMyadmin, et en plus du résultat, le serveur me retourne trois fois une erreur incompréhensible. En recommençant à l'identique, le serveur ne retourne pas d'erreur. A mon avis c'est mon hébergeur qui déconne car , même avec ma librairie que jai postée plus haut et qui marchait elle plante.
bibi
le 07/02/2005 à 18:21
bibi
c pas normal pcke mail retourne un booléen
commit suicide
Angelo
le 07/02/2005 à 18:37
Angelo
En effet ce n'est pas normal car la librairie refonctionne correctement. C'est à n'y rien comprendre. A mon avis ce n'était qu'une défaillance temporaire.

Merci Moogli pour ce lien.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours