Petit problème Formulaire

Wash
Invité n'ayant pas de compte PHPfrance

13 mai 2019, 17:56

Bonjour la Communauté,
Voila je bute sur un petit problème dans mon script. Je m'explique :
je fais un petit formulaire PHP simple pour une newsletter sans BD,. Inscription - Désinscription.
Jusque la pas de problème il fonctionne nickel. Maintenant je n'arrive pas a mettre la fonction pour dire
que le nom est déjà enregistré et qu'on ne puisse pas s’inscrire plusieurs fois...
Je vous donne mon code :

Code : Tout sélectionner

<?php header('Content-Type: text/html; charset=utf-8'); header('Content-Language: fr'); if (!empty($_POST['email']) && !empty($_POST['object'])) { $email = strtolower(trim($_POST['email'])); $file = 'email_list.txt'; if (filter_var($email, FILTER_VALIDATE_EMAIL)) { $data = $_POST['email']."\n"; if ($_POST['object'] == 'subscribe') { $fh = fopen($file, 'a'); if ($fh) { fwrite($fh, $data); fclose($fh); $message = 'Vous êtes maintenant inscrit à notre newsletter.'; } } else { $content = file_get_contents($file); $content = str_replace($data, '', $content); file_put_contents($file, $content); $message = 'Vous êtes maintenant désinscrit de notre newsletter.'; } } else { $message = 'Cette adresse email est invalide.'; } } ?>
Merci à vous
Washoung

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

13 mai 2019, 18:58

Bonjour,

Il faut que tu utilises file_get_contents() pour récupérer la liste de tous tes abonnés (comme tu le fais déjà d'ailleurs pour la désinscription)
Puis il faut tester la présence du mail saisi dans ce contenu. Tu peux le faire assez facilement avec la fonction preg_match()
http://php.net/preg_match
Quand tout le reste a échoué, lisez le mode d'emploi...