Se connecter / S'enregistrer
Votre question

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

Tags :
  • Creation
  • Programmation
Dernière réponse : dans Programmation
20 Décembre 2008 18:46:17

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

20 Décembre 2008 20:17:08

session_start(); doit être placé en ligne 1, avant toute autre ligne de commande...
20 Décembre 2008 23:25:37

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.
Contenus similaires
21 Décembre 2008 11:45:09

le session_start ou tout header doit etre placé avant TOUT code html, et non en premiere ligne, c'est différent, ici c'est bon.
21 Décembre 2008 18:23:46

cela ne répond toujours pas à mon problème....................
Quelqu'un à une idée?
21 Décembre 2008 21:22:11

au début de ta balise <?php tu n'a pas un espace après le dernier p?
ici > phpx
la ou jai marqué le x, si oui supprime le et reessai
24 Décembre 2008 13:19:10

Personne peut venir à mon aide?
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS