Page 1 sur 2
Verification Email dans un .txt
Posté : 27 nov. 2009, 16:06
par JhonB
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 !
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:29
par animithra
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

Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:37
par JhonB
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

Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:40
par animithra

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...
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:44
par JhonB
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

hihihi
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:45
par animithra
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
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:47
par JhonB
il va jusqu'au bout, il me duplique mon mail dans le .txt au lieu de me dire EXIST !

Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:48
par animithra
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) ?
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:48
par JhonB
Avec !

woot woot !

Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:51
par animithra
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 !!!!
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:55
par JhonB
Crois moi ou non, il me retourne toujours OK, et m'inscris le mail a la suite des autres!
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';
}
}
}
?>
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:56
par animithra
essaie avec la seconde syntaxe if(strpos($contenu,$mail)!=false)
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 16:58
par JhonB
AHHHHHHHHHH
bah non
il me fait pareil!
RETOURNE OK et inscris après les autres mail

Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 17:00
par animithra
ouvre en lecture avec r+
Re: Verification Email dans un .txt
Posté : 27 nov. 2009, 17:00
par JhonB
CA MARCHHHHE ENFAITE ! MERCIII POURRR TOUUUT !