Se connecter avec
S'enregistrer | Connectez-vous

Soucis aec la création d'un session en PHP

Dernière réponse : dans Programmation
Expert Programmation

Bonjour,

Le sujet à déjà étais souvent abordé.......
J'ai suivis ce tutoriel : clique ici
J'ai suivit à la lettre ce tuto, au début , pour me connecter sur mon site ça fonctionnais sans problème, et au bout d'une ou deux semaines un message d'erreur est apparu, quand je veux me connecter il me met:


Citation :
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/sites/dtc/dixkey.com/subdomains/maclem/html/index.php:1) in /var/www/sites/dtc/dixkey.com/subdomains/maclem/html/index.php on line 19

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/sites/dtc/dixkey.com/subdomains/maclem/html/index.php:1) in /var/www/sites/dtc/dixkey.com/subdomains/maclem/html/index.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /var/www/sites/dtc/dixkey.com/subdomains/maclem/html/index.php:1) in /var/www/sites/dtc/dixkey.com/subdomains/maclem/html/index.php on line 21


J'ai regarder à la ligne 19 sur le programme :

18. if ($data[0] == 1) {
19. session_start();
20. $_SESSION['login'] = $_POST['login'];
21. header('Location: membre.php');
22. exit();
23. }
....<head>..........</head>

le header renvoit à la page membre.php où est écrit au début:
<?php
session_start();
if (!isset($_SESSION['login'])) {
header ('Location: index.php');
exit();
}
?>
<head>..........</head>


Quelqu'un pourrais m'aider?

Autres pages sur : soucis aec creation session php

Lassé par la pub ? Créez un compte
Expert Programmation

Comment ça?
Car si je fais ce que tu me dit le programme aura aucun sens, donne moi l'exemple sur ce programme:
Citation :
# <?php
# // on teste si le visiteur a soumis le formulaire de connexion
# if (isset($_POST['connexion']) && $_POST['connexion'] == 'Connexion') {
# if ((isset($_POST['login']) && !empty($_POST['login'])) && (isset($_POST['pass']) && !empty($_POST['pass']))) {
#
# $base = mysql_connect ('serveur', 'login', 'password');
# mysql_select_db ('nom_base', $base);
#
# // on teste si une entrée de la base contient ce couple login / pass
# $sql = 'SELECT count(*) FROM membre WHERE login="'.mysql_escape_string($_POST['login']).'" AND pass_md5="'.md5(mysql_escape_string($_POST['pass'])).'"';
# $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 visiteur 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.';
# }
# }
# ?>


Je doit mettre session start (en rouge) en premier?!!!!!! ça aura aucun sens non, puisqu'il est inclus dans le if {}

ps: pour information quand je laisse un champ vide le programme fonctionne le message "Au moins un des champs est vide" s'affiche ainsi que celui-ci :"Compte non reconnu" quand je met un mauvais login, c'est quand je met le bon login qui me met ce message d'erreur.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde