[PHP]-SESSION erreur incomprehensible. urgent
Résolu
LP80
Messages postés
42
Date d'inscription
Statut
Membre
Dernière intervention
-
LP80 Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
LP80 Messages postés 42 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voilà je suis désespéré depuis un moment je rencontre tout le temps des problemes avec les sessions.
Je comprend pas sur les tutos et les manuels le fonctionnement est a peu prés toujours le même.
Mais malgré pleins de réécriture de mon script, je rencontre toujours un problème...
Sans compter que ça fonctionne parfaitement en LOCAL.
ps: je suis hebergé sur ovh...
il s'agit d'une page classique avec un formulaire ou je récupère les infos et si tout est ok on initialise la session et ensuite je redirige ver l'index.
Je vous laisse mon code ici:
voici mon erreur:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 17
Warning: Cannot modify header information - headers already sent by (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 31
J'avoue que je suis dérouté car je ne vois pas a quel moment le header en envoyé avant l'initialisation de la session.
enfin si quelqu'un pouvait me dire pourquoi j'ai cette erreur et ce que je pourrais faire.
Et le pire c'est que je doit le montrer le site demain a mon pote et ca risque de foiré.. vous comprenez l'urgence.
En remerciant d'avance toute âme charitable qui m'aiderais.
merci donc.
voilà je suis désespéré depuis un moment je rencontre tout le temps des problemes avec les sessions.
Je comprend pas sur les tutos et les manuels le fonctionnement est a peu prés toujours le même.
Mais malgré pleins de réécriture de mon script, je rencontre toujours un problème...
Sans compter que ça fonctionne parfaitement en LOCAL.
ps: je suis hebergé sur ovh...
il s'agit d'une page classique avec un formulaire ou je récupère les infos et si tout est ok on initialise la session et ensuite je redirige ver l'index.
Je vous laisse mon code ici:
<? //////////////////////////////////////////////////LOGIN/////////////////////////////////////////////////////// if(isset($_POST['luser']) && $_POST['luser']!="" && $_POST['lepass']!=""){ // si on a cliqué sur le formulaire require("../process/connexions.php"); //1.RECUPERATION DES CHAMPS////////////////////////////////////////////// $lelogin = $_POST['luser']; $lepass = $_POST['lepass']; $erreur = "Champs incomplets"; //2.OPEN CONNEXION/////////////////////////////////////////////////////// $loginConnect = mysql_connect($host, $login, $pass); mysql_select_db($chDB, $loginConnect); //3.VERIFICATION DES DONNEES DU FORMULAIRE/////////////////////////////// $infoUser = mysql_query("SELECT * FROM $adminTB WHERE pseudo ='$lelogin' AND psw='$lepass' " )or die(mysql_error()); $result = mysql_num_rows($infoUser); //Si il n'y a pas de resultats c'est que l'uns des champs est incorrect (au miniùum) //4.USER ADMIN CONNEXION///////////////////////////////////////////////// if($result == 1) { session_start(); //a.VARIABLES////////////////////////////////////////// $_SESSION["login"] = $lelogin; $_SESSION['identification'] = session_id(); $_SESSION['id_user'] = mysql_result($infoUser,0,'id'); $_SESSION['pseudo'] = mysql_result($infoUser,0,'pseudo'); //meme valeur que $lelogin $_SESSION['psw'] = mysql_result($infoUser,0,'psw'); //a encoder de preference (md5) $_SESSION['mail'] = mysql_result($infoUser,0,'mail'); $_SESSION['last_connect'] = mysql_result($infoUser,0,'d_lastCon'); $der_connexion=date("Y-m-d H:i:s"); //b.UPDATE: Derniere connection//////////////////////// mysql_query ("UPDATE $adminTB SET d_lastCon='$der_connexion' WHERE id=".$_SESSION['id_user']." LIMIT 1") or die (mysql_error()); mysql_close($loginConnect); //c.REDIRECTION//////////////////////////////////////// header("Location: adm_index.php?p=1"); }else{ include("adm_login_2.php"); //header("Location: adm_login.php"); } }else{ include("adm_login_2.php"); //header("Location: adm_login.php"); //genere une boucle infinie } ?>
voici mon erreur:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 17
Warning: Cannot modify header information - headers already sent by (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 31
J'avoue que je suis dérouté car je ne vois pas a quel moment le header en envoyé avant l'initialisation de la session.
enfin si quelqu'un pouvait me dire pourquoi j'ai cette erreur et ce que je pourrais faire.
Et le pire c'est que je doit le montrer le site demain a mon pote et ca risque de foiré.. vous comprenez l'urgence.
En remerciant d'avance toute âme charitable qui m'aiderais.
merci donc.
A voir également:
- [PHP]-SESSION erreur incomprehensible. urgent
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- Expert php pinterest - Télécharger - Langages
13 réponses
Peut-être une erreur d'encodage ...
Il se peut qu'il y ai un caractère invisible avant <?php
Pour l'effacer, efface complétement la première ligne (dés que la ligne est vide visuellement, presse la touche effacer encore une fois). Ensuite, tu peux réinscrire <?php
Il se peut qu'il y ai un caractère invisible avant <?php
Pour l'effacer, efface complétement la première ligne (dés que la ligne est vide visuellement, presse la touche effacer encore une fois). Ensuite, tu peux réinscrire <?php
Biensur...
Voila
//=== CONNECTION DB SETTING /////////////// $host = "localhost"; $login = "root"; $pass = "mysql"; //=== DB NAMES ////////////////////////// $chDB = "ladb"; $adminTB = "admin";
Voila
Heu tu n'as rien d'affiché avant ton <?php
?
et t'as pas d'espace non plus (un espace en trop ca peut foutre la m**** ^^)
?
et t'as pas d'espace non plus (un espace en trop ca peut foutre la m**** ^^)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ben non,
et c'est ca le plus dingue. si je pouvait t'envoyer le fichier tu verrais.
j'ai mon ouverture <?php , passage a la ligne et direct session_star()
faudrais p-etre que je fasse un test sur un autre hebergeur pour voir si ca vien pas de eux...
mais c'est assez fastidieux.
je sais pas...
et c'est ca le plus dingue. si je pouvait t'envoyer le fichier tu verrais.
j'ai mon ouverture <?php , passage a la ligne et direct session_star()
faudrais p-etre que je fasse un test sur un autre hebergeur pour voir si ca vien pas de eux...
mais c'est assez fastidieux.
je sais pas...
Salut !
Ton erreur : session start doit TOUJOURS être placé avant n'importe quel code php, même si tu n'utilise pas les sessions !!!
Là, il est à la ligne 17. Pour ma part et pour éviter de me tromper, je le met toujours après les lignes <?php.
Il ne doit être activé qu'une fois par page, c'est d'autant mieux si tu as un seul index.php avec plein de includes.
Bonne chance !
Ton erreur : session start doit TOUJOURS être placé avant n'importe quel code php, même si tu n'utilise pas les sessions !!!
Là, il est à la ligne 17. Pour ma part et pour éviter de me tromper, je le met toujours après les lignes <?php.
Il ne doit être activé qu'une fois par page, c'est d'autant mieux si tu as un seul index.php avec plein de includes.
Bonne chance !
Donc le code que t'as filé au début c'est tout ton fichier ?
t'as rien du tout avant ?
Ce que dis le Mr du dessus est possible, je met tjs mes session_start en debut de page, mais je croyais que c'était avant tout code généré, et pas avant tout code interprété ...
mais c'est possible ^^
t'as rien du tout avant ?
Ce que dis le Mr du dessus est possible, je met tjs mes session_start en debut de page, mais je croyais que c'était avant tout code généré, et pas avant tout code interprété ...
mais c'est possible ^^
Ben enfait il m'est arrivé la même chose, je ne voulais un session_start() qu'à partir d'une fonction if.
De là, php avec if et session_start en résultat. L'erreur était là.
J'éspère que c'est là même chose pour ici !
Ce que je fais tout le temps maintenant c'est session_start() sur mon index.php, et je défini un session_start.php qui place les variables initiales de sessions. Ce fichier est cependant chargé qu'une fois à chaque session d'ouverte.
De là, php avec if et session_start en résultat. L'erreur était là.
J'éspère que c'est là même chose pour ici !
Ce que je fais tout le temps maintenant c'est session_start() sur mon index.php, et je défini un session_start.php qui place les variables initiales de sessions. Ce fichier est cependant chargé qu'une fois à chaque session d'ouverte.
salut a vous et merci pour vos réponses,
et désolé pour le rendu pourri du code... pourtant j'ai mit les balises, boh!
En effet la session_start() TJRS au début... apparement.
cependant là j'ai cette erreur.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 2
Du coup je l'ai retiré, puisque de toute façon la session est initialisée a l' index.php.
MAIS lors de la redirection: header("Location: adm_index.php?p=1");
voici l'erreur:
Warning: Cannot modify header information - headers already sent by (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 30
Et là, je ne vois vraiment pas pourquoi... puisqu'il n'y a rien qui est affiché avant.
pour jeangilles:
Oui c'est tout mon fichier (adm_login.php)... le formulaire ce trouve dans "adm_login_2.php" et il est inclus dans "adm_login.php".
J'ai fai ça pour etre sûr que le contenu soit bien généré avant ma session... mais si j'avais mis un <doctype/> après mon code ça fonctionnerais tout aussi bien... enfin presque.
Pour PMax-57,
tu peux p-être détaillé un peux plus ton idée?
mois j'utilise une page login ou je cree mes variable de session et ensuite je redirige vers l'index... tu ferais comment selont ce shema?
merci encore
et désolé pour le rendu pourri du code... pourtant j'ai mit les balises, boh!
En effet la session_start() TJRS au début... apparement.
<?php session_start(); if(isset($_POST['luser']) && $_POST['luser']!="" && $_POST['lepass']!=""){ ...
cependant là j'ai cette erreur.
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 2
Du coup je l'ai retiré, puisque de toute façon la session est initialisée a l' index.php.
MAIS lors de la redirection: header("Location: adm_index.php?p=1");
voici l'erreur:
Warning: Cannot modify header information - headers already sent by (output started at /homez.68/catherin2/www/admin/adm_login.php:1) in /homez.68/catherin2/www/admin/adm_login.php on line 30
Et là, je ne vois vraiment pas pourquoi... puisqu'il n'y a rien qui est affiché avant.
pour jeangilles:
Oui c'est tout mon fichier (adm_login.php)... le formulaire ce trouve dans "adm_login_2.php" et il est inclus dans "adm_login.php".
J'ai fai ça pour etre sûr que le contenu soit bien généré avant ma session... mais si j'avais mis un <doctype/> après mon code ça fonctionnerais tout aussi bien... enfin presque.
Pour PMax-57,
tu peux p-être détaillé un peux plus ton idée?
mois j'utilise une page login ou je cree mes variable de session et ensuite je redirige vers l'index... tu ferais comment selont ce shema?
merci encore
Re !
Hé bien enfait tous mes sites sont encodés sous le même schéma :
Index.php // Dans lequel j'insère toutes mes fonctions
=> if ( empty($_SESSION['auth']) == true ) { require_once(session_start.php) //Include du session_start
=> require_once(connect.php) // Connection à la BDD
=> require_once(theme.php) // Elements visuels
dans le session_start() on insère tous les paramètres d'origine de la session, par exemple :
$_SESSION['lang'] == 'fr'; //Langage : francais
$_SESSION['memberid'] == '0'; //On défini l'ID du membre à 0, à modifier dans un fichier auth.php
$_SESSION['auth'] == '1'; //Le visiteur est passé par session_start, plus besoin de recharger le fichier (cf la ligne avec la fonction if empty)
ensuite dans ton fichier auth.php tu met tes parametres de login et tu modifie le $_SESSION['memberid'] == '0'; en suivant l'enregistrement.
J'espere que ça t'as aidé
Hé bien enfait tous mes sites sont encodés sous le même schéma :
Index.php // Dans lequel j'insère toutes mes fonctions
=> if ( empty($_SESSION['auth']) == true ) { require_once(session_start.php) //Include du session_start
=> require_once(connect.php) // Connection à la BDD
=> require_once(theme.php) // Elements visuels
dans le session_start() on insère tous les paramètres d'origine de la session, par exemple :
$_SESSION['lang'] == 'fr'; //Langage : francais
$_SESSION['memberid'] == '0'; //On défini l'ID du membre à 0, à modifier dans un fichier auth.php
$_SESSION['auth'] == '1'; //Le visiteur est passé par session_start, plus besoin de recharger le fichier (cf la ligne avec la fonction if empty)
ensuite dans ton fichier auth.php tu met tes parametres de login et tu modifie le $_SESSION['memberid'] == '0'; en suivant l'enregistrement.
J'espere que ça t'as aidé
bon apparemment ça fonctionne maintenant...
en fin de compte j'ai l'impression de l'hypothèse émise par avion-f16 était la bonne.
J'ai simplement recréé un fichier login.php et j'ai fait un copier/coller. et ça à marché!! youpii...
Enfin on va voire apparemment ça fonctionne mais on sait jamais...
Merci en tout cas a vous tous pour vos conseils.
pour PMax-57,
je vais essayer ta méthode, merci en tout cas ;)
LP80
en fin de compte j'ai l'impression de l'hypothèse émise par avion-f16 était la bonne.
J'ai simplement recréé un fichier login.php et j'ai fait un copier/coller. et ça à marché!! youpii...
Enfin on va voire apparemment ça fonctionne mais on sait jamais...
Merci en tout cas a vous tous pour vos conseils.
pour PMax-57,
je vais essayer ta méthode, merci en tout cas ;)
LP80