Tom's Guide > Forum > Programmation > Soucis aec la création d'un session en PHP

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

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

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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?


Message édité par M@cduf le 20-12-2008 à 19:39:47
------------------------------ Besoin d'aide?
Je suis là!

 

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

session_start(); doit être placé en ligne 1, avant toute autre ligne de commande...

Répondre à just_ine

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.


Message édité par M@cduf le 20-12-2008 à 23:31:23
------------------------------ Besoin d'aide?
Je suis là!

 

Répondre à M@cduf

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.

Répondre à okinou

cela ne répond toujours pas à mon problème....................
Quelqu'un à une idée?

------------------------------ Besoin d'aide?
Je suis là!

 

Répondre à M@cduf

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

Répondre à okinou

Personne peut venir à mon aide?

------------------------------ Besoin d'aide?
Je suis là!

 

Répondre à M@cduf

Tom's Guide > Forum > Programmation > Soucis aec la création d'un session en PHP
Aller à :

Il y a 1587 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens