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

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    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
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

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

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

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    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 éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    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.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

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

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

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    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 éprouvé Avatar de Alex020181
    Homme Profil pro
    Prestataire informatique développeur d'application Excel, Access, VBA
    Inscrit en
    Juin 2012
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    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).
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Voici les écrans
    Nom : ecran formulaire connexion.png
Affichages : 542
Taille : 18,8 Ko

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

    Mais une question me perturbe; pourquoi cela fonctionne sous Wamp alors ?
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    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()
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  8. #8
    Membre averti
    Avatar de Sparky95
    Homme Profil pro
    Full Stack (web) developer
    Inscrit en
    Décembre 2016
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Belgique

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

    Informations forums :
    Inscription : Décembre 2016
    Messages : 379
    Points : 358
    Points
    358
    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

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Bonjour,

    Excuse moi Sparky95, je n'avais pas vu ta réponse.

    Je vais regarder ça. En attendant de comprendre pourquoi j'avais utiliser javascript qui fait le job mais j'aime bien comprendre.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  10. #10
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    L'autre fois aussi sur un hébergement "02couic" j'avais passé des heures et des heures avant d'enfin percuter et comprendre !

    La function de redirection "header(Location")" ne fonctionne pas chez eux !!!

    Obligé pour ça de passer en JS.

    Idem les sessions ne passent pas !!!

    Pas cher mais limité.

    DS7

  11. #11
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut Syndrome de la carpe ?
    Bonjour,

    Alors, les nouvelles ?

    Ai-je vu juste ?

    Le temps passant sans avoir de retour, je me dis "Encore un thread risquant de sortir en eau de boudin..."

    Sans parler de la politesse vis-à-vis des personnes ayant pris du temps pour tenter de t'aider.

    Et par répercussion, de celles qui à force de passer avec plaisir du temps à aider les autres ; quitteront petit à petit ce lieu d'échange des plus enrichissant et si cher à nos passions.

    Souvent je recherche ici des pistes d'idées et au fil des réponses très complètes dispensées avec tant de gentillesse aux demandeurs, et qu'ensuite ces derniers ne reviennent plus jamais, ne serait-ce que pour donner des nouvelles ; cela me donne envie de vomir...

    Ayant été ancien modo sur une autre section du forum DVP ; je me dis qu'avec le temps, rien ne s'arrange niveau politesse élémentaire.

    (Amicale salutation à Marc)

    DS7

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Bonjour

    Je suis actuellement sur mon PC perso et mon smartphone.
    Le site et Wamp sont sur le PC portable qui est reparti pour réparation en atelier.

    Je n'en ai pas fini avec ce fil. Même si j'ai fait différement je veux comprendre pourquoi. Quand mon écran aura été changé et mon portable renvoyé je pourrai continuer.

    Moi aussi j'aime bien avoir des retours des personnes que j'aide. Ne vous inquiétez pas je n'oublie pas ce fil.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Me revoilà.

    Bonne nouvelle. Mes header location sur mon formulaire de connexion fonctionnent maintenant sans utiliser JS en lieu et place.

    C'est encore un peu flou mais j'ai supprimé l'"index.htm" (qui contenait une balise title et donc de l'html envoyé avant le header) et renommé mon fichier contenant mon formulaire de connexion en "index.php".
    J'ai supprimé des sauts de lignes (j'ai tendance à insérer des sauts de lignes entre des blocs de code) dans mon fichier "index.php" (et aussi dans "connexion.php" puisque le formulaire fait appel à la connexion).

    Et ça marche.

    Bon maintenant je vais m'attaquer aux ancres. J'ai une page Web créée et des ancres récalcitrantes. Même symptômes alors je vais essayer d'appliquer cette même correction. Si besoin j'ouvrirai un autre fil mais pour l'heure je fais un grand OUF grâce à vous.

    Merci.

    PS; SPARKY je ne suis pas prêt de perdre tes 3 lignes de code magiques.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

  14. #14
    Membre chevronné
    Avatar de Droïde Système7
    Homme Profil pro
    Inscrit en
    Septembre 2003
    Messages
    2 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 2 262
    Points : 1 928
    Points
    1 928
    Par défaut
    Bonjour,

    Merci Alex de ce feedback.

    J'espère que tu bosses sous prod et non en mode émulé. Car d'un prestataire à l'autre ; ça change

    Pour les ancres récalcitrantes, je me souviens aussi d'un souci que j'avais seulement observé sous IE.

    DS7

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

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

    Informations forums :
    Inscription : Juin 2012
    Messages : 569
    Points : 1 006
    Points
    1 006
    Par défaut
    Hello

    Je ferme ce fil et vais m'attaquer aux ancres.

    @ plus.
    C'est toujours sympa de savoir si on vous a aidé ou non. Pensez-y

    N'hésitez pas à marquer le sujet comme résolu le cas échéant.

+ 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