Php session_start erreur

Fermé
elaene - 17 févr. 2011 à 16:39
 elaene - 25 févr. 2011 à 14:33
Bonjour,
Je fais un site qui fonctionne des sessions pour enregistrer des paniers. Je suis en local avec xampp et notepad++.
Je passe les infos à rajouter au panier via un formulaire et ensuite je les récupère dans une page de traitement. J'ai le "session_start();" au tout début de ma page de traitement juste après le "<?php" sans même un espace entre eux. Il n'y a rien d'autre sur cette page avant cela.
La page m'affiche alors le code comme si c'était du texte à partir de la 10ème ligne où du code html se trouve.
Quand je met un espace ou un retour à la ligne entre le session_start et le <?php, j'ai la fameuse erreur "Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by" et "Cannot send session cache limiter - headers already sent" qui s'affichent.
Sinon même avec mes erreurs le traitement se fait et s'enregistre dans la variable de session puisque je l'affiche dans cette même page et que cela fonctionne. Quand ensuite je vais sur ma page panier pour voir le contenu du panier par contre, il n'y a plus rien dedans, donc voilà je peux vraiment rien faire.
Je n'y comprend rien et c'est la 1ere fois que j'ai affaire aux variables de session, j'ai cherché sur des forums mais rien n'a pu m'aider, alors si vous avez une solution n'hésitez pas!
De plus je fais ce site dans le cadre de mon boulot alors je peux pas me permettre de piétiner sur ça pendant des jours ^^

7 réponses

niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
17 févr. 2011 à 16:56
Salut, voilà un exemple d'utilisation des sessions en PHP:
<?php
session_start();
if(!empty($_SESSION['membre']))
{
  header('Location: index.php');
}

@+
0
Mes sessions ne marchent pas avec des personnes enregistrées via la base de données. Et comme je l'ai déjà mentionner, ce code ne fonctionne pas chez moi :(
0
tito23 Messages postés 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 4
17 févr. 2011 à 17:07
tu peux nous montrer ton code?
0
niconovice Messages postés 954 Date d'inscription lundi 10 novembre 2008 Statut Membre Dernière intervention 3 mars 2014 86
17 févr. 2011 à 17:17
poste ton url quand tu es sur ta page stp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Voici mon code sur ma page ajoutPanier.php;
<?php  
 session_start();  
 //header('Location:index.php');  

 $refOption = $_POST['refOption'];  
 $qte = $_POST['qte'];  
 $refProduit = $_POST['refProduit'];  
 $qteMin = $_POST['qteMin'];  
 $prix = $_POST['prix'];  
 $nom = $_POST['nom'];       
   
 /*** test champs vides ***/  
 if(empty($qte))  
 {echo '<script language="javascript" type="text/javascript">  
   <!--  
   alert("Veuillez donner une quantité à ce produit.");  
   history.back();  
   -->  
   </script>';  
 exit;}  
   
 $_SESSION['Panier'][] = array(  
 'refProduit' => $refProduit,  
 'nom' => $nom,  
 'prix' => $prix,  
 'refOption' => $refOption,  
 'qte' => $qte,  
 'qteMin' => $qteMin  
 );   
   
 echo var_dump($_SESSION);  
 echo '<br/><br/>';  
 echo var_dump($_SESSION['Panier']);  
?>



Biensûr si mon code est faux au niveau de l'ajout dans le panier c'est pas grave, je n'ai pas pu le tester et je ne m'y connais pas trop en session et c'est le session_start qui foire ...
Mon but est d'enregistrer des articles du site pour les envoyer par e-mail, et je rappelle que mes utilisateurs ne sont pas enregistrés dans ma base.
0
tito23 Messages postés 305 Date d'inscription mardi 10 août 2010 Statut Membre Dernière intervention 16 janvier 2013 4
24 févr. 2011 à 15:42
essais de mettre
<?php  session_start();
à la première ligne de ta page avant toutes balises html
0
Je l'ai déjà testé, j'ai même essayer sans espace entre <?php et le session_start.
voici mon message d'erreur :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\xampp\htdocs\monsite\menu.php:222) in C:\xampp\htdocs\monsite\produits\ajoutPanier.php on line 1

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\monsite\menu.php:222) in C:\xampp\htdocs\monsite\produits\ajoutPanier.php on line 1

array(1) { ["Panier"]=> array(1) { [0]=> array(6) { ["refProduit"]=> string(13) "101-DR.BFF525" ["nom"]=> string(28) "Bougeoir triple en fer forgé" ["prix"]=> string(5) "25.40" ["refOption"]=> string(1) "1" ["qte"]=> string(1) "1" ["qteMin"]=> string(1) "6" } } }

array(1) { [0]=> array(6) { ["refProduit"]=> string(13) "101-DR.BFF525" ["nom"]=> string(28) "Bougeoir triple en fer forgé" ["prix"]=> string(5) "25.40" ["refOption"]=> string(1) "1" ["qte"]=> string(1) "1" ["qteMin"]=> string(1) "6" } }

Et il semblerait que mon code fonctionne par la suite puisque je réussit à récupéré des valeurs, sauf qu'elles ne sont pas enregistré plus longtemps que ça, puisque le session_start foire..
0
C'est bon cela fonctionne, il suffisait de mettre le session_start au tout début de ma page index.php.... ^^'
0