Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/06/2007, 11h16   #1
Membre régulier
 
Avatar de Jiraiya42
 
Inscription : mai 2005
Messages : 656
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2005
Messages : 656
Points : 76
Points : 76
Par défaut Problème header et session_start()

Salut !

J'ai un soucis avec mon code:

Code :
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
<?php
//=============================================================================================================
//
//  FONCTION CONNEXION - Manageuros - 29/03/07
//
//============================================================================================================= 
 
// Utilisation des paramètres de connexion
require ("connect.php");
 
require ("message.php");
 
// Appel de la fonction 
Connexion($_POST['pseudo'], $_POST['mdp']);
 
 
//============================================================================================================= 
//  DEBUT FONCTION POUR LA CONNEXION
//=============================================================================================================
 
function Connexion($pseudo, $mdp)
  {	
	mysql_connect (SERVEUR, NOM, PASSE) or die(mysql_error);
	mysql_select_db (BASE) or die(mysql_error);	
 
	// On vérifie que les champs ont bien été remplient
	if ($pseudo == "")
	 {
	  $mess = '<br /><img src="./images/erreur.PNG"><br /><br />Vous n\'avez pas saisi votre pseudo<br /><br />'
	           . '<a href="javascript:history.back(-1)">Retour</a>';
	  AffMess ($mess);
	 }
	else
	 {
	  if ($mdp == "")
	   { 
	    $mess = '<br /><img src="./images/erreur.PNG"><br /><br />Vous n\'avez pas saisi votre mot de passe<br /><br />'
	           . '<a href="javascript:history.back(-1)">Retour</a>';
	    AffMess ($mess);
	   }
	  else
	   { 
	    // On va chercher les infos du membre
	    $verif_pseudo= mysql_query("SELECT * FROM adherent WHERE PSE_ADH='$pseudo';");
	    $membre = mysql_fetch_object($verif_pseudo);
	    $num=$membre->num_adh;
	    $pseudo=$membre->pse_adh;
	    $pass=$membre->mdp_adh;
 
	    // Si le retour est vide, le pseudo n'existe pas
	    if($pseudo=="")
	     {
	      $mess = '<br /><img src="./images/erreur.PNG"><br /><br />Désolé, mais le nom saisie n\'existe pas, veuillez vérifier l\'orthographe...<br /><br />'
	            . '<a href="javascript:history.back(-1)">Retour</a>';
	      AffMess ($mess);
	     }
	    else
	     {
	      // On teste si les mots de passe correspondent
	      if($mdp<>$pass)
	       {
		    $mess = '<br /><img src="./images/erreur.PNG"><br /><br />Désolé, mais le mot de passe ne correspond pas au nom, veuillez réessayer...<br /><br />'	
		          . '<a href="javascript:history.back(-1)">Retour</a>'; 
		    AffMess ($mess);
	       }
	      else
	       {
	        session_start (); 
		    $registered="ok";
		    $_SESSION["numero"] = $num;
		    $_SESSION["registered"]= $registered;
		    $_SESSION["login"] = $pseudo;
		    $_SESSION["pwd"] = $pass;
			header("Location: accueil.php"); 
	       }
        }
	   }
	 } 	 
  }	
?>
Il marche nikel en local mais sur le serveur ça me met ça:

Citation:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/157/sda/0/0/manageuros/header.php:10) in /mnt/157/sda/0/0/manageuros/func_connexion.php on line 68

Warning: Cannot modify header information - headers already sent by (output started at /mnt/157/sda/0/0/manageuros/header.php:10) in /mnt/157/sda/0/0/manageuros/func_connexion.php on line 74
La ligne 68 c'est celle où il y a le session_start et la 74 là où il y a le header. J'ai fait des recherches sur le net et apparemment avant un header et un session_start() il ne faut pas qu'il y ait de sortie HTML mais dans mon cas, étant donné qu'ils sont soumis à condition, je ne vois pas quel pourrait etre le retour généré...

Quelqu'un pourrait m'aider svp ?

Merci d'avance...
__________________
"Vous qui entrez ici, abandonnez toute espérance." Dante
Jiraiya42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2007, 11h46   #2
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
Salut,

Tu n'as pas un epace ou un saut de ligne qui traine avant ou après l'ouverture de ta balise php ?

Sinon tu peut mettre un test qui regarde si tes headers sont envoyer alors tu fais ta redirection en js sinon par les headers en php ?

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2007, 11h49   #3
Membre régulier
 
Avatar de Jiraiya42
 
Inscription : mai 2005
Messages : 656
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : mai 2005
Messages : 656
Points : 76
Points : 76
Citation:
Envoyé par mic79
Salut,

Tu n'as pas un epace ou un saut de ligne qui traine avant ou après l'ouverture de ta balise php ?

Sinon tu peut mettre un test qui regarde si tes headers sont envoyer alors tu fais ta redirection en js sinon par les headers en php ?

Mic
J'ai pas d'espace avant la balise php, et pour le test oui ça a l'air d'être une bonne idée mais comment faire pour vérifier que les headers sont envoyés stp ?
__________________
"Vous qui entrez ici, abandonnez toute espérance." Dante
Jiraiya42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2007, 11h58   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Citation:
Envoyé par Jiraiya42
pour le test oui ça a l'air d'être une bonne idée mais comment faire pour vérifier que les headers sont envoyés stp ?
Fonction headers_sent, mais quoi que ce soit, vous envoyez quelque chose au navigateur avant session_start et header (un BOM, un espace ou une sortie dans vos includes, ...). Vous ne pourrez pas remplacer session_start (le déplacer ?) et une redirection côté serveur est toujours préférable (à faire suivre de exit() pour ne pas continuer l'exécution du script) !
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2007, 11h59   #5
Membre éclairé
 
Homme Michael Chusseau
Coordinateur développement web
Inscription : août 2004
Messages : 475
Détails du profil
Informations personnelles :
Nom : Homme Michael Chusseau
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Coordinateur développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : août 2004
Messages : 475
Points : 392
Points : 392
via la fonction headers_sent

voici la doc :http://fr.php.net/manual/fr/function.headers-sent.php

Mic
mic79 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2007, 12h12   #6
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Citation:
Envoyé par mic79
Salut,

Tu n'as pas un epace ou un saut de ligne qui traine avant ou après l'ouverture de ta balise php ?

Sinon tu peut mettre un test qui regarde si tes headers sont envoyer alors tu fais ta redirection en js sinon par les headers en php ?

Mic
Si on regarde ton code sur le forum il y a bien un espace.
Regarde les fichier connect.php et message.php pour voir si tu n'a pas d'espace avant et apres les balise d'ouverture/fermeture de PHP.
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h44.


 
 
 
 
Partenaires

Hébergement Web