Tout d'abord désolé de poster ici, mais j'ai envoyé un message dans le forum
fr.comp.lang.php, mais aucun message ne s'affiche depuis hier.
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 !