LES SESSIONS / POST

Ce topic a été résolu
kinginventeur

kinginventeur Le 13 septembre 2016 à 23:14 (Édité le 25 janvier 2019 à 17:52)

Bonjour/Bonsoir à tous,

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

TheOldNoob Le 13 septembre 2016 à 23:47

Salut l'ami,
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 }?>
kinginventeur

kinginventeur Le 14 septembre 2016 à 00:00

J'ai pas compris ^^'
TheOldNoob

TheOldNoob Le 14 septembre 2016 à 00:04

En fait, ça va juste permettre de faire apparaitre le message qui est dans la div.
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

kinginventeur Le 14 septembre 2016 à 00:06 (Édité le 14 septembre 2016 à 00:06)

Enfete j'ai telecharger , sweetalert qui permet d'afficher des alertes beaucoup plus belle ( java script ) mais j'aimerai pouvoir changer ma SESSION en false aprés l'affichage de cette alerte mais je n'y arrive pas car il prend en compte directement le php et non le script comme expliquer plus haut :
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 ?
TheOldNoob

TheOldNoob Le 14 septembre 2016 à 00:36 (Édité le 15 septembre 2016 à 09:44)

ok, donc si tu veux une belle alerte, tu n'utilise pas du javascript, et surment pas swal, parce que c'est quand même très moche ^^
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

kinginventeur Le 14 septembre 2016 à 00:45

Je sais exactement ce que mon code veux dire , je vais le déchifrer pour toi 😀
      <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

kinginventeur Le 14 septembre 2016 à 00:57

Sinon , comment faire pour désigner moi même une alerte ? Comment faire en css pour afficher une alerte désigner par nous même ?
TheOldNoob

TheOldNoob Le 14 septembre 2016 à 01:03 (Édité le 15 septembre 2016 à 09:44)

ok, donc je vais te lire ton code comme moi je le lit:

<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

TheOldNoob Le 14 septembre 2016 à 01:10

Tiens, je te met un code qui devrais
<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

kinginventeur Le 14 septembre 2016 à 01:13

Alors je suis d'accord avec toi mais mon code est correct et ne comporte aucun erreur , le code que je tes mis est un code déjà fais.
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

TheOldNoob Le 14 septembre 2016 à 01:30 (Édité le 15 septembre 2016 à 09:46)

Les includes, me semble que c'est du php, alors que jQuery c'est bibliothèque JavaScript libre et multi-plateforme créée pour faciliter l'écriture de scripts. Cela dit, tu peu inclure du js ou du jquery via le php, mais ça n'a pas d'interet puisque tu peu le faire en html aussi via les balise <script>

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

kinginventeur Le 14 septembre 2016 à 01:46

Tu es gentil 😋

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

TheOldNoob Le 14 septembre 2016 à 08:52 (Édité le 14 septembre 2016 à 09:00)

ok donc reprennons,

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

TheOldNoob Le 14 septembre 2016 à 13:56

Sinon, pour resté en js, je pense que ça devrais te rapproché de ce que tu souhaite faire :

<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

kinginventeur Le 14 septembre 2016 à 17:40

Oui mais quand je fais comme toi :
<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

TheOldNoob Le 14 septembre 2016 à 17:51

ok, bon c'est qu'il y a un problème avec la redirection vers ton fichier, parce que normalement ça fonctionne.
Sinon tu a testé le code que je t'es mis juste au dessus?
kinginventeur

kinginventeur Le 14 septembre 2016 à 18:04

Alors , désoler mais je comprend vraiment plus rien ^^' Ton code fonctionne parfaitement , comme mon code fonctionne PARFAITEMENT . Je n'y comprend absolument rien car hier sa fonctionner pas du tout mais vraiment pas du tout voici le même code que hier :
<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 ^^'
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte