PHP

Notification en cas de succès (après vérif)

Résolu

Bonjour,


C'est sûrement tout con pour certains d'entre vous mais j'ai du mal à avoir une notification "success" lors par exemple d'une inscription réussite (sans redirection faire une autre page).

Je suppose qu'il y a plusieurs possibilités de le faire, mais le peu que j'ai essayé ne fonctionne pas ...

J'ai suivi le tuto de création d'un site (jusqu'à la confirmation du mail), tout fonctionne nickel même les erreurs.


Merci d'avance

1517 vues
01 février 2020 à 15:31 (Édité)
Cette pub permet au site de vivre ...

9 commentaires

Merci @Clouder, j'ai appliqué cela et ça m'a l'air de bien fonctionner

@DavidRozen,


Voici ce que je fais moi :


<?php
  $_SESSION['flash']['warning'] = "Ton message";	
  header('Location: index.php'); // ici ta redirectionexit;
?>


J'utilise les variables $_SESSION que j’appelle flash et je choisis un type de message :


  • Success
  • Warning
  • Info
  • Error


Après sur les pages appelantes je mets ceci :

Je viens lire si j'ai quelque chose dans ma variable session flash et si oui je viens récupérer le type du message afin d'utiliser cette information pour en faire une classe css et j'affiche le message


<?php 
    if(isset($_SESSION['flash'])){ 
        foreach($_SESSION['flash'] as $type => $message): ?>
		<div id="alert" class="alert alert-<?= $type; ?> infoMessage"><a class="close">X</span></a>
			<?= $message; ?>
		</div>	
    
    <?php
	    endforeach;
	    unset($_SESSION['flash']);
	}
?> 

Je crois avoir à peu près réussi, pour l'inscription en tout cas :


Niveau html :


                 <?php if (isset($success_msg)){ ?>
                    <div class="alert alert-success">
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                    </button> 
                    <?=$success_msg ?>
                    </div>
                    <?php
                        }
                    ?>


Et niveau php, avant la redirection :


                    if(mail($mail_to,$sujet,$contenu,$header)){
                        $success_msg = "Un mail de confirmation vous a été envoyé";
                    }else{
                        $error = "Le mail n'est pas valide, veuillez le modifier";

Oui @Clouder, quand je me connecte, quand je m'inscrit et quand j'effectue un changement de mot de passe

Merci

Salut @DavidRozen,


Tu souhaites avoir une notification comme sur mon site ? (Exemple quand tu te connectes) Ou d'une autre façon ?

Merci bien,

Il a l'air pas mal mais mon soucis est au niveau du code PHP je pense ...

En gros je veux que si le mail a bien été envoyé, alors envoyé la notification.


Re:


OK c'est parfait 😉

Alors je suis juste administrateur de ce site hein j'ai fait aucune vidéo ahah 😅

Mais si tu parles d'un système de notification comme tu dit, je pense à ce script 😉 Il est très facile de l'intégrer à ton site, tu peux obtenir le lien d'intégration ici 😉

Si tu as un problème d'envoie de mail de confirmation, tu peux créer un autre topic afin de pas tout mélanger dans celui-ci 😉

Je viens de le faire, je n'ai pas encore tout vu mais je vais m'y pencher :).

J'utilise bootstrap donc autant utiliser le système d'alerte qu'ils ont déjà mis en place en côté CSS ^^

J'aurais aussi aimer savoir, même si c'est un peu hors topic, pour l'envoi du mail de confirmation en local (en utilisant XAMPP, avec PHP).


edit : je viens de jeter un œil sur tes 3 vidéos mais c'est pas vraiment ce que je cherche, moi c'est juste à l'inscription, connection ou une fois que le mdp a été changé que je veux une alert aler-success avec un message comme quoi cela a été effectué.


            if($valid){
                $mdp = crypt($mdp, '$6$rounds=5000$kvezbfuhnzedojxpodhcoie01928zbvodvboidbzalpaksqmi717723981uoihkhlkenvjkebcjzcjé$');
                $date_creation_compte = date('Y-m-d H:i:s');

            // bin2hex(random_bytes($length))
            $token = bin2hex(random_bytes(12));
            
                // On insert nos données dans la table utilisateur
                $DB->insert("INSERT INTO utilisateur (nom, prenom, mail, mdp, date_creation_compte, token) VALUES
                    (?, ?, ?, ?, ?, ?)",
                    array($nom, $prenom, $mail, $mdp, $date_creation_compte, $token));

                    $req = $DB->query("SELECT *
                      FROM utilisateur
                      WHERE mail = ?",
                      array($mail));

                    $req = $req->fetch();

                    $mail_to = $req['mail'];

                    //=====Création du header de l'e-mail.
                    $header = "From: no-reply <monmail@gmail.com>\n";
                    $header .= "MIME-version: 1.0\n";
                    $header .= "Content-type: text/html; charset=utf-8\n";
                    $header .= "Content-Transfer-ncoding: 8bit";
                    //======= 
                    $sujet = "confirmation de création de compte";

                    //=====Ajout du message au format HTML
                    $contenu = '<p>Bonjour ' . $req['nom'] . ',</p><br>
                    <p>Veuillez confirmer votre compte <a href="http://localhost/Fitconnectboostrap/conf.php?    id=' . $req['id'] . '&token=' . $token . '">Valider</a><p>';

                    mail($mail_to, $sujet, $contenu, $header);

                    $success = "Votre compte a bien été crée, veuillez checker vos emails pour confirmer celui-ci";
                    header('Location: inscription.php');
                    exit;


Je te met le code que j'ai, sachant que j'avais suivi ton tuto sur la création de site web.

Coté html j'ai mis juste (dans mon body)


                    <?php if (isset($success)){ ?>
                    <div class="alert alert-success" >
                    <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                    </button> 
                    <?=$success ?>
                    </div>
                    <?php
                        }
                    ?>


Hello @DavidRozen,


Afin de t'aider au mieux, nous aimerions connaître tes compétences sur les langages du web, peut-tu compléter cela rapidement ici ? 😉

Est-ce que tu as déjà vu cette vidéo sur 3 parties ? 🤔

Cette pub permet au site de vivre ...