Comment afficher un pop up newsletter avec condition
Résolu
flexi2202
Messages postés
3822
Date d'inscription
Statut
Membre
Dernière intervention
-
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
flexi2202 Messages postés 3822 Date d'inscription Statut Membre Dernière intervention -
bonjour a tous
j ai une page avec un pop up newsletter qui s affiche lorsque l utilisateur se connecte a mon site
et donc si il le souhaite il peux s y inscrire ou fermer le pop up
j ai crée une table neuw pour enregistrer les utilisateurs qui désirent s abonner
je souhaiterais que quand il est déjà inscrit il reçoit une autre pop up en lui disant vous êtes déjà inscrit a la newsletter
j ai tente de modifier le code que j ai par ceci mais cela ne fonctionne pas
je n ai plus le pop up et je n ai pas non plus le message comme quoi il est enregistre(je changerais ce message par une pop up plus tard
voici mon code
je ne sais pas si j ai bien indiquer les erreurs avec pdo pour la requête
en début de code j ouvre la session de cette façon
session_start();
puis ce code en bas de page
j ai une page avec un pop up newsletter qui s affiche lorsque l utilisateur se connecte a mon site
et donc si il le souhaite il peux s y inscrire ou fermer le pop up
j ai crée une table neuw pour enregistrer les utilisateurs qui désirent s abonner
je souhaiterais que quand il est déjà inscrit il reçoit une autre pop up en lui disant vous êtes déjà inscrit a la newsletter
j ai tente de modifier le code que j ai par ceci mais cela ne fonctionne pas
je n ai plus le pop up et je n ai pas non plus le message comme quoi il est enregistre(je changerais ce message par une pop up plus tard
voici mon code
je ne sais pas si j ai bien indiquer les erreurs avec pdo pour la requête
en début de code j ouvre la session de cette façon
session_start();
puis ce code en bas de page
<?php require_once 'config.php'; $mail = $_POST['mail']; try{ $stmt = $pdo->prepare("SELECT * FROM neuw WHERE mail=?"); $stmt->execute([$mail]); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $mail = $stmt->fetch(); if ($mail) { echo "le nom d'utilisateur existe déjà"; } else { // le nom d'utilisateur n'existe pas if(empty($_SESSION['story'])) { $_SESSION['story'] = TRUE; require_once "myModal.php"; } } ?>
A voir également:
- Code html pop up automatique
- Code ascii - Guide
- Pop up mcafee - Accueil - Piratage
- Réponse automatique thunderbird - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
13 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
si ton programme n'affiche rien, ajoute des echo.
si ton programme n'affiche rien, ajoute des echo.
bonjour merci pour l aide
j avais fait une erreur ce n est pas mail mais email
je viens de mettre deux echo mais cela n affiche rien
j avais fait une erreur ce n est pas mail mais email
je viens de mettre deux echo mais cela n affiche rien
<?php require_once 'config.php'; $email = $_POST['email']; try{ $stmt = $pdo->prepare("SELECT * FROM neuw WHERE email=?"); $stmt->execute([$email]); echo $email; echo $_POST['email']; }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } $email = $stmt->fetch(); if ($email) { echo "le nom d'utilisateur existe déjà"; } else { // le nom d'utilisateur n'existe pas if(empty($_SESSION['story'])) { $_SESSION['story'] = TRUE; require_once "myModal.php"; } } ?>
désolé , désolé
en fait je me suis mal explique
je pense que cela arrive quand on a trop la tête dans le guidon
comme on dit
je souhaiterais vérifier que l email de la session en cours se trouve oui ou non dans une autre table
en fait je me suis mal explique
je pense que cela arrive quand on a trop la tête dans le guidon
comme on dit
je souhaiterais vérifier que l email de la session en cours se trouve oui ou non dans une autre table
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
voila je reviens avec mon code modifie
je récupère donc ma variable mail et je regarde si elle existe dans ma table neuw
mais cela ne me retourne rien
je récupère donc ma variable mail et je regarde si elle existe dans ma table neuw
mais cela ne me retourne rien
<?php session_start(); echo $_SESSION['email'] ; require_once 'config.php'; $email = $_SESSION['email']; $stmt = $pdo->prepare("SELECT * FROM neuw WHERE email=?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user) { echo"email existe"; } else { echo"email n'existe pas"; } ?>
Bonjour
Ou est passé le try/catch pourtant bien utile pour détecter les éventuelles erreurs PDO ?
Ensuite, quand tu dis que ça ne retourne rien... c'est à dire ?
Tu as une page blanche ou un des deux echo s'affiche ?
Si ce code ne t'affiche rien... c'est que dans ta bdd tu n'as pas de ligne correspondant à l'email que tu envoies....
A la limite, il faudrait déjà tester la requête DIRECTEMENT dans ta bdd ( via phpmyadmin par exemple ) pour être sûr qu'elle fonctionne et te retourne bien ce que tu attends...
Ou est passé le try/catch pourtant bien utile pour détecter les éventuelles erreurs PDO ?
Ensuite, quand tu dis que ça ne retourne rien... c'est à dire ?
Tu as une page blanche ou un des deux echo s'affiche ?
<?php //démarrage SESSION session_start(); //affichage des erreurs PHP error_reporting(E_ALL); ini_set('display_errors', TRUE); ini_set('display_startup_errors', TRUE); // Include pour la connexion à la bdd require_once 'config.php'; //récupération PROPRE des variables AVANT de les utiliser $email = !empty($_SESSION['email']) ? $_SESSION['email'] : NULL; //préparation de la requête et des variables $sql = "SELECT * FROM neuw WHERE email=?"; $datas = [$email]; //exécution de la requête try{ $stmt = $pdo->prepare(); $stmt->execute($datas); $user = $stmt->fetch(); }catch(Exception $e){ // en cas d'erreur : echo " Erreur ! ".$e->getMessage(); echo " Les datas : " ; print_r($datas); } if (!empty($user)) { echo "email existe"; } else { echo "email n'existe pas"; }
Si ce code ne t'affiche rien... c'est que dans ta bdd tu n'as pas de ligne correspondant à l'email que tu envoies....
A la limite, il faudrait déjà tester la requête DIRECTEMENT dans ta bdd ( via phpmyadmin par exemple ) pour être sûr qu'elle fonctionne et te retourne bien ce que tu attends...
merci jordane pour le rappel des erreurs de pdo
et surtout pour l aide
en fait cela ne me retourne que le premier echo de ma table de connexion
mais aucun des deux autres echo
ma base de donnée fonctionne bien lorsque je fais ce code
avec le code que tu m as fais j ai une erreur
Notice: Undefined variable: pdo in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 22
Fatal error: Uncaught Error: Call to a member function prepare() on null in /storage/ssd4/760/16000760/public_html/nosignal/user.php:22 Stack trace: #0 {main} thrown in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 22
et surtout pour l aide
en fait cela ne me retourne que le premier echo de ma table de connexion
mais aucun des deux autres echo
echo "email existe"; echo "email n'existe pas";
ma base de donnée fonctionne bien lorsque je fais ce code
<?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=id60_phil;charset=utf8', 'id_ari', 'Ssa+'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } $res = $bdd->query('select count(*) as nb from neuw'); $data = $res->fetch(); $nb = $data['nb']; ?> <strong>le nombre d inscrit est de </strong><?php echo $nb; ?><br /><br /> <?php // Si tout va bien, on peut continuer // On récupère tout le contenu $reponse = $bdd->query('SELECT *FROM neuw'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <strong></strong><?php echo $donnees['email']; ?> <br /> <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?>
avec le code que tu m as fais j ai une erreur
Notice: Undefined variable: pdo in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 22
Fatal error: Uncaught Error: Call to a member function prepare() on null in /storage/ssd4/760/16000760/public_html/nosignal/user.php:22 Stack trace: #0 {main} thrown in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 22
jordane j ai beau comparer les lignes mais franchement c est le brouillard
avec cette ligne
$res = $bdd->query('select count(*) as nb from neuw');
avec cette ligne
try{
Donc non c'était bien la 22 dans le code que je t'ai donné...
En gros la ligne de code qui fait le prépare de la Requête.
Dans le code qui fonctionne tu utilises $bdd
Dans le code que je t'ai fourni en inspirant de celui que tu nous avais montré tu as mis $pdo
Donc si tu fais la modification pour utiliser la bonne variable ça devrait mieux fonctionner.
En gros la ligne de code qui fait le prépare de la Requête.
Dans le code qui fonctionne tu utilises $bdd
Dans le code que je t'ai fourni en inspirant de celui que tu nous avais montré tu as mis $pdo
Donc si tu fais la modification pour utiliser la bonne variable ça devrait mieux fonctionner.
ben dis donc
c était vraiment mais vraiment bien cache ,
car j ai pourtant cherche
merci pour la correction mais
de nouveau une erreur
Warning: PDO::prepare() expects at least 1 parameter, 0 given in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 22
Fatal error: Uncaught Error: Call to a member function execute() on boolean in /storage/ssd4/760/16000760/public_html/nosignal/user.php:23 Stack trace: #0 {main} thrown in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 23
c était vraiment mais vraiment bien cache ,
car j ai pourtant cherche
merci pour la correction mais
de nouveau une erreur
Warning: PDO::prepare() expects at least 1 parameter, 0 given in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 22
Fatal error: Uncaught Error: Call to a member function execute() on boolean in /storage/ssd4/760/16000760/public_html/nosignal/user.php:23 Stack trace: #0 {main} thrown in /storage/ssd4/760/16000760/public_html/nosignal/user.php on line 23
bonjour jordane
ah cela va mieux quand on a dormi
voici donc la bonne ligne
et voici donc le résultat
email n'existe pas
donc cela semble bon
ah cela va mieux quand on a dormi
voici donc la bonne ligne
$stmt = $pdo->prepare($sql);
et voici donc le résultat
email n'existe pas
donc cela semble bon