webForumDet fria alternativet

php session problem

3 svar · 466 visningar · startad av toddyd

toddydMedlem sedan jan. 200635 inlägg
#1

Försöker komma igång med php och testar att skicka variabler med sessions. Det blir förstås fel på direkten.
Jag läste att man måste sätta en session path i php.ini men när jag kollar där så finns det alldeles för mycket olika alternativ för att jag ska våga mig på det utan att exakt veta hur. Om det nu är det som är felet? (kör linux)

Dokumentet ser en enligt nedan:------------------------------------------------
<?php

session_start();
$_session['username']="tobbe";
$_session['autuser']="1";

?>

<html>
<body>

<title>variable test</title>

<?php
echo"<a href='session_check.php'>";
echo"clicka för att skicka session info i form av username och autuser";
echo"</a>";
?>
</body>
</html>
-----------------------------------------------------------------------------------------------------

Felmeddelandet ser ut så här:----------------------------------------------------------------

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /var/www/session.php:5) in /var/www/session.php on line 7

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/session.php:5) in /var/www/session.php on line 7
clicka f�r att skicka session info i form av username och autuser
--------------------------------------------------------------------

Tack

The_HulkMedlem sedan juni 20031 937 inlägg
#2

Du har förmodligen något tecken innan <?php
se till att det inte skrivs ut något INNAN du använder session_start();
Det får inte ens vara något mellanslag eller radbrytning.

AntonhMedlem sedan maj 200345 inlägg
#3

Detta felet beror på att hemsida skickar data till webläsaren innan session_start()
det kan enkelt åtgärdas genom att man i php.ini (tror jag att det är) aktiverar en buffert
(jag kommer inte riktigt ihåg hur den delen fungerar)

om man inte har tillgång till server så kan man istället använda en funtion som buffrar, t.ex ob_start()
om du sätter <? ob_start(); ?> absolut överst i koden så kommer den att buffra hemsidan, för att släppa ut bufferten till webläsaren så använder du <? ob_end_flush(); ?>

php manual sidan om ob_start finns att läsa här (jag är inte så bra på att förklara)
http://se.php.net/ob_start

hoppas att det hjälper (tog mig en jätte lång tid att lista ut det första gången jag lekte med sessioner :( )

MatteMedlem sedan aug. 20002 970 inlägg
#4

Varför hålla på med ob_start() eller annan buffring, när man lika gärna kan flytta session_start() till överst i skriptet?
Gör som The hulk skriver, och lägg session_start() före din output.

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb