Bosoir

Je viens vers vous pour essayer de recevoir de l'aide.
J'ai récupéré un programme PHP (phpmynewsletter) qui correspond à ce que je recherche mais je n'arrive pas à faire en sorte de recevoir un mail après que l'internaute ait validé son mail. En fait, actuellement, même si son adresse est fausse ou bien si elle est déjà repertorié dans la base de donnée, je reçois un mail -ce que je ne cherche pas.

Je suis débutant dans le domaine PHP et je ne comprends pas grand chose. Quelqu'un sauarait-il m'aider à rectifier les quelques lignes pour y parvenir ??

Merci aux personnes généreuses qui prendront le temps de lire et/ de répondre.

<html>
<head>
<title>Newsletter | CLCA</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<script language="php">
if($pass2 !=1){$resultat="<b>Nous avons besoin de votre email pour recevoir notre newsletter</b>";}
$test = 1;
if (strlen($email) >=1)
{
$email = str_replace("|","",$email);
//on vérifie le format de l'adresse e-mail et que les champs ne sont pas vide
$emailverif = $email;
$emailt1 = explode("@",$emailverif);
$emailt2 = explode(".",$emailverif);
$emailt3 = explode(" ",$emailverif);
$emailt4 = explode("@",$emailt2[0]);
if(($email) && (sizeof ($emailt1) == 2) && (sizeof ($emailt2) == 2) && (sizeof ($emailt3) == 1) && (sizeof ($emailt4) == 2)){}
else{$test = 0;$resultat = "<b>Erreur ! Votre email a &eacute;t&eacute; mal  tap&eacute;</b>";$pass2=1;}

//on vérifie que l'adresse e-mail entré n'est pas déjà enregistrée dans la liste de diffusion.
$fp = fopen("result.lst","r");
while (!feof($fp)){$ligne = fgets($fp,4096);$email2 = explode("|",$ligne);}
fclose($fp);
for($x=0;$x <= sizeof($email2)-1;$x++)
{
if ($email2[$x] == $email){$test=0;$resultat = "<b>Erreur ! Votre adresse email est d&eacute;j&agrave; enregistr&eacute;e</b>";$pass2=1;}
}

if($test== 1 )
{
$fp = fopen("result.lst","a");fputs($fp,"$email|");fclose($fp);
$resultat = "<b>Bravo ! Votre inscription a bien &eacute;t&eacute; valid&eacute;e</b>";$pass2=1;
}
}

if($email)
{
$dest = "contact@coeuraccords.com";
$subject = "inscription newsletter CLCA";
$message = "Nouvelle inscription à la la Newsletter du site CLCA : " . $email;
mail($dest, $subject, $message);
}
</script>
          <div align="center"><font color="#AE0000" size="3"><? echo($resultat) ?><br />
Pour revenir &agrave; la page d'accueil, cliquez <a href="http://www.coeuraccords.com">ici</a>.</font></div>

</div>
</body>
</html>

Modifié par omzen (16 Aug 2010 - 22:57)
bonjour...

COmme tu le dis tu es débutant...

pourtant il est simple de voir quoi changer pour ne recevoir le mail que quand on veut...

allez vu que c'est quand même un des tout premier exercice php !! (t'aurais pu faire un effort Smiley cligne )

la soluce à TON cas

if(($email) && ($test== 1 ))


en lieu et place de l'actuelle ligne if($email)
J'ai essayé tout plein de trucs mais pas ça Smiley cligne
merci pour ton indulgence et ton humour

En effet, ça marche du tonnerre. Je ne reçois de mail que lorsque l'adresse est valide. C'est gentil, je te remercie.

Est-ce que tu as des références à me conseiller pour m'épauler dans mes personnalisations de php car j'en ai d'autres à faire et je ne trouve pas grand chose de clair pour les débutants comme moi.
ben le manuel est quand meme très complet...

les éditions Eyrolles proposent de bons bouquins pour apprendre

et d'une manière assez générale le site du zéro http://www.siteduzero.com/
Modifié par pchlj (16 Aug 2010 - 23:47)
MERCI

Dites-moi s'il existe un moyen, en suivant un lien via mail, que le mail de la personne s'écrive dans une case de formulaire pour lui demander la confirmation de sa demande de suppression de la base de donnée (pour une newsletter) ?

le lien est quelque chose comme ça : http://www.domaine.com/php/news/desabonner.php?id=mail@domaine.com

Comment php peut-il écrire ce id=mail dans la case correspondante pour créer une phase intermédiaire avant la suppression définitive de la donnée ?
Modifié par omzen (17 Aug 2010 - 00:50)
omzen a écrit :
J'ai essayé tout plein de trucs mais pas ça Smiley cligne
merci pour ton indulgence et ton humour

En effet, ça marche du tonnerre. Je ne reçois de mail que lorsque l'adresse est valide. C'est gentil, je te remercie.

Est-ce que tu as des références à me conseiller pour m'épauler dans mes personnalisations de php car j'en ai d'autres à faire et je ne trouve pas grand chose de clair pour les débutants comme moi.

Tu peux m'expliquer comment ça marche avec
<script language="php"> Smiley rolleyes

Alors que dans HTML on débutes la zone PHP par
<?PHP
et on la termine par ?>
Et Autre point si tu écris sur le site du Zero donnes nous ton pseudo chez eux ... moi c'est "lavarenne" (de Lavarenne St Hilaire Smiley confused )

pour le lien dans le mail bien sur ça marcherait.
Bonjour,
Christele a écrit :
Tu peux m'expliquer comment ça marche avec
<script language="php"> Smiley rolleyes

Alors que dans HTML on débutes la zone PHP par
<?PHP
et on la termine par ?>
Pas forcément. Voir dans le manuel de PHP.
Modifié par Julien Royer (17 Aug 2010 - 11:36)
Julien Royer a écrit :
Bonjour,
Pas forcément. Voir dans le manuel de PHP.

Bonjour,
Pourtant je crois avoir montré une certaine maitrise de PHP mais là, tu me bluff Smiley smile Merci a toi , j'ais pris bonne note Smiley confused
Tout d'abord, ça arrive à tout le monde de déraper... Rien ne sert de polémiquer, il est toujours bon de s'interroger.
Ceci dit en passant -et tant pis si les internautes ne comprennent pas- je reviens à mon casse-tête php
_________
on vient de m'embrouiller la tête avec ceci :
$_GET

est-ce que cela réglerait mon pb? et où devrais-je le mettre ?
pardonnez-moi mais je suis perdu.

Ce que je cherche c'est que l'abonné puisse se désinscrire de la base de donnée (.list) après avoir cliqué sur le lien genre :
http://www.domaine.com/php/news/desabonner.php?id=mail@domaine.com
et qu'il puisse ensuite confirmer sa désinscription via un petit formulaire dans lequel il y aurait déjà son mail.

Quelqu'un aurait-il la gentillesse de bien vouloir me guider dans cette procédure SVP ?

ledit formulaire
<div align="center">
<form method="post" action="./php/news/nonews.php?id=$email">
    <table width="35%" border="0" bordercolor="#E0E0E0" bgcolor="#EAF2F5" height="58">
      <tr> 
        <td width="90%" height="31"><font color="#AE0000" size="2">Voulez-vous vous désinscrire ?</font>
          <div align="center">
            <input type="text" name="email">
            <input type="submit" name="submit" value="OK">
          </div>
        </td>
      </tr>
      <tr> 
        <td width="90%"> 
          <div align="center"><font color="#AE0000" size="2"><? echo($resultat) ?></font></div>
        </td>
      </tr>
    </table>
  </form>
[code]
Modifié par omzen (17 Aug 2010 - 17:31)
Salut,

omzen a écrit :
on vient de m'embrouiller la tête avec ceci :
$_GET
L'url http://www.domaine.com/php/news/desabonner.php?id=mail@domaine.com permet de récupérer la variable $_GET['id'] qui contiendra mail@domaine.com en faisant par exemple :
$mail = !empty($_GET['id']) ? $_GET['id'] : '';


Si ça t'embrouille la tête c'est que tu ne connais pas le B.A.BA du php et il existe de nombreux sites qui proposent des tutoriaux pour apprendre (ce qui n'est pas le cas d'Alsacréations).

Alors je sais que c'est frustrant mais ce n'est pas en copiant / collant des codes soit-disant "prêts à l'emploi" que tu vas t'améliorer et à la moindre anicroche tu es perdu. Je te conseille donc fortement de (re)voir les bases. Smiley cligne
Modifié par Heyoan (17 Aug 2010 - 17:49)
Merci Heyoan d'avoir pris le temps de me répondre.

OUI TU AS RAISON, je n'ai pas les bases du PHP. Je reconnais mes limites et le PHP en fait partie.

Cela me fait penser aux personnes qui vivent à l'étranger et qui essaient de se débrouiller pour se faire comprendre sans pour autant apprendre la grammaticale de la langue, je suis un peu comme ça.
Les scripts prêts à l'emploi me sont utiles pour éviter de plonger dans un monde qui n'est pas le mien.

Parfois des internautes me donnent des tuyaux qui me font gagner du temps et de la compréhension. Tout comme tu le démontres aussi dans ton message. Alors merci de m'avoir fait partager un peu de ton savoir.