Variables de Session en php : Erreurs

Fermé
megakev06 - Modifié par megakev06 le 17/03/2011 à 00:20
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 - 18 mars 2011 à 10:55
Bonjour,

voila je fais un site web pour un projet de licence pro.
J'ai une page qui me permet de valider le mot de passe et le login entrée dans une page de connexion.
J'utilise deux variables de session 'pass' et 'Login' transmis d'un formulaire.
Mais une fois ma page mis en ligne ce système de variables de sessions ne marche pas,
j'ai des erreurs qui s'affiche :


1) Warning: session_start() [function.session-start]: open(/mnt/154/sda/0/4/undying.priests/sessions/sess_385fa4762bfb6f7ed17e97b36d20b8de, O_RDWR) failed: No such file or directory (2) in /mnt/154/sda/0/4/undying.priests/valid_co.php on line 5

2) Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /mnt/154/sda/0/4/undying.priests/valid_co.php:3) in /mnt/154/sda/0/4/undying.priests/valid_co.php on line 5

3) Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /mnt/154/sda/0/4/undying.priests/valid_co.php:3) in /mnt/154/sda/0/4/undying.priests/valid_co.php on line 5

4) Warning: Cannot modify header information - headers already sent by (output started at /mnt/154/sda/0/4/undying.priests/valid_co.php:3) in /mnt/154/sda/0/4/undying.priests/valid_co.php on line 38

5) Warning: Unknown(): open(/mnt/154/sda/0/4/undying.priests/sessions/sess_385fa4762bfb6f7ed17e97b36d20b8de, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

6) Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/mnt/154/sda/0/4/undying.priests/sessions) in Unknown on line 0


Je vous passe aussi le code de la page valid_co.php et le lien de mon site.
Il faut aller dans connexion puis mettre zakyur en login et undying en mot de passe.
http://undying.priests.free.fr/Index.php



<?php    
// On démarre la session AVANT d'écrire du code HTML    
session_start();    
$_SESSION['connect']=0;    
if (isset($_POST['pass']) AND isset($_POST['Login'])) // Si les variables existent.    
{    
 $pass=$_POST['pass'];    
    $Login=$_POST['Login'];//On récupère les données envoyées par la méthode POST du formulaire d'identification.    
}     
else // Les variables n'existent pas encore.    
{    
    $pass="";    
    $Login="";// On crée des variables $mot_de_passe  et $login vides.    
}    
?>    



<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >    
<head>    
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">    
   <title>Undying Priests - EU - Arak-Arahm</title>    
   <meta name="description" content="">    
   <meta name="keywords" content="">    
   <meta name="author" content="FURIONE">    
   <meta name="generator" content="AceHTML Freeware">     
</head>     

<body>    
<?php    
if (($pass == "undying" AND $Login == "zakyur")) // Si le visiteur s'est identifié.    
// Si le mot de passe et le login sont bons    
{    
 $_SESSION['connect']=1; // Change la valeur de la variable connect. C'est elle qui nous permettra de savoir s'il y a eu identification.    
}    
header('Location: Index.php');    
?>    

</body>     

</html>



A voir également:

10 réponses

Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
17 mars 2011 à 10:46
si l'on te dit que que les headers sont deja envoyés, c'est obligatoirement que tu affiches quelque chose avant ton session_start().

ca peut etre volontairement ou pas, vérifie effectivement l'encodage sans BOM, si ta page php est inclue dans une autre, vérifie qu il n'y a pas d'affichage avant.

et je viens de regarder ton site, enleve provisoirement les grosses images de fond, tu vera que tu as les erreurs sur toutes les pages, meme en arrivant sur l index avant la connexion
1
Bonjour

Tu es peut-être chez free et tu as oublié de créer le répertoire "sessions" à la racine de ton site.
Ceci provoque l'envoi du premier message d'erreur.
L'envoi de ce message provoque l'envoi des headers, c'est pour ça que les autres messages te disent que les headers sont déjà envoyés. Résous le premier problème en créant le répertoire "sessions", tout devrait rentrer dans l'ordre.
1
musicalitymaker Messages postés 8 Date d'inscription dimanche 9 janvier 2011 Statut Membre Dernière intervention 20 mars 2011
Modifié par musicalitymaker le 17/03/2011 à 00:48
J'ai le même problème que toi. Je ne sais pas comment le réglé.
Attention : Tu a mis du contenu avant la fonction "session_start(); " Il ne faut qui soit en tout début de script. Enlève ton contenu "// On démarre la session AVANT d'écrire du code HTML" Vérifie qu'il y a pas d'espaces.
0
maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
17 mars 2011 à 08:31
faites attention au format de votre page également

enregistrez votre page php en utf-8 sans BOM, car certains caracteres invisible dans votre editeur peuvent etre inséré et provoquer l'erreur
0

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

Posez votre question
Bonjour,

déjà merci pour les réponses.
Gremy87, pour les images de fonds je sais que les erreurs sont sur toutes les pages, on les aperçois rapidement au chargement du fond. La seul chose avant la balise <?php c'est la ligne DOCTYPE. Par contre je commence dans les langages Web donc je ne connais pas l'encodage sans BOM.

Le père, oui effectivement je n'ai pas de dossiers sessions dans le répertoire racine, je vais essayer ça. Sait-tu pourquoi quand je tape le lien http://undying.priests.free.fr je tombe sur la page index of/ qui contient toutes mes pages et dossiers du site. J'aimerai que lorsque quelqu'un tape ce lien ils tombent sur la page d'accueil de mon site.

Merci.
0
j'ai rajouter le dossier sessions mais il me reste une erreur :

Warning: Cannot modify header information - headers already sent by (output started at /mnt/154/sda/0/4/undying.priests/valid_co.php:26) in /mnt/154/sda/0/4/undying.priests/valid_co.php on line 37
0
HOCD Messages postés 65 Date d'inscription dimanche 9 avril 2006 Statut Membre Dernière intervention 23 décembre 2015 15
17 mars 2011 à 20:56
Enlève tous les saut de lignes qui existent dans ton code php (cause première des message d'erreur de type "header...".

Il faut vérifier que la commande session_start() est bien activé dans tes paramètres de php (vérifie dans le fichier .conf si cette commande est activé).

Et soit dite en passant, dans ton code lorsque l'identification est réussit ou non, il faudrait stocker une valeur dans tes variables de session...
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
18 mars 2011 à 10:36
bonjour,

"La seul chose avant la balise <?php c'est la ligne DOCTYPE"

il ne doit RIEN y avoir dans ta page avant

<?php
session_start();
?>
//ensuite le doctype

"J'aimerai que lorsque quelqu'un tape ce lien ils tombent sur la page d'accueil de mon site."

les serveurs web sont configurés pour lancer automatiquement, en arrivant dans un dossier, la page index.php/.html
si tu veux que ta page se lance automatiquement, renomme la en index.php ;)
0
en faite ma page s'appelle bien index.php mais il y avait un I majuscule du coup ça ne marché pas.

Merci à vous.
0
Gremy87 Messages postés 352 Date d'inscription mercredi 19 mai 2010 Statut Membre Dernière intervention 19 mars 2014 38
18 mars 2011 à 10:55
toujours ton probleme de session?
0