Problémes de sessions

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problémes de sessions

par nono92 » 23 déc. 2005, 12:08

ok merci
@+
NoNo

par Cyrano » 23 déc. 2005, 01:16

Le session_start() doit se trouver avant tout envoi de la moindre information vers le navigateur : en clair, ton code doit impérativement commencer par:
<?php
session_start();
//.... suite du code
Pas de html avant ça, même pas un espace.

par nono92 » 23 déc. 2005, 00:01

je ne comprend pas desolé
mais mon code n'est pas comme sa dans le fichier c'est dans une page html
Et je ne comprends pas ce que je dois corrigé
@+
NoNo

par jeff » 22 déc. 2005, 23:49

salut
tu doit avoir une sortie (html ou autre) a la ligne 5 de de veriflogin

par Truc » 22 déc. 2005, 23:48

Salut, réponse dans la FAQ

elle est là pour ça :wink:

Problémes de sessions

par nono92 » 22 déc. 2005, 23:32

Bonjour,
J'essaye de faire un espace membre pour un site, mais a la connexion il me donne tjrs cette erreur :
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/free.fr/9/6/pcflash/mpi/espcli/verifLogin.php:5) in /var/www/free.fr/9/6/pcflash/mpi/espcli/verifLogin.php on line 133

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/9/6/pcflash/mpi/espcli/verifLogin.php:5) in /var/www/free.fr/9/6/pcflash/mpi/espcli/verifLogin.php on line 133

Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/9/6/pcflash/mpi/espcli/verifLogin.php:5) in /var/www/free.fr/9/6/pcflash/mpi/espcli/verifLogin.php on line 135
Mon code est :
<?php
// on teste si le visiteur a soumis le formulaire de connexion
if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['password']) && !empty($_POST['password']))) {

       v pas donner les infosde connexion non plus ^^
        
        // on teste si une entrée de la base contient ce couple login / pass
        $sql = 'SELECT count(*) FROM utilisateurs WHERE login="'.addslashes($_POST['login']).'" AND password="'.addslashes($_POST['password']).'"';
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
        $data = mysql_fetch_array($req);
        
        mysql_free_result($req);
        mysql_close();
        
        // si on obtient une réponse, alors l'utilisateur est un membre
        if ($data[0] == 1) {
            session_start();
            $_SESSION['login'] = $_POST['login'];
            header('Location: membre.php');
            exit();
        }
        // si on ne trouve aucune réponse, le visiteru s'est trompé soit dans son login, soit dans son mot de passe
        elseif ($data[0] == 0) {
            $erreur = 'Compte non reconnu.';
        }
        // sinon, alors la, il y a un gros problème :)
        else {
            $erreur = 'Probème dans la base de données : plusieurs membres ont les mêmes identifiants de connexion.';
        }
    }
    else {
        $erreur = 'Au moins un des champs est vide.';
    }
?>
Merci de votre aide
NoNo