ugrás a tartalomhoz

Cannot send session cookie - headers already sent by

Petrusz · 2006. Szep. 13. (Sze), 23.06
Üdv Mindenkinek!

Az alábbi hibaüzenettel nem tudok mit kezdeni. van egy Mysql ben tárolt user és password ellenörző login.php-m, majd a user-t egy sessionnel át szeretném adni a következő oldalnak de azt mondja hogy:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /AUTH/config.php:11) in /AUTH/login.php on line 55

pedig a config csak ezt tartalmazza:

<?php
$server = "sql";
$user = "aaaaaaaaa";
$pass = "xxxxxxx";
$database = "bbbbbbbbb";
mysql_connect($server, $user, $pass) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());
?>
most akkor miért nem engedi a session startot?

Köszönöm segítségeteket!

P.
 
1

Volt sokszor

Anonymous · 2006. Szep. 13. (Sze), 23.20
Volt már sokszor. Ha UTF-8-ban tárolod a fájljaidat, akkor szedd ki a BOM karaktereket, ha meg nem, akkor nézd meg, mi volt előtte a kimenet. Vagy használj output bufferinget.
2

Köszi

Petrusz · 2006. Szep. 13. (Sze), 23.27
Bár igazán nem értem a BOM karaktereket, az igazság az hogy nem mysql ben tárolom a session adatait. csak a bejelentkezési adatokat tárolom ott és néhány táblát amit a késöbbi formok segítségével szeretnék adatokkal megtölteni, de mindegyik rekord első azonosítója a bejelentkezésből származó user lenne és ezt szeretném csak a formokon továbbadni. Szerinted inkább mysql be tegyem be ezt? mivel csak erről az egy adatról van szó ezért gondoltam nem iratom ezt bele.. erre van valami kezelhető, rövid megoldásod?A sessionben nem vagyok még otthon az output buffer ennek a része?
P.
3

válaszod

krey · 2006. Szep. 14. (Cs), 02.34
Én spec. a válaszodat nem értem, ha megmondja hogy szedd ki a BOM karaktert a fájl elejéről akkor...

BOM

üdv. krey
4

változó SQLben

Petrusz · 2006. Szep. 14. (Cs), 15.04
mivel ezt a felületet egyszerre több felhasználó is használhatja ezért nem tudom hogy szerencsés lenne átadni aváltozót SQLben, talán az URL megfelelőbb lehet. Próbáltam az UFT-8 at átírni vanami konvencionálisabb kódra pl ASCII de a hiba üzenet ugyan az volt.
Tehát a config.php tartalmazza az adatbázis eléréséhez elengedhetetlen infókat, tehát hivatkozom is rá required() ben. De így a session nem tudja a headert írni. van esetleg valami egyszerű megoldás hogy a start session fusson és melette az adatbázist ne kelljen be ki nyitogatni- mert ha értelmezésem nem csal a hiba üzi azt feltételezi hogy a config.php már megragadta a headert

P.
5

én is megpróbálom

Anonymous · 2006. Szep. 14. (Cs), 15.23
még mindig nem érted a lényeget. a mysql-nek semmi köze sincs a fejléchez.
a fejléchez csak azoknak a karaktereknek van köze amiket elküldtél a kimenetre, akár echo, akár print, akár var_dump, stb. paranccsal. de az is lehet, hogy semmit nem írtál ki, ilyenkor kell ellenőrizni azt, hogy maradt-e egy szóköz, soremelés, stb karakter a <?php rész előtt. ha így sem találsz semmit, akkor jöhet számításba az az eset, hogy utf-8 kódolással írod a programod, ami egy bizonyos bom karaktert rak a fájlod elejére, ilyenkor azt kell eltávolítani, erről beszéltek eddig a többiek.

gex
6

config.php

Anonymous · 2006. Szep. 14. (Cs), 15.27
a hibaüzeneted
output started at /AUTH/config.php:11

tartalmazza azt, hogy pontosan hol is keresd a felesleges karaktereket. a config.php 11-ik sorában írsz először a kimenetre, de ha jól számolok nincs is ennyi sorod benne, úgyhogy nézd meg azt, hogy a ?> után nincsenek-e szóközök vagy soremelések.

gex