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 :

site avec session fonctionne en local mais pas en ligne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut site avec session fonctionne en local mais pas en ligne
    Bonjour

    J'ai développé quelques pages en local avec MAMP.
    tout fonctionne.
    Je transmets les pages sur les pages perso de free et j'ai des bugs visiblement liés au session.
    pour mon site une identification est nécessaire, et les variables en session ne passent pas.

    la page d'accueil
    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
     
     
     
     
    Veuillez vous identifier.
     
     
     
    Nom
     
     
    mot de passe
     
     
     
     
     
     
     
     
    proposition de migation de la base films sur Internet
    pour toutes remarques, suggestions, bug et autre contactez moi
    Hervé Marcé
    le code de verification
    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
     
    <?php 
     
    // Starting the session 
    session_start();
    include("base.php");
    $id= $_REQUEST[nom];
    $pass=$_REQUEST[passe];
    $_SESSION['typeadmin']='rien';
    $_SESSION['admin']='non';
    $sqlutil= "SELECT  * FROM  utilisateurs WHERE nom='$id'";  
    $resultat = mysql_query($sqlutil) or die(mysql_error());
    while ($user =mysql_fetch_array ($resultat)){
    	$nomuser=$user['nom'];
    	$pass2=$user['pass'];
    	$genre=$user['type'];
    	IF(($pass2==$pass)and ($nomuser==$id)){
    		$_SESSION['admin']='oui';
    		$_SESSION['typeadmin']=$genre;
     
    	 }
     
    }
    	 ?>
        <meta http-equiv='refresh' content='0; URL=recherche-master-global.php'>
     
    </body>
    </html>
    le code de la page suivante
    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
    <?php 
    // Starting the session 
     
    $_SESSION['oujeviens']='formulaire';
    $_SESSION['typerecherche']='global';
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>recherche d'un master</title>
    <link href="style.css" rel="stylesheet" type="text/css" />
    </head>
     
    <body>
    <!--en tête -->
    <div class="container">
    <form action="listingmaster.php" method="post">
     <div class="header"> 
     <!-- boutons de navigation-->
     <?php
     include("boutons-nav.php");
     ?>
        <!-- end .header --></div>
     
      <div class="content">
     
      <!--debut du contenu de la page -->
     
     
      <center>
      la recherche s'effectue dans toute la base.<br />
     
      <h1><input name="recherche" type="text" class="recherche" /></h1>
      <br />
     
      <br /><br /><br /><br /><br /><input type="submit" class="bouton" value="RECHERCHER" />
     
      </form>
      <br />Pour une recherche plus pr&eacutecise <a href="recherche-master.php">c'est ici.</a>
     
      <!-- end .content et début pied de page --></div>
    <div class="footer">
        <p> <center>proposition de migation de la base films sur Internet<br />
        pour toutes remarques, suggestions, bug et autre <a href="mailto:rvmarce@wanadoo.fr?subject=Base Master">contactez moi</a><br />
        Herv&eacute; Marc&eacute;
     
        <!-- end .footer --></div>
      <!-- end .container --></div>
    </body>
    </html>
    et les erreurs émises par le serveur free (copie d'écran)


    merci por votre aide

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762

  3. #3
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut
    merci Benjamin

    pour cette indication précieuse, mais j'ai encore un problème.
    si je comprend bien le serveur me dit que les variables ont déjà été envoyées.
    J'ai essayé de quitter le navigateur pour détruire les sessions mais j'ai toujours cette erreur.

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    RTFM: http://php.net/manual/en/function.header.php, http://www.php.net/manual/fr/function.session-start.php



    N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
    Pour utiliser des sessions basées sur les cookies, session_start() doit être appelée avant d'afficher quoi que ce soit dans le navigateur.

  5. #5
    Membre actif

    Homme Profil pro
    Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Inscrit en
    Juillet 2006
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster, Réalisateur Vidéo, Chef de projet Web documentaire
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2006
    Messages : 404
    Points : 241
    Points
    241
    Par défaut
    Merci Benjamin

    effectivement c'était l'include qui posait un problème puisqu'il s'affichait après d'autres données.
    dommage qu'en local avec Mamp cela ne soit pas pris en compte.

  6. #6
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    C'est parce que ta conf locale est permissive et c'est une très mauvaise chose. Essaie autant que faire se peut d'harmoniser l’environnement de DEV avec l'environnement de production.

  7. #7
    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 de session php
    Bonjour,
    Avant tout désolé de déterrer ce sujet mais je suis perdu.
    Je rencontre moi aussi 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.

    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
     
    <?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 : la vue login inclu tout le HTML !! */
    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
     
    <?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
     
    /** 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

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

Discussions similaires

  1. sessions fonctionnant en local mais pas sur un serveur
    Par lowvensky dans le forum Langage
    Réponses: 14
    Dernier message: 13/09/2013, 11h16
  2. Appplication fonctionne en local mais pas en ligne
    Par dreamover dans le forum Langage
    Réponses: 1
    Dernier message: 08/07/2009, 21h00
  3. [MySQL] requête fonctionne en local mais pas en ligne
    Par toams69 dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 10/02/2009, 13h22
  4. [RegEx] Regex fonctionnant en local mais pas en ligne
    Par MadSoldier dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2008, 17h04
  5. Réponses: 5
    Dernier message: 23/12/2006, 15h55

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