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 :

Espace membres sécurisé [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut Espace membres sécurisé
    Bonjour a tous je rencontre quelque difficultés avec un espace membres sécurisé que je suis entrain de créer.

    Voici le retour de l'erreur en local sous wamp:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\news\connexion.php:2) in C:\wamp\www\news\connexion.php on line 22

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\news\connexion.php:2) in C:\wamp\www\news\connexion.php on line 22

    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\news\connexion.php:2) in C:\wamp\www\news\connexion.php on line 24

    Merci a ceux qui ce pencheront sur ce sujet.

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php include('includes/sql_connect.php');
     
    /*test si le formulaire de connexion a été corrrectement soumis par le visiteur*/
     
    if (isset($_POST["action"])&&($_POST["action"]=="verifier"))
    {
    	$_POST["pseudo"]=htmlentities(mysql_real_escape_string(trim($_POST["pseudo"])),ENT_QUOTES);
    	$_POST["motdepasse"]=htmlentities(mysql_real_escape_string(trim($_POST["motdepasse"])),ENT_QUOTES);
     
       if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['motdepasse']) && !empty($_POST['motdepasse'])))
       {
     
    	$requete_md="SELECT * FROM membres WHERE pseudo='$_POST[pseudo]'";
    	$envoi_md=mysql_query ($requete_md);
        $data_md=mysql_fetch_array($envoi_md);
    		$data_md["pseudo"]==$_POST["pseudo"]||$data_md["motdepasse"]==$_POST["motdepass"];
     
    	/* si on obtient une réponse alors l'utilisateur est un membre */
     
          if ($data_md[0] == 1) { 
             session_start(); 
             $_SESSION['pseudo'] = $_POST['pseudo']; 
             header('Location: admin/index.php'); 
             exit(); 
          } 
          /* si on ne trouve aucune réponse le visiteur s'est trompé soit dans son login soit dans son mot de passe */
     
          elseif ($data_md[0] == 0) { 
             $erreur = 'Compte non reconnu.';
    		 header('Location: index.php'); 
          } 
       }
    }
    ?>

  2. #2
    Membre Expert Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 895
    Par défaut
    il ne peut y avoir aucun affichage, aucun header(), aucun setcookie() avant un session_start()

    en fait, c'est très simple, les 2 premieres lignes du code doivent être :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <?php
    session_start();
     
    // apres je peux faire des includes et tout le reste dont j'ai envie
    // En réalité, on peut bien évidemment faire des include() avant, mais pas d'include qui produisent un affichage quelconque ou qui incluent un header()

  3. #3
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Et vérifie que ton includes/sql_connect.php ne contienne pas lui non plus un espace a la fin (d'ailleurs, je te conseille de ne PAS mettre la balise ?> a la fin de ce fichier. Elle n'est pas obligatoire, et évite les mauvaises surprises d'un espace que tu aurais insérer après).

    Onet

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Merci pour vos réponses je vous dit ce qu'il en est après modification .

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 142
    Par défaut
    Les header('location:.....') n'ont pas l'air de fonctionner correctement:

    Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\news\connexion.php:2) in C:\wamp\www\news\connexion.php on line 31

    J'ai modifié aussi sql_connect.php

    et toujours ce problème de sessions:

    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\news\connexion.php:2) in C:\wamp\www\news\connexion.php on line 22

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\news\connexion.php:2) in C:\wamp\www\news\connexion.php on line 22

    Je post les trois sources affin que sa soit plus clair.

    sql_connect.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    mysql_connect("localhost","root","") or die(mysql_error());
    mysql_select_db("module_news") or die(mysql_error());
    admin/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
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <?php session_start(); 
     
    if (!isset($_SESSION['login'])) { 
       echo "Bienvenue dans l espace d administration"; 
       exit();  
    }  
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<title>index.php</title>
    	</head>
    	<body>
    	<div align="center">
     
    	<a href="index.php">Gestion des news</a>||<a href="deconnexion.php">Déconnexion</a>
     
     
     
    	</div>
    	</body>
    	</html>
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    <?php include('includes/sql_connect.php');
     
    /*test si le formulaire de connexion a été corrrectement soumis par le visiteur*/
     
    if (isset($_POST["action"])&&($_POST["action"]=="verifier"))
    {
    	$_POST["pseudo"]=htmlentities(mysql_real_escape_string(trim($_POST["pseudo"])),ENT_QUOTES);
    	$_POST["motdepasse"]=htmlentities(mysql_real_escape_string(trim($_POST["motdepasse"])),ENT_QUOTES);
     
       if ((isset($_POST['pseudo']) && !empty($_POST['pseudo'])) && (isset($_POST['motdepasse']) && !empty($_POST['motdepasse'])))
       {
     
    	$requete_md="SELECT * FROM membres WHERE pseudo='$_POST[pseudo]'";
    	$envoi_md=mysql_query ($requete_md);
        $data_md=mysql_fetch_array($envoi_md);
    		$data_md["pseudo"]==$_POST["pseudo"]||$data_md["motdepasse"]==$_POST["motdepass"];
     
    	/* si on obtient une réponse alors l'utilisateur est un membre */
     
          if ($data_md[0] == 1) { 
    		 session_start();
             $_SESSION['pseudo'] = $_POST['pseudo']; 
             header('Location:admin/index.php'); 
             exit(); 
          } 
          /* si on ne trouve aucune réponse le visiteur s'est trompé soit dans son login soit dans son mot de passe */
     
          elseif ($data_md[0] == 0) { 
             $erreur = 'Compte non reconnu.';
    		 header('Location:index.php'); 
          } 
       }
    }
    ?>

  6. #6
    Membre éclairé
    Avatar de onet
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    365
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Suisse

    Informations forums :
    Inscription : Décembre 2002
    Messages : 365
    Par défaut
    Dans ton connexion.php, il me semble que tu as un retour à la ligne juste avant ton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php include('includes/sql_connect.php');
    Enlève le et réessaye.

    Onet

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

Discussions similaires

  1. Réponses: 197
    Dernier message: 27/04/2021, 00h11
  2. Espace membre
    Par Sub0 dans le forum Langage
    Réponses: 474
    Dernier message: 14/11/2014, 15h23
  3. [Solution]Espace membre sécurisé
    Par x-zolezzi dans le forum ASP.NET
    Réponses: 3
    Dernier message: 29/11/2010, 09h01
  4. [Sécurité] Espace membre et accès sécurisé
    Par pierrot10 dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2008, 15h29
  5. [Sécurité] Probleme d'espace membre
    Par warmup dans le forum Langage
    Réponses: 4
    Dernier message: 01/12/2005, 01h13

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