Prtoblème de session cherchez l'erreur...

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 : Prtoblème de session cherchez l'erreur...

par akrogames » 23 juil. 2007, 17:21

Re coucou hywan merci de m'avoir aider c'est parfait tous marche correctement désormais.

par Hywan » 23 juil. 2007, 17:18

Tu aurais quelque chose du genre :
<?php

# début de ton application
ob_start();
ob_implicit_flush(false);

// ton programme ...

# fin de ton application
ob_end_flush();

?>
J'ai précisé application, et pas fichier.

par akrogames » 23 juil. 2007, 17:11

Ah bah tient Hywan ca va ?
oui je lis je lis, mais clairement qu'est ce que je dois faire ?

PS: non tu n'es pas méchant j'y est pas pensé c'est tous :D

par Hywan » 23 juil. 2007, 17:01

Tiens Akrogames, comme on se retrouve. Je suis si méchant que ça, que tu n'oses pas me demander par e-mail ... :cry:.
Je vais quand même t'aider ;-)

Ton problème, c'est que tu as des données qui sont envoyées avant que tu fasses session_start. Bien. Cela ne concerne pas que le fichier en cours d'exécution, mais également les fichiers parents (qui inclus le fichier courant donc).

Un problème simple pour ne plus se tracasser : la tamporisation de sortie. Lis le manuel, il te dira tout ce que tu dois savoir :)

par akrogames » 23 juil. 2007, 16:49

Disons qu'à la ligne 5 il y a <?php

Donc bon l'erreur de vient pas de là.

voiçi le code de index.php de la ligne 5 à 25

Code : Tout sélectionner

<?php $pseudo=$_SESSION['pseudo']; require 'config.inc.php'; $db = mysql_connect("$host","$log","$mdp"); mysql_select_db($bd,$db); $sql="SELECT * FROM forum"; $res=mysql_query($sql) or die(mysql_error()); echo "<font color=white>Vous êtes içi: <a href=\"index.php\">Forums</a></font><br><br>"; echo " <table width=\"700\"> <tr class=\"grisclair\"> <td width=\"450\">Forums</td> <td width=\"150\">Dernier message</td> <td width=\"50\">Sujets</td> <td width=\"50\">Messages</td> </tr> ";

par Genova » 23 juil. 2007, 16:45

Ton fichier index.php n'a que 3 lignes ? Car apparament l'erreur se situe à la ligne 5 de index.php.

Sinon il te reste la bonne vielle méthode du débugage : tu mets en commentaires des bouts de code en remontant pour trouver à quel niveau l'erreur apparaît.

par akrogames » 23 juil. 2007, 16:42

Voilà le fichier index.php

Code : Tout sélectionner

<?php require('haut.php'); ?>
le début de haut.php il est en haut.


Amicalement thibaud

PS: J'ai désactivé les register_global.

par Genova » 23 juil. 2007, 16:40

Aucun rapport avec register_global, dont je te déconseille l'activation (failles de sécurités ...).

Montre voir le contenu de index.php ?

par akrogames » 23 juil. 2007, 16:37

Je n'affiche pas de HTML avant :?
Le début du fichier c'est ceci:

Code : Tout sélectionner

<?php session_start(); ?> <?php include('config.inc.php'); $link=mysql_connect($host,$log,$mdp); mysql_select_db($bd,$link); $sql='SELECT * FROM statut_akro WHERE util_statut_akro=1'; // on envoie la requête $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); // on fait une boucle qui va faire un tour pour chaque enregistrement while($data = mysql_fetch_assoc($req)) { extract($data); if($id_statut_akro!='1') { header('Location: statut.php'); } } ?>
J'ai essayer de mettre les register_global à ON
Comment on redémarre PHP sur le serveur ?

Amicalement Ecarot thibaud

par Genova » 23 juil. 2007, 16:28

Bonjour,
regarde bien l'erreur :

Code : Tout sélectionner

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/akrogames/forum/index.php:5)
qui signifie que la fonction session_start() n'a pas plus marcher, car du contenu a déjà été envoyé au serveur avant l'appel de cette fonction.

En clair tu n'as pas le droit d'afficher du HTML avant la fonction session_start().

Apparament le HTML a été envoyé à la ligne 5 de ton fichier index.php (parfois il peut s'agir d'espaces qui traînent après les balises ?>)

Prtoblème de session cherchez l'erreur...

par akrogames » 23 juil. 2007, 16:20

Bonjour a tous,
je suis désespéré en voyant cette erreur que je n'arrive pas à résoudre alors je vous en fait part.
Vous êtes la dernière solution...

Alors j'ai programmé un forum est voiçi l'erreur:

Code : Tout sélectionner

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/akrogames/forum/index.php:5) in /var/www/akrogames/forum/haut.php on line 2
Alors sur d'autres serveur, tous marche parfaitement, et sur mon serveur perso cela marche pas.
Je suis PHP5, avec apache 2
Je pense que cela vient du fichier de configuration de PHP ou il y a un petit truc à changer mais je suis pas sûr et je ne sais pas ce qu'ils faut changer.

Amicalement Ecarot Thibaud

PS:
Pour ceux qui penserais que cela vient d'une erreur de syntaxce c'est impossible... vu que cette erreur est que sur mon serveur perso.
Et le session_start(); est enh début de page il n'y a pas de ligne vide au dessus.