IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Variable session OK sous Wamp KO sous hébergeur o2switch


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut Variable session OK sous Wamp KO sous hébergeur o2switch
    Bonjour,

    J'ai créé un formulaire de connexion PHP sous Wamp et il fonctionne très bien (2 zones comme d'hab; Pseudo et mdp).
    Je saisi les infos et je passe sur la page 2.

    Je bascule le formulaire et la page 2 sur le site hébergé par o2switch et je boucle sur la page de connexion.

    J'ai modifié le code et ajouté un echo des 2 variables. Je ressaisi le login et le mdp puis je valide. Je retourne encore sur le formulaire d'identification avec cette fois
    pseudo =
    mdp =

    Mais elles n'ont pas de valeur.

    L'ID session lui est resté le même.

    Une idée ?
    Peut-être faut-il activer les enregistrements des variables de session chez eux ?

    Je mets en PJ un extrait du phpinfo que j'ai affiché à partir de o2switch.

    Je précise aussi que le code du formulaire et de la page 2 commencent par

    Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    session_start();

    Absolument rien au-dessus. Et ça marche sous Wamp.

    J'ai joins mes 2 fichiers.

    Merci
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 385
    Par défaut
    Bonjour,
    Essayes ceci
    Crée une page et glisses ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    session_start();
    $_SESSION['hello'] = "World";
    echo $_SESSION['hello'];
    ?>
    puis visite la. Vérifie que ton ai bien le message World sur la page
    ensuite commentes l'initialisation $_SESSION['hello'] = "World"; et relances ta page.
    Si tu as toujours bien World ce n'est pas un problème de session.
    N'hésites pas pour faire des debugs en tapant des echo "mon message" à différentes parties de ton code pour vérifier que l'execution passes bien par la.
    Tu peux également aller voir dans les logs les messages d'erreurs ce qui est plus pratique.

    Et pour finir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);
    Voici l'un des Graal du débug.

    Regardes déjà avec cela et sinon nous regarderons plus profondément ton code.
    Bonne soirée/journée

  3. #3
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Merci pour ce retour.

    L'erreur est dans mon code à priori.

    Si ça te dis de continuer à m'aider je veux bien.

  4. #4
    Membre expérimenté
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 385
    Par défaut
    Tu as regardé les logs comme je t'avais conseillé de le faire?
    Quels sont les messages d'erreurs?
    as tu rajouté les 3 lignes en début de fichier?
    N'as tu pas reçu de messages d'erreur?

    if(isset($_POST['connexion'])) { // si le bouton "Connexion" est appuyé
    Connexion != connexion


    mets un peu un echo "hello" après ton isset et vérifie que tu rentres dans ton if

    echo session_id();
    est-il dans connexion.php?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $req = $bdd->prepare('SELECT count(id_joueur) FROM joueurs WHERE pseudo_joueur=:pseudo AND mdp_joueur=:mdp;');
                $req->execute(array(
                  'pseudo' => $pseudo,
                  'mdp' => $mdp
                  ));
     
                  $tablo_verif_connexion_joueur = $req->fetchAll();
                $req->closeCursor();
     
                if( $tablo_verif_connexion_joueur[0]['count(id_joueur)']==1){
     
     
     
     
                  $req = $bdd->prepare('SELECT * FROM joueurs WHERE pseudo_joueur=:pseudo AND mdp_joueur=:mdp;');
                  $req->execute(array(
                    'pseudo' => $pseudo,
                    'mdp' => $mdp
                    ));
    Pourquoi exécuter 2 requêtes?

    tes 2 fichiers devraient être ré indentés ce serrait plus agréable à lire.
    ton fichier afficher_salle_d'attente je penses qu'il y a moyen que tu le condenses et sinon que le fragmentes se serra plus agréable et plus facile à lire/corriger

  5. #5
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Je ne suis pas toujours très dispo. Pour cela que je ne répond pas rapidement.

    Alors j'ai du nouveau. Voici le message d'erreur affiché après l'insertion de tes tests (et le world qui est bien là).
    World
    Warning: Cannot modify header information - headers already sent by (output started at /home/ywtu3868/public_html/formulaire_connexion.php:13) in /home/ywtu3868/public_html/formulaire_connexion.php on line 63

    et la ligne en question est
    header('Location: afficher_salle_attente.php');.

    Ce n'est pas de cette façon qu'on redirige sur une autre page ?

    Donc il fait bien tous mes tests. Il va bien dans mon si. Mais il interdit le changement de page si je comprends bien (je suis débutant et autodidacte).

  6. #6
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Voici les écrans
    Nom : ecran formulaire connexion.png
Affichages : 649
Taille : 18,8 Ko

    Nom : message erreur.png
Affichages : 630
Taille : 11,6 Ko

    Mais une question me perturbe; pourquoi cela fonctionne sous Wamp alors ?

  7. #7
    Membre expérimenté
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : Belgique

    Informations professionnelles :
    Activité : Full Stack (web) developer
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2016
    Messages : 385
    Par défaut
    Si je ne me trompes pas il ne peut y avoir qu'un header

    d'ailleurs si tu lis le message d'erreur tu fais un header à la ligne 13 du formulaire et en refais un à la ligne 63.

    Concernant Wamp ta config serveur est surement différente. La comme ça je ne sais pas te dire.

    Pour ton select je ferrais effectivement que le 2e select et de la tu sais faire un count directement depuis php ce qui pour moi est plus correcte

    vois ceci https://www.tutorialspoint.com/php/php_mysql_login.htm
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql ="SELECT id FROM admin WHERE username = '$myusername' and passcode = '$mypassword'";
          $result = mysqli_query($db,$sql);
          $row = mysqli_fetch_array($result,MYSQLI_ASSOC);
          $active = $row['active'];
          $count = mysqli_num_rows($result);
    
    Voila une version procédural à toi de rechercher en poo que je te recommandes bien sur

    Concernant les fichiers de logs tu ferrais bien de regarder directement la cela peut t'aider vraiment

  8. #8
    Membre émérite Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    601
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Prestataire informatique développeur d'application Excel, Access, VBA

    Informations forums :
    Inscription : Juin 2012
    Messages : 601
    Par défaut
    Citation Envoyé par Sparky95 Voir le message
    Pourquoi exécuter 2 requêtes?
    La première compte le nombre de correspondance puis, s'il y a une correspondance la seconde récupère les données.

    J'ai appris ensuite que j'aurai pu me contenter de la seconde et de vérifier le retour d'un résultat avec empty()

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Variable SESSION qui ne fonctionne pas sous IE et FF
    Par tardmonkey dans le forum Langage
    Réponses: 7
    Dernier message: 13/06/2013, 10h07
  2. [PHP 5.3] Variable de session indisponible sous SAFARI
    Par beegees dans le forum Langage
    Réponses: 41
    Dernier message: 15/11/2010, 06h36
  3. [MySQL] Problème avec variables de session PHP sous safari
    Par tomguiss dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 20/10/2010, 13h24
  4. Réponses: 3
    Dernier message: 14/05/2008, 18h31
  5. [Sécurité] SESSION et sous-domaine
    Par Kael dans le forum Langage
    Réponses: 11
    Dernier message: 13/02/2006, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo