LES SESSIONS / POST
- Accueil
- Forum
- Programmation
- JavaScript
- LES SESSIONS / POST
kinginventeur Le 13 septembre 2016 à 23:14 (Édité le 25 janvier 2019 à 17:52)
Alors voila j'ai un soucis ... J'aimerai pouvoir afficher une alerte dés que $_SESSION['ok'] = true
Cela fonctionne sans aucun soucis ... Mais lorsque je met dans mon code <script> comme ceci :
<script>
if(<?php echo $_SESSION['ok']; ?> == true){
swal('TITRE', 'MESSAGE', 'success');
<?php $_SESSION['ok'] = false; ?>
}
</script>
Et bien ... Le java script fais d’abord le calcul de php et ensuite du script ... Du coup ma session est directement false et ne passe pas dans la condition :(
Comment faire pour que d’abord ma condition dis : OK c'est true
Et ensuite , je met SESSION['ok'] en false ?
Merci de vos réponses 😀
TheOldNoob Le 13 septembre 2016 à 23:47 (Édité le 1 janvier 1970 à 01:00)
Tu n'a pas besoin de javascrip pour faire une alerte.
<?php $showMessage = false; // de base ton message sera caché
if(!empty($_SESSION['ok']) { // Si ta session est "ok"
$showMessage = true; // alors on passe la variable showMessage a true
}
if($showMessage){?> // si showMessage est true, alors on affiche le message si dessous
<div> MESSAGE D'ALERTE SUPER SYMPAS</div>
<?php }?>
TheOldNoob Le 14 septembre 2016 à 00:04 (Édité le 1 janvier 1970 à 01:00)
A condition que ta variable $_SESSION soit bien sur ok.
Après, je sais pas a quoi correspond ta variable "ok" donc ça je te laisse voir comment tu gère ça.
Peut-être qu'avec plus de code que ton script et plus d'explication sur la fonction que tu cherche a faire j'y verais plus claire
kinginventeur Le 14 septembre 2016 à 00:06 (Édité le 14 septembre 2016 à 00:06)
Alors voila j'ai un soucis ... J'aimerai pouvoir afficher une alerte dés que $_SESSION['ok'] = true
Cela fonctionne sans aucun soucis ... Mais lorsque je met dans mon code <script> comme ceci :
Et bien ... Le java script fais d’abord le calcul de php et ensuite du<script> if(<?php echo $_SESSION['ok']; ?> == true){ swal('TITRE', 'MESSAGE', 'success'); <?php $_SESSION['ok'] = false; ?> } </script>
script ... Du coup ma session est directement false et ne passe pas dans
la condition :(
Comment faire pour que d’abord ma condition dis : OK c'est true
Et ensuite , je met SESSION['ok'] en false ?
TheOldNoob Le 14 septembre 2016 à 00:36 (Édité le 15 septembre 2016 à 09:44)
Tu utilise du CSS, ça te permet de faire le design que tu veux.
Presque tout se fait en php, et l'affichage se fait en html/css
Comme dans le code que je t'es mis plus haut.
kinginventeur Le 14 septembre 2016 à 00:45 (Édité le 1 janvier 1970 à 01:00)
<script>
if(<?php echo $_SESSION['ok']; ?> == true){ // On vérifie que ok = true donc si c'est true on rentre , si c'est false on rentre pas
swal('TITRE', 'MESSAGE', 'success'); // On met l'alerte de sweetalert , on met un titre , le text et le type ( donc success ) pour mettre la fleche verte
<?php $_SESSION['ok'] = false; ?> } // Une fois l'alerte afficher , on met ok en false , pour que l'alerte ne s'affiche plus une fois la page actualiser.
</script> // On fini le script
Voila ^^
kinginventeur Le 14 septembre 2016 à 00:57 (Édité le 1 janvier 1970 à 01:00)
TheOldNoob Le 14 septembre 2016 à 01:03 (Édité le 15 septembre 2016 à 09:44)
<balise javascript>
SI (j'ouvre le php et que j'affiche le contenue de $_SESSION['ok'] je ferme le php mais je demande a ce que se soit egal a un booleen qui est du php mais qui se trouve hors des balises php {
affiche dans un message swal 'TITRE', 'MESSAGE', 'success' mais je sais pas trop a quoi correspond ses chaines de caractères);
j'ouvre le php et met une session['ok'] donc le contenue est toujours obscure je sais pas quoi a false puis je ferme le php
</fin balise javascript>
Voilà voilà.
Maintenant pour ton problème, si tu veux qu'une boite s'ouvre puis se faire et que l'utilisateur puisse lire le contenu, il faut aussi définir un interval de temps d'affichage?
TheOldNoob Le 14 septembre 2016 à 01:10 (Édité le 1 janvier 1970 à 01:00)
<style>
width: 80%;
position: absolute;
top: 30%;
left: 10%;
background: red;
color: #fff;
padding-top: 5%;
padding-bottom: 5%;
text-align: center;
border-radius: 15px;
font-size: 1rem;
</style>
<?php $showMessage = false; // de base ton message sera caché
if(!empty($_SESSION['ok']) { // Si ta session est "ok"
$showMessage = true; // alors on passe la variable showMessage a true}
header('Refresh: 10; url= adresse ou tu souhaite renvoyer ton utilisateur'); // ce qui nous permetra de redirigé sur ta page après 10s
if($showMessage){?> // si showMessage est true, alors on affiche le message si dessous
<div class="alert"> MESSAGE D'ALERTE SUPER SYMPAS</div>
<?php }?>
kinginventeur Le 14 septembre 2016 à 01:13 (Édité le 1 janvier 1970 à 01:00)
Je n'est qu'à l'include dans mon code et l'utiliser , un peux comme jquery...
echo $_SESSION['ok'] = j'affiche la valeur de OK et je regarde si elle est = a true
Maintenant pour swal , c'est une fonction justement de sweetalert. ( déjà faîtes ) et donc les '' , '' ,'' a l'intérieur avec ( TITRE , TEXT , SUCCESS ) sont string compris par sweetalert ( l'include )
Mais la seul erreur qu'il y a dans mon code c'est que le php est un code du serveur , donc le php est d'abord pris en compte par le site et ensuite le java script et c'est pour sa que ma boîte alerte ne s'affiche pas , si je retire :
<?php $_SESSION['ok'] = false; ?>
Elle s'affiche sans probléme mais elle ne s'arretera jamais , donc si j'actualise , elle va encore se montrer... Et ce n'est pas ce que je souhaite.
Je sais que je peux designer moi même une boîte de dialogue etc... Mais j'aimerai m'améliorer dans tout les domaines et trouver une solution pour comment mettre session en false une fois l'affichage de mon alerte effectuer ...
Je pourrai EFFECTIVEMENT choisir la faciliter :
<?php echo '<font color="green">'.$_SESSION['ok'].'</font>'; ?>
Ou faire tout simplement une alerte en java script ... Mais j'aimerai m'améliorer et apprendre a gerer les sessions PHP dans le java script et savoir si c'est possible ou non et pourquoi oui et pourquoi non.
Voila , jespere que tu as compris 😀 Merci beaucoup de tes réponses et du temps que tu consacres pour un débutant comme moi 😀
TheOldNoob Le 14 septembre 2016 à 01:30 (Édité le 15 septembre 2016 à 09:46)
Swal, je peu me trompé, je l'ai jamais utilisé, parce que concraitement, c'est assez naze et ça n'apporte rien. Je vois pas le rapport avec l'include qui permet d'inclure une partie de code, une page, une fonction... grace au php pas grace au javascript
La, peu importe que ça t'affiche un truc ou pas, si tu fait un ctrl+U tu aura forcement une erreur sur la session.
Désoler si je parait un peu rude, mais il est tad, j'ai mal a la tête et j'ai surtout peur que tu ai appris de mauvaise choses :(
kinginventeur Le 14 septembre 2016 à 01:46 (Édité le 1 janvier 1970 à 01:00)
Bon aller je vais faire une explication DIGNE de ce nom !
J'ai un probléme avec les script , lorsque je fais :
<script src="monscript"></script>
Cela ne fonctionne pas du tout j'ai dis " FUCK OFF " et j'ai fais la méthode du flémard ><?php require_once 'monscript.js'; ?>
Voila donc pour sweetalert j'ai fais : <link rel="stylesheet" type="text/css" href="../style/sweetalert.css"/>
<?php require_once 'SWEET.js' ?>
Voila 😀 Bon maintenant le " swal " c'est une method déjà faîtes dans le SCRIPT de sweetalert que j'ai include précédement dans mon code donc pour afficher une alerte je peux faire tout simplement :
swal('Mon TITRE');
ET VOILA mon alerte déjà désigner est afficher avec comme titre > Mon TITRE
Pour la $_SESSION['ok'] , c'est tout simplement pour un formulaire d'inscription , lorsque l'utilisateur c'est inscris , et que tout est correct je fais sa dans mon code >
$_SESSION['ok'] = true;
Et par la suite je le met dans mon code :
if(<?php echo $_SESSION['ok']; ?> == true){
swal('Compte crée !', 'Veuillez confirmez votre compte , si vous ne le confirmez pas vous ne pourrez pas vous connecter en jeu !', 'success');
}
Maintenant pourquoi ECHO ? WTF , tout simplement que en java script lorsque l'on fais if(<?php $_SESSION['ok']; ?> == true){
swal('Compte crée !', 'Veuillez confirmez votre compte , si vous ne le confirmez pas vous ne pourrez pas vous connecter en jeu !', 'success');
}
Et bien , ... Java script fais >if( == true){
swal('Compte crée !', 'Veuillez confirmez votre compte , si vous ne le confirmez pas vous ne pourrez pas vous connecter en jeu !', 'success');
}
Et c'est pas trop trop ce que je veux ahahahah 😋 du coup je met un ECHO pour mettre la valeur de ma $_SESSION['ok'] 😀
Et donc pourquoi alors mettre a la fin > :
<?php $_SESSION['ok'] = false; ?>
POURQUOI ! ( Cyprien dirai la même chose ) non ?
Tout simplement car je veux pas que lorsque l'utilisateur revien sur la page d'inscription qu'il vois que ce compte a été crée alors qu'il n'a rien fais LOL , sa serai bête ^^'
Du coup je veux que sa sois false comme sa il ne rentre pas dans cette condition :
if(<?php echo $_SESSION['ok']; ?> == true){ // TU PEUX PAS ENTRER !!! RENTRES PAS !!! AHAHAHHA
Voila 😀 Jespere avoir bien expliquer ^^ Et si tu es trop fatiguer va dormir mon ami 😀 Prend soin de toi et c'est gentil de vouloir m'aider ^^
TheOldNoob Le 14 septembre 2016 à 08:52 (Édité le 14 septembre 2016 à 09:00)
Tu a un soucis avec ton code, je t'explique là ou je vois des problèmes, et tu persite a dire que ton code est bon.
Pour info on lance un script javascript comme ça :
<script src="monscript.js" type="text/javascript"></script>
Tu mélange du php et du js et ton truc swalalert qui n'a aucune utilité.
Si tu veux faire une alert après qu'on formulaire soit bien rempli, on ne fait pas du tout comme ça.
Bref, donne moi tes sources dit moi ou tu a appris, parce que tout ce que tu mélange me pertubre fortement.
TheOldNoob Le 14 septembre 2016 à 13:56 (Édité le 1 janvier 1970 à 01:00)
<script>
if(<?php echo $_SESSION['ok']; ?> == true){
swal({ title: "Auto close alert!", text: "I will close in 2 seconds.", timer: 2000, showConfirmButton: false });
<?php $_SESSION['ok'] = false; ?> }
</script>
kinginventeur Le 14 septembre 2016 à 17:40 (Édité le 1 janvier 1970 à 01:00)
<script src="../js/sweetalert.min.js" type="text/javascript"></script>
<script>
if(<?php echo $_SESSION['ok']; ?> == true){
swal('Compte crée !', 'Veuillez confirmez votre compte , si vous ne le confirmez pas vous ne pourrez pas vous connecter en jeu !', 'success');
}
</script>
Sa fonctionne pas du tout ... Je suis obliger d'utiliser php pour inclure le JS , sinon il ne s'inclue pas dans mon code 😭 TheOldNoob Le 14 septembre 2016 à 17:51 (Édité le 1 janvier 1970 à 01:00)
Sinon tu a testé le code que je t'es mis juste au dessus?
kinginventeur Le 14 septembre 2016 à 18:04 (Édité le 1 janvier 1970 à 01:00)
<script>
if(<?php echo $_SESSION['ok']; ?> == true){
swal('Compte crée !', 'Veuillez confirmez votre compte , si vous ne le confirmez pas vous ne pourrez pas vous connecter en jeu !', 'success');
<?php $_SESSION['ok'] = false; ?>
}
</script>
Et avec ton code sa fonctionne aussi. Je comprend plus rien ... Du coup mon post sur le forum sert a rien O_O juste WTF enfete ...
Pourquoi hier sa fonctionner pas ? Hier il m'étais directement $_SESSION['ok'] en false et maintenant il ne le fais pas. Tu as une explication logique a sa ? O_O
Merci en tout cas de ton aide ^^'