Voici mon problème.
Je m'entraîne à créer un site de vente avec choix de produits dans un
catalogue, puis mémorisation dans un panier virtuel.
Jusque là tout va bien !
Ensuite depuis le panier l'internaute clique sur un bouton COMMANDER et
bascule sur un fichier commande.php qui teste dans un premier temps si
l'utilisateur est déjà identifié sur le site.
Si tel n'est pas le cas, le scipt commande.php fait ouvrir le script
login.php. Et je pense que c'est là que j'ai un problème.
Ce script est composé d'un formulaire avec un champ pour entrer son email
(login) et un champ pour le mot de passe.
Normalement une fois ces éléments entrés, soit l'utilisateur n'est pas
inscrit et s'enregistre via un formulaire d'inscription, soit le script
login.php retourne sur le script commande.php.
Mais lorsque je valide sous login.php après avoir entré l'email et le mot de
passe (ces deux éléments sont déjà intégrés dans une table spécifique de ma
base de données), sous EasyPHP il ne se passe rien ! Je reste sur le
formulaire de login.php
Lorsque j'envois sous Free, j'ai les 2 messages suivants :
-1-
"Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
A la ligne 28 j'ai : session_start();
-2-
Warning: Cannot modify header information - headers already sent by (output
started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 35
A la ligne 35 j'ai : header("Location:commande.php");
Voici le script total :
----------------------------------------------------------------------------
<?php
//initialisation des variables
if (!isset($HTTP_POST_VARS['valider'])) $HTTP_POST_VARS['valider']="";
if (!isset($HTTP_POST_VARS['pass'])) $HTTP_POST_VARS['pass']="";
if (!isset($HTTP_POST_VARS['email']))$HTTP_POST_VARS['email']="";
if (!isset($erreurlog)) $erreurlog=0;
?>
<?php require_once('../Connections/id.php'); ?> // paramètres de connexion à
la base
<?php
$colpass_rsLogin = "0";
if (isset($HTTP_POST_VARS['pass'])) {
$colpass_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['pass'] :
addslashes($HTTP_POST_VARS['pass']);
}
$colemail_rsLogin = "0";
if (isset($HTTP_POST_VARS['email'])) {
$colemail_rsLogin = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['email'] :
addslashes($HTTP_POST_VARS['email']);
}
mysql_select_db($database_id, $id);
$query_rsLogin = sprintf("SELECT clients.email, clients.pass,
clients.statut, clients.ID FROM clients WHERE email='%s' AND pass='%s'",
$colemail_rsLogin,$colpass_rsLogin);
$rsLogin = mysql_query($query_rsLogin, $id) or die(mysql_error());
$row_rsLogin = mysql_fetch_assoc($rsLogin);
$totalRows_rsLogin = mysql_num_rows($rsLogin);
?>
<?php
if ($HTTP_POST_VARS['valider']=="ok")
{
session_start(); // Ca c'est la ligne 35!
$statut=$row_rsLogin['statut'];
$clientID=$row_rsLogin['ID'];
if ($row_rsLogin['statut']=="client")
{
$HTTP_SESSION_VARS['statut']=$row_rsLogin['statut'];
$HTTP_SESSION_VARS['clientID']=$row_rsLogin['ID'];
header("Location:commande.php"); // Et ca la ligne 38
}
else
{
$erreurlog=1;
}
}
?>
----------------------------------------------------------------------------
Quelqu'un pourrait-il m'expliquer ce que signifie ces messages d'erreurs ?
Je n'y comprends plus rien !
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Daedalus
-1- "Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
Problème avec la session ligne 28 car un header à déjà été envoyer, et il te pointe la sortie en ligne 9. Voici ce qu'il y a en ligne 9: 7:?> 8: 9:<?php require_once('../Connections/id.php'); ?> // paramètres de connexion à la base
Tu as un line-feed en html entre ?> et <?. D'ailleurs je ne vois pas très bien pourquoi tu a fermé ton tag php pour l'ouvrir tout de suite après avec un simple line-feed entre les deux !?! Et ceci: "?> // paramètres de connexion"... tu ferme ton tag php avant ton commentaire ?
Enlève tout c'est tag (<? et ?>) qui sont completement inutile. Ouvre un tag php et ne le ferme que lorsque le php est finit. Ou alors (si vraiment tu tiens à tout ces tags inutiles) n'insère rien entre les tags de fermeture et d'ouverture si tu veux éviter d'envoyer un header involontairement.
-2- Warning: Cannot modify header information - headers already sent by (output
started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 35
A la ligne 35 j'ai : header("Location:commande.php");
Encore la même chose, il ne peut envoyer le header car il déjà été envoyer. Il te pointe encore la sortie en ligne 9
Dae
-1-
"Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
Problème avec la session ligne 28 car un header à déjà été envoyer, et il te
pointe la sortie en ligne 9. Voici ce qu'il y a en ligne 9:
7:?>
8:
9:<?php require_once('../Connections/id.php'); ?> // paramètres de connexion
à
la base
Tu as un line-feed en html entre ?> et <?. D'ailleurs je ne vois pas très
bien pourquoi tu a fermé ton tag php pour l'ouvrir tout de suite après avec
un simple line-feed entre les deux !?! Et ceci: "?> // paramètres de
connexion"... tu ferme ton tag php avant ton commentaire ?
Enlève tout c'est tag (<? et ?>) qui sont completement inutile. Ouvre un tag
php et ne le ferme que lorsque le php est finit. Ou alors (si vraiment tu
tiens à tout ces tags inutiles) n'insère rien entre les tags de fermeture et
d'ouverture si tu veux éviter d'envoyer un header involontairement.
-2-
Warning: Cannot modify header information - headers already sent by
(output
started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 35
A la ligne 35 j'ai : header("Location:commande.php");
Encore la même chose, il ne peut envoyer le header car il déjà été envoyer.
Il te pointe encore la sortie en ligne 9
-1- "Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
Problème avec la session ligne 28 car un header à déjà été envoyer, et il te pointe la sortie en ligne 9. Voici ce qu'il y a en ligne 9: 7:?> 8: 9:<?php require_once('../Connections/id.php'); ?> // paramètres de connexion à la base
Tu as un line-feed en html entre ?> et <?. D'ailleurs je ne vois pas très bien pourquoi tu a fermé ton tag php pour l'ouvrir tout de suite après avec un simple line-feed entre les deux !?! Et ceci: "?> // paramètres de connexion"... tu ferme ton tag php avant ton commentaire ?
Enlève tout c'est tag (<? et ?>) qui sont completement inutile. Ouvre un tag php et ne le ferme que lorsque le php est finit. Ou alors (si vraiment tu tiens à tout ces tags inutiles) n'insère rien entre les tags de fermeture et d'ouverture si tu veux éviter d'envoyer un header involontairement.
-2- Warning: Cannot modify header information - headers already sent by (output
started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 35
A la ligne 35 j'ai : header("Location:commande.php");
Encore la même chose, il ne peut envoyer le header car il déjà été envoyer. Il te pointe encore la sortie en ligne 9
Dae
Da Bourz
Cela dit que quelque chose a écrit vers le navigateur avant la ligne 35, et ce n'est pas possible de modifier les HEADERS lorsque l'on a commencer à les envoyer.
Il y a quoi dans ton include ? (le id.php) ?
Cela dit que quelque chose a écrit vers le navigateur avant la ligne
35, et ce n'est pas possible de modifier les HEADERS lorsque l'on a
commencer à les envoyer.
Cela dit que quelque chose a écrit vers le navigateur avant la ligne 35, et ce n'est pas possible de modifier les HEADERS lorsque l'on a commencer à les envoyer.
Il y a quoi dans ton include ? (le id.php) ?
laurent vilday
Pierre 29/12/2004 <41d25ee4$0$1321$
"Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at
Les entêtes (headers) on déjà (already) été envoyées (sent).
dans ton script on a plein de
<?php // code ?>
<?php //code ?>
Ca signifie que entre chaque ?> et <?php tu y places des sauts de lignes soit un espace HTML. Donc pour pouvoir écrire cet espace dans le corps de la réponse, il faut d'abord envoyer les entetes. Hors une fois les entetes envoyées, on ne peut plus y retoucher, donc pas de session_start() ni autre header();
?>
<?php
remplaces ca plutot par ?><?php ce qui en gros se remplace par du vide, bref ne passe pas d'un contexte à un autre quand ce n'est pas nécessaire (PHP -> HTML -> PHP).
<?php require_once('../Connections/id.php'); ?> // paramètres de connexion à la base
La c'est encore pire, tu écris carrément un commentaire PHP en dehors du contexte PHP (tu as fermé le ?>) donc tu écris en HTML le texte HTML "// paramètres de connexion à la base" en permanence.
-- laurent http://mokhet.com/
Pierre 29/12/2004 <41d25ee4$0$1321$8fcfb975@news.wanadoo.fr>
"Warning: session_start(): Cannot send session cache limiter -
headers already sent (output started at
Les entêtes (headers) on déjà (already) été envoyées (sent).
dans ton script on a plein de
<?php
// code
?>
<?php
//code
?>
Ca signifie que entre chaque ?> et <?php tu y places des sauts de
lignes soit un espace HTML. Donc pour pouvoir écrire cet espace dans
le corps de la réponse, il faut d'abord envoyer les entetes. Hors une
fois les entetes envoyées, on ne peut plus y retoucher, donc pas de
session_start() ni autre header();
?>
<?php
remplaces ca plutot par ?><?php
ce qui en gros se remplace par du vide, bref ne passe pas d'un
contexte à un autre quand ce n'est pas nécessaire
(PHP -> HTML -> PHP).
<?php require_once('../Connections/id.php'); ?> // paramètres de
connexion à la base
La c'est encore pire, tu écris carrément un commentaire PHP en dehors
du contexte PHP (tu as fermé le ?>) donc tu écris en HTML le texte
HTML "// paramètres de connexion à la base" en permanence.
"Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at
Les entêtes (headers) on déjà (already) été envoyées (sent).
dans ton script on a plein de
<?php // code ?>
<?php //code ?>
Ca signifie que entre chaque ?> et <?php tu y places des sauts de lignes soit un espace HTML. Donc pour pouvoir écrire cet espace dans le corps de la réponse, il faut d'abord envoyer les entetes. Hors une fois les entetes envoyées, on ne peut plus y retoucher, donc pas de session_start() ni autre header();
?>
<?php
remplaces ca plutot par ?><?php ce qui en gros se remplace par du vide, bref ne passe pas d'un contexte à un autre quand ce n'est pas nécessaire (PHP -> HTML -> PHP).
<?php require_once('../Connections/id.php'); ?> // paramètres de connexion à la base
La c'est encore pire, tu écris carrément un commentaire PHP en dehors du contexte PHP (tu as fermé le ?>) donc tu écris en HTML le texte HTML "// paramètres de connexion à la base" en permanence.
-- laurent http://mokhet.com/
Missions courtes
"Pierre" a écrit dans le message news: 41d25ee4$0$1321$
Bonjour,
Voici mon problème.
Lorsque j'envois sous Free, j'ai les 2 messages suivants :
-1- "Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
Bonjour, il faut que ton script *débute absolument* par : <?php session_start(); // Niveau de report d'erreur : error_reporting(0); // Désactiver le rapport d'erreurs // error_reporting(E_ALL); // Repporter toutes les erreurs PHP
*** Suite de ton code *** Cordialement. Michel Site : Missions-courtes
"Pierre" <p.lecciaNOSPAM@laposte.net> a écrit dans le message news:
41d25ee4$0$1321$8fcfb975@news.wanadoo.fr...
Bonjour,
Voici mon problème.
Lorsque j'envois sous Free, j'ai les 2 messages suivants :
-1-
"Warning: session_start(): Cannot send session cache limiter - headers
already sent (output started at
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in
/var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
Bonjour,
il faut que ton script *débute absolument* par :
<?php
session_start();
// Niveau de report d'erreur :
error_reporting(0); // Désactiver le rapport d'erreurs
// error_reporting(E_ALL); // Repporter toutes les erreurs PHP
*** Suite de ton code ***
Cordialement.
Michel
Site : Missions-courtes
"Pierre" a écrit dans le message news: 41d25ee4$0$1321$
Bonjour,
Voici mon problème.
Lorsque j'envois sous Free, j'ai les 2 messages suivants :
-1- "Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php:9) in /var/www/free.fr/0/4/bjorken/auger/bancoG_FR/login.php on line 28"
Bonjour, il faut que ton script *débute absolument* par : <?php session_start(); // Niveau de report d'erreur : error_reporting(0); // Désactiver le rapport d'erreurs // error_reporting(E_ALL); // Repporter toutes les erreurs PHP
*** Suite de ton code *** Cordialement. Michel Site : Missions-courtes
Da Bourz
Cela dit que quelque chose a écrit vers le navigateur avant la ligne 35, et ce n'est pas possible de modifier les HEADERS lorsque l'on a commencer à les envoyer.
Il y a quoi dans ton include ? (le id.php) ?
Cela dit que quelque chose a écrit vers le navigateur avant la ligne
35, et ce n'est pas possible de modifier les HEADERS lorsque l'on a
commencer à les envoyer.
Cela dit que quelque chose a écrit vers le navigateur avant la ligne 35, et ce n'est pas possible de modifier les HEADERS lorsque l'on a commencer à les envoyer.
Il y a quoi dans ton include ? (le id.php) ?
Pierre
Merci pour ces réponses ! J'ai dégagé toutes les lignes vides et le problème a disparu ! Idem dans le id.php
Cecit dit, un problème s'en va ! Un autre arrive ! Bou !! C'est l'objet d'un autre post !
Encore merci ! Pierre
Merci pour ces réponses !
J'ai dégagé toutes les lignes vides et le problème a disparu !
Idem dans le id.php
Cecit dit, un problème s'en va ! Un autre arrive ! Bou !!
C'est l'objet d'un autre post !