Verification Email dans un .txt

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:06

Bonjour à tous,

Je suis pas super fort en php, j'ai un petit soucis et j'ai besoin de vos connaissances approfondies. Je vous expose mon problème:

A partir de mon site flash, je récupère le mail d'un utilisateur. Cela passe pas un script PHP pour me créer au final un .txt qui contient les infomations comme ceci:

[email protected];[email protected];[email protected];...

CA MARCHE NIQUEL. seulement si l'utilisateur oublie qu'il est deja inscrit a la news letter et qu'il le refait, il me fait un doublon

[email protected];[email protected];[email protected];[email protected];...

Mon script PHP est:

Code : Tout sélectionner

if (isset($_POST['mail'])) { $mail = $_POST['mail']; if ($mail!="") { $ouvre=fopen("mailing.txt","a+"); // ouverture en lecture ( a+) $mail.=";"; fwrite($ouvre,$mail); // écriture fichier fclose($ouvre); // fermeture fichier } echo 'OK'; } ?>

Alors ce que j'aimerai faire, c'est vérifié dans mon TXT si le mail existe déja. S'il existe, il me fait un echo EXIST.

j'ai essayé ceci mais ca ne marche pas:

Code : Tout sélectionner

if (isset($_POST['mail'])) { $mail = $_POST['mail']; if ($mail!="") { $filename = "mailing.txt"; $ouvre=fopen("mailing.txt","a+"); // ouverture en lecture ( a+) if int readfile ( string $filename [, bool $use_include_path [, resource $mail ]] ) { echo 'EXIST'; } $mail.=";"; fwrite($ouvre,$mail); // écriture fichier fclose($ouvre); // fermeture fichier } echo 'OK'; }
Comment faire? Merci pour votre aide les amis !

Eléphant du PHP | 174 Messages

27 nov. 2009, 16:29

Bonjour,

L'idée est bonne.

Je pense que tu peux la réexploiter en utilisant strpos().

Une fois que tu as procédé à l'ouverture de ton fichier, récupère son contenu dans une variable
$contenu = fread($ouvre,filesize("mailing.txt"));
Ensuite tu peux utiliser strpos($adresseEmail,$contenu) qui va te retourner (sous forme d'un entier) la position de l'adresse email si elle est présente dans ton fichier (tu peux initialiser la variable d'appel à 0 et tester si la valeur après appel est différente, si tel est le cas alors ton adresse existe déjà).

En espérant t'avoir aidé, je te souhaite une bonne progra ;)
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:37

En gros j'aurai ceci alors:

if (isset($_POST['mail']))
{

$mail = $_POST['mail'];
if ($mail!="")
{
$ouvre=fopen("mailing.txt","a+"); // ouverture en lecture ( a+)
$contenu = fread($ouvre,filesize("mailing.txt"));

if (strpos($adresseEmail,$contenu) >= 1) {
echo 'EXIST';
}
$mail.=";";
fwrite($ouvre,$mail); // écriture fichier
fclose($ouvre); // fermeture fichier
}
echo 'OK';
}

is it ?

ca marche pas :D

Eléphant du PHP | 174 Messages

27 nov. 2009, 16:40

:non: normal tu ne fais pas de else... il fait l'opération dans tous les cas...
ajoute un else après ton if ou alors, à la place de ton echo, tu mets un die("exists"); qui arrête le programme tout en affichant l'erreur.

D'ailleurs, tu devrais :
1-Indenter le code, ça serait mieux
2-mettre pour chaque if, un else contenant un echo ou un die() pour voir ou ça s'arrête, si ça se trouve, ça bloque ailleurs...
Modifié en dernier par animithra le 27 nov. 2009, 16:44, modifié 1 fois.
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:44

Code : Tout sélectionner

if (isset($_POST['mail'])) { $mail = $_POST['mail']; if ($mail!="") { $ouvre=fopen("mailing.txt","a+"); // ouverture en lecture ( a+) $contenu = fread($ouvre,filesize("mailing.txt")); if (strpos($mail,$contenu) >= 1) { echo 'EXIST'; } else { $mail.=";"; fwrite($ouvre,$mail); // écriture fichier fclose($ouvre); // fermeture fichier } } echo 'OK'; } ?>
Toujours paaaaas :D hihihi
Modifié en dernier par JhonB le 27 nov. 2009, 16:45, modifié 1 fois.

Eléphant du PHP | 174 Messages

27 nov. 2009, 16:45

Bon, je m'auto-cite.

Pour chaque if mets un else avec un die() pour voir ou le programme s'arrête.

Si ça se trouve ça plante ailleurs (probabilité 100% chez moi ça fonctionne très bien).

EDIT : au temps pour moi, j'ai inversé les paramètres de la fonction strpos() en te les donnant.. et pas dans mon code, normal que ça marche chez moi et pas chez toi XD
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:47

il va jusqu'au bout, il me duplique mon mail dans le .txt au lieu de me dire EXIST ! :(

Eléphant du PHP | 174 Messages

27 nov. 2009, 16:48

il va jusqu'au bout, il me duplique mon mail dans le .txt au lieu de me dire EXIST ! :(
Avec ou sans l'inversion des paramètres (cf mon précédent post) ?
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:48

Avec ! :( woot woot ! :D

Eléphant du PHP | 174 Messages

27 nov. 2009, 16:51

Rah, c'est de ta faute, tu ne m'as pas lue en plein !!!!

Pas de if(strpos()>=1) !

Soit tu fais :
$pos = 0;
$pos = strpos($contenu,$mail);
if($pos!=0)
Soit tu fais (et c'est mieux !)
if(strpos($contenu,$mail)!=false)

Sinon c'est évident qu'il te dira jamais EXIST !!!!
Modifié en dernier par animithra le 27 nov. 2009, 16:55, modifié 1 fois.
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:55

Crois moi ou non, il me retourne toujours OK, et m'inscris le mail a la suite des autres! :D

Donc pour le code j'ai:

Code : Tout sélectionner

... $ouvre=fopen("mailing.txt","a+"); // ouverture en lecture ( a+) $contenu = fread($ouvre,filesize("mailing.txt")); $pos = 0; $pos = strpos($contenu,$mail); if($pos!=0) { die("exists"); } else { $mail.=";"; fwrite($ouvre,$mail); // écriture fichier fclose($ouvre); // fermeture fichier echo 'OK'; } } } ?>

Eléphant du PHP | 174 Messages

27 nov. 2009, 16:56

essaie avec la seconde syntaxe if(strpos($contenu,$mail)!=false)
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 16:58

AHHHHHHHHHH


bah non
il me fait pareil! :D

RETOURNE OK et inscris après les autres mail :D

Eléphant du PHP | 174 Messages

27 nov. 2009, 17:00

ouvre en lecture avec r+
"Il vaut mieux avoir du luxe dans ses sentiments que sur ses habits, je ne crains, moi, le mépris de personne" Honoré De Balzac.
"On s'étonne trop de ce que l'on voit rarement et trop peu de ce que l'on voit chaque jour" Mme de Genlis
"L'absence diminue les médiocres passions et augmente les grandes comme le vent éteint les bougies et allume le feu" La RocheFoucauld
"People have hope because they can't see Death standing behind them" (anonymous)
"Of all the things I've lost, I miss my brain the most" (from a fanfic)

Eléphanteau du PHP | 11 Messages

27 nov. 2009, 17:00

CA MARCHHHHE ENFAITE ! MERCIII POURRR TOUUUT !