Vous n'êtes pas identifié(e).
Bonsoir à vous,
je suis en train de travailler sur un script qui enregistre la date et l'adresse e-mail d'un formulaire envoyé dans un fichier .csv (ils s'incrémentent les uns à la suite des autres).
Jusque là tout fonctionne, j'ai utilisé la fonction fput().
Là où tout se complique, c'est que j'aimerais vérifier que chaque ligne de mon CSV (contact@serv.net; 12/12/2010 ...) ne soit pas identique à celle qui vient d'être envoyée par le formulaire. Je n'arrive pas à effectuer ce bout de script, voici où j'en suis:
Code qui exploite le CSV pour vérifier que l'e-mail envoyé n'existe pas déjà :
echo "Déjà dans la DBB";
// Sinon on ajoute !
} else {
echo "Ajouté";
}
// On ferme le fichier
fclose($handle);
}
}
voici le code qui fonctionne : celui qui incrémente le fichier .csv :
Merci à vous pour votre éventuelle aide...!
Dernière modification par laurent (01-12-2011 23:44:50)
Hors ligne
il suffit juste de mettre une contrainte sur la table
une clef non duplicable dur le champ email
a++
Hors ligne
Salut Pierrot,
le problème ici est que je n'utilise pas de requête SQL.
Merci
Hors ligne
scuze :D
je dormai :D
tu met le csv sans un tableau et avec in_array il devrait y avoir une solution );
a++
Hors ligne
Saluton,
Attention si le fichier emails_db.csv est susceptible d'être modifié //ment par un autre process.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Salut Maljuna,
pardon je n'ai pas compris ?
Pour l'instant j'ai pas vraiment de message d'erreur, en retour j'ai juste "Ajouté" qui s'affiche.
Et si je fais
je vois apparaître "email" qui correspond au premier chamsp de mon fichier csv.
Dernière modification par laurent (02-12-2011 10:34:36)
Hors ligne
Voici un screen de ma BDD csv
Dernière modification par laurent (02-12-2011 10:33:26)
Hors ligne
Il te faut sortir fclose($handle); de la boucle while.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
ce que MK indique c'est que si le fichier est utiliser en même temps pour une autre page php ou par un autre logiciel tu risque de corrompre le fichier (suivant les modifs effectuée) le dernier qui enregistre va supprimer les données du 1er
regarde la fonction flock()
@+
Il en faut peu pour être heureux pompompompompompompompompompompom
Hors ligne
Merci à vous, j'ai bien compris, alors j'ai dû modifier mon code (qui fonctionne presque correctement).
Au lieu de m'afficher une seule fois "Email allready in database", il me l'affiche autant de fois qu'il rencontre de lignes dans le fichier .csv, pourtant mon script lui dit d'afficher ce message uniquement s'il rencontre ce champs non ?
voici mon code :
$fic = fopen($fichier, 'r');
$tab_lignes = array("test@test.com");
$nb_lignes = 0;
while($ligne = fgetcsv($fic, 0, ';'))
{
if(in_array($ligne[0], $tab_lignes))
{
echo "Deja dans le fichier";
}else {
echo "pas dans le fichier";
}
++$nb_lignes;
}
fclose($fic);
Réponse du script :
"pas dans le fichierpas dans le fichierpas dans le fichierpas dans le fichierpas dans le fichierpas dans le fichierDeja dans le fichierpas dans le fichierpas dans le fichierpas dans le fichierpas dans le fichier"
Dernière modification par laurent (02-12-2011 11:47:45)
Hors ligne
Supprime le else.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Si je le supprime il ne m'affiche plus rien alors que l'adresse y est
Dernière modification par laurent (02-12-2011 12:13:17)
Hors ligne
J'ai fais une petite erreur sur mon script du dessus, $fic correspondait à rien, après l'avoir remplacé par $fp,
j'obtiens tout le temps "Deja dans le fichier"
Une idée ?
Merci...!
Hors ligne