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

PHP & Base de données Discussion :

Session php fonctionne en local mais online [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Session php fonctionne en local mais online
    Bonjour,

    Je rencontre un problème avec les sessions de mon site.
    Quand je me log-in en local tout fonctionne parfaitement, mais une fois le site en ligne quand je valide les identifiant et mot de passe ça ne me renvoi qu'une simple page blanche.
    je ne sais plus ou chercher.

    login.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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
     
    <?php
    session_start();
    include('../config/config.php');
    include('../lib/app.lib.php');
     
     
     
    //$vue='login'; pas de vue, voir en bas de fichier
    $title = 'Se connecter';
     
    //Initialisation des erreurs à false
    $erreur = '';
     
    //Tableau correspondant aux valeurs à récupérer dans le formulaire.
    $values = [
        'email'=>'',
        'password'=>''
    ];
     
    $tab_erreur =
    [
        'email'=>'Email vide, merci de préciser votre email',
        'password'=>'Password vide, merci de préciser votre mot de passe'
    ];
     
    try
    {
     
        if(array_key_exists('email',$_POST))
        {
            foreach($values as $champ => $value)
            {
                if(isset($_POST[$champ]) && trim($_POST[$champ])!='')
                    $values[$champ] = $_POST[$champ];
                elseif(isset($tab_erreur[$champ]))   
                    $erreur.= '<br>'.$tab_erreur[$champ];
                else
                    $values[$champ] = '';
            }
     
            if(!filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
                $erreur.= '<br> Vous devez saisir un email valide !';
     
            if($erreur =='')
            {
                //Connexion
                $dbh = connexion();
     
                /**2 : Prépare ma requête SQL */
                $sth = $dbh->prepare('SELECT * FROM user WHERE email = :email');
     
                /** 3 : executer la requête - on utilise pas le tableau values car il contient email et password et pas que l'email */
                $sth->execute(array('email'=>$values['email']));
     
                $user = $sth->fetch(PDO::FETCH_ASSOC);
     
                /* Si l'utilisateur existe dans la base de données avec son email 
                et que le mot de passe match ! */
                if($user != false && password_verify($values['password'],$user['mdp']))
                {
                    //On peut connecter l'utilisateur et garder quelques info en session
                    $_SESSION['connect'] = true; 
                    $_SESSION['user'] = ['id'=>$user['id'],'name'=>$user['prenom'].' '.$user['nom'], 'role'=>'ROLE_ADMIN'];
                    header('Location:index.php'); //On redirige vers la page d'accueil de l'admin
     
     
                    exit();//exit after redirect !!
                }
                else
                {
                    $erreur.='<br>Connexion impossible. Vérifiez vos identifiants !';
                }
            }
     
        }
    }
    catch(PDOException $e)
    {
        $erreur.='<br>Une erreur de connexion a eu lieu :'.$e->getMessage();
    }
     
     
     
    /*Le layout du login est diférent du layout du reste de l'admin  */
    include('tpl/login.phtml');
    index.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
     
     
    <?php
    session_start();
     
    include('../config/config.php');
    include('../lib/app.lib.php');
     
    userIsConnected();
     
    $vue='home';
    $title = 'Bienvenue - ' . $_SESSION['user']['name'] ;
     
    include('tpl/layout.phtml');
    config.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    /** Connexion BDD */
    const DB_DSN    = 'mysql:host=mathekevxyflore.mysql.db;dbname=mathekevxyflore;charset=UTF8';
    const DB_USER   = '*********';
    const DB_PASS   = '*********';
    Voila, j'espère avoir été assez claire dans mon explication, et merci d'avances pour les explications ou pistes que vous pourrez me fournir.

    kevin

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Bonjour,
    Pourquoi penses-tu que c'est une erreur de session ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour,
    j'en ai déduit que ça venait de la parce que pour l'identification seul ces trois pages sont appelées. Tu penses que ça pourrait venir d'ailleurs?

  4. #4
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 164
    Points : 377
    Points
    377
    Par défaut
    Bonjour kevinewbie,

    La page blanche que tu vois après t'être identifié vient probablement du fait que ton environnement est en production et non en développement. C'est-à-dire que si une erreur intervient, ton serveur préfère ne rien afficher plutôt que de montrer l'erreur. Essaye l'instruction suivante en haut de tes scripts :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ini_set('display_errors',1);
    Ou essaie de voire dans la doc de ton hébérgeur.
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour Freudd,

    grâce a ton astuce j'ai fais ressortir une erreur:
    Fatal error: Call to undefined function password_verify() in /home/mathekevxy/admin/login.php on line 60
    Il me reste plus qu'a comprendre pourquoi cette fonction n'est pas prise en compte alors qu'elle fonctionne très bien en local.
    Merci beaucoup

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu as comparé les configurations de ton serveur local et du serveur déployé, notamment au niveau de la configuration des sessions ? un simple phpinfo suffira.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Sur la doc de PHP :
    password_verify

    (PHP 5 >= 5.5.0, PHP 7)

    password_verify — Vérifie qu'un mot de passe correspond à un hachage
    Je parie que tu es en PHP < à 5.5

    Comme le dit @celira un phpinfo() te diras quoi !

  8. #8
    Membre averti Avatar de Freudd
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2014
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2014
    Messages : 164
    Points : 377
    Points
    377
    Par défaut
    password_verify() ne fonctionne que sur les versions PHP 7+ :p
    ça ne serais pas ça par hasard ?

    Re: Me suis trompé effectivement en relisant la doc PHP c'est 5.5+
    Mon projet CMS https://soosyze.com/
    Son repo github https://github.com/soosyze/soosyze

    Open source tools and free yes, but with elegance .

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Bonjour Celira,
    Je vais essayé ça tout de suite, merci

  10. #10
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 9
    Points : 11
    Points
    11
    Par défaut
    Merci à tous, effectivement la version de ovh est: PHP Version 5.4.45.
    Savez vous si je peux mettre à jour ça ou si il faut que je modifie mon code sans "password_verify" ?

    re: Je ne comprend pas quand je vais sur mon espace ovh il me disent que ma version php générale est: 7.2
    Je suis un peu confu..

  11. #11
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    1 s'assurer de la version en local
    2 sur le manager de ovh tu peux choisir ta version PHP, ce qui me semble bizare , car OVH à bien communiqué sur ce fait de migration.

  12. #12
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2019
    Messages : 9
    Points : 11
    Points
    11
    Par défaut Problème résolu !!
    Bon alors, finalement j'ai modifié sur mon espace ovh la version de php de 7.2 à 7.0 et tout fonctionne normalement..
    encore merci à tous !!

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

Discussions similaires

  1. [MySQL] site avec session fonctionne en local mais pas en ligne
    Par rvm31 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/06/2019, 18h43
  2. Réponses: 0
    Dernier message: 11/01/2018, 15h39
  3. sessions fonctionnant en local mais pas sur un serveur
    Par lowvensky dans le forum Langage
    Réponses: 14
    Dernier message: 13/09/2013, 11h16
  4. Mail php qui fonctionne en local mais pas en distant
    Par Equinoxe5 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 14/10/2011, 17h07
  5. Réponses: 5
    Dernier message: 20/04/2010, 10h20

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