Avatar billede alex_sleiborg Nybegynder
01. juni 2005 - 08:57 Der er 26 kommentarer og
1 løsning

Session virker, men stadig fejl

Får en fejl når jeg bruger sessions. Den trækker godt nok data'erne over i min variabel. Så det fungerer fint, bare lige bortset fra den fejl der er øverst på siden

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmer\apache group\apache\htdocs\metal\php\upload.php:3) in c:\programmer\apache group\apache\htdocs\metal\php\upload.php on line 4

og på linje 4 i koden står der
session_start();
Avatar billede Daniel.E Praktikant
01. juni 2005 - 09:01 #1
1) opret en mappe der hedder "tmp" i sin system rod.
2) gør dette:

session_start();
$_SESSION["test_data"] = "Jeg tester min session";

echo $_SESSION["test_data"];


Dette skal virke :)

Du havde måske glemt at oprette mappen "tmp".

hvis ikke, så er det din php.ini fil som er forkert konfiguretet, men det sker kun hvis man selv ændre det.

jeg samler ikke på points... giv mig hellere noget karma...

god fornøgelse
Avatar billede Daniel.E Praktikant
01. juni 2005 - 09:01 #2
ups...

har du en header(); funktion kørende på samme side som session_start() ??
Avatar billede Daniel.E Praktikant
01. juni 2005 - 09:03 #3
hvis du skal benytte header() funktionen skal du sørge for at den fil den står i, ikke skriver tekst ud til skærmen eller ligende.. så får man ligende fejl....

hvis ikke nolge af mine muligheder, så skriv igen.. så finder vi ud af det.. tror nok at mit første indlæg er forkert, da jeg lige læste dit spørgsmål igen, og havde overset et par ord.. hehe
Avatar billede webt Nybegynder
01. juni 2005 - 09:13 #4
alternativt kan du skrive
ob_start() i starten af dokument som vil starte output buffering, og tillade header overalt i dokumented, det den gør er først at skrive output til brugeren i det øjeblik dokumentet er parset helt,, eller til det øjeblik hvor den møder ob_flush()

Mvh
Martin
Avatar billede Daniel.E Praktikant
01. juni 2005 - 09:30 #5
ja, det er korrekt...  men det er altid godt at have et rent dokument... men det er ip til scripteren.. :)

hehe
Avatar billede webt Nybegynder
01. juni 2005 - 09:38 #6
helt sikkert, altid en god ide ikke at bruge output buffering med mindre det er nødvendigt, som det kan blive i visse tilfælde :)
Avatar billede alex_sleiborg Nybegynder
01. juni 2005 - 09:41 #7
Hmm ob_start() Melder den bare fejl.

Altså i min godkend.php fil har jeg følgende

session_start();
session_register ("s_bruger");
session_register ("s_password");
header ("location: upload.php");

Og jeg vil gerne have s_bruger og s_password over til upload.php.

Det virker også fint. På upload.php der bruger jeg den her stump kode

session_start();
echo $_SESSION['s_bruger']; // Bare lige for og teste at det virker

Den trækker fint variablerne med over men får stadig den her fejl

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmer\apache group\apache\htdocs\metal\php\upload.php:3) in c:\programmer\apache group\apache\htdocs\metal\php\upload.php on line 4
Avatar billede webt Nybegynder
01. juni 2005 - 11:54 #8
hmm hvilken fejl melder den med ob_start()?
Avatar billede alex_sleiborg Nybegynder
01. juni 2005 - 12:11 #9
ob_start() ænder intet. Får samme fejl
Avatar billede webt Nybegynder
01. juni 2005 - 15:08 #10
har du prøvet vb2s første trick? hvis ob_start() står på aller første linie, før noget som helst andet og du stadig får den fejl kan jeg ikke tro det er noget med output at gøre....
Avatar billede alex_sleiborg Nybegynder
01. juni 2005 - 15:24 #11
ob_start() står på første linje. Men det hjælper intet. Men skriver godt nok "Jeg tester min session"

Men fejlen er der stadig
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmer\apache group\apache\htdocs\metal\php\upload.php:3) in c:\programmer\apache group\apache\htdocs\metal\php\upload.php on line 4

Og min PHP.ini har jeg ikke ændret i. Andet end lige så at den passer til apache serveren og hvor PHP ligger. Så den er helt standard
Avatar billede haren Nybegynder
01. juni 2005 - 15:29 #12
Prøv at vise hele koden?
Avatar billede alex_sleiborg Nybegynder
02. juni 2005 - 08:54 #13
Her er det første dokument der hedder godkend.php

<?php

//Connecter til MySQL databasen
mysql_connect("localhost", "root", "");
mysql_select_db("rejsetaske");


$bruger        = $_POST['bruger'];
$password    = $_POST['password'];

    $resultpass = mysql_query("SELECT `bruger` FROM `brugere` WHERE `bruger` = '". $_POST["bruger"] ."' AND `password` = '". $_POST["password"] ."'") or die (mysql_error());

        if(mysql_num_rows($resultpass) == 0) {
        echo  "<script>window.location.href='Fejl.php';</script>";
        }else{

           
            while($r = mysql_fetch_array($resultpass)) {
                $s_bruger = $r["bruger"];
                $s_password = $r["password"];
                       
                }

session_start();
session_register ("s_bruger");
session_register ("s_password");
header ("location: upload.php");

}

?>

Og her er så upload.php. Skriver bare lige det første, da koden er meget lang og resten ikke har noget med sessions og gøre

<?


session_start();
echo $_SESSION["s_bruger"];
echo $_SESSION["s_password"];

?>
Avatar billede webt Nybegynder
02. juni 2005 - 09:33 #14
hvor satte du ob_start() ind? den skulle gerne ligge lige efter <?php ellers funker den ik
Avatar billede alex_sleiborg Nybegynder
02. juni 2005 - 09:40 #15
Har sat ob_start() som det første i PHP dokumentet. (Altså lige efter <?php).

Og har så også prøvet og sætte ob_end_flush() ind i bunden
Avatar billede webt Nybegynder
02. juni 2005 - 10:04 #16
Hmm så må jeg ærligt indrømme at jeg ikke ved hvorfor fejlen bliver ved med at kommer, har du prøvet at flytte session_start() op også?
Avatar billede alex_sleiborg Nybegynder
02. juni 2005 - 10:08 #17
Ja har prøvet og flytte det, det ændrer intet. Men sessions virker jo fint. Variablerne bliver jo flyttet med over. Der står bare det der i toppen af siden
Avatar billede webt Nybegynder
02. juni 2005 - 10:10 #18
ok, hvis alt virker og du er ligeglad med fejlen så kan du smække @foran de forskellige koder så burde den ikke udskrive nogen fejl... det anbefaler jeg ikke, men det er en mulighed, og der er sikkert mange som vil sige at jeg ikke engang burde nævne det men det gør jeg altså :)
Avatar billede alex_sleiborg Nybegynder
02. juni 2005 - 10:17 #19
Jeg vidste ikke man kunne sætte @ foran, så ville den ikke vise fejl. Men ok det virker nu, selvom det ikke er den optimale løsning...

Men smid et svar hvis du vil have point
Avatar billede alex_sleiborg Nybegynder
02. juni 2005 - 10:19 #20
Det jeg har gjort nu er og skrive

@session_start();

på upload.php

Men det kunne nu være lækkert, hvis der var en der vidste hva der var galt
Avatar billede webt Nybegynder
02. juni 2005 - 10:21 #21
Hvis du er tilfreds med @ tingen og ellers de mulige løsninger kan jeg godt ligge et svar, men jeg synes du skal tage point'sne selv og så evt oprette et nyt spørgsmål - så kan det være der kommer nogle nye muligheder frem :)

Mvh
Martin
Avatar billede alex_sleiborg Nybegynder
02. juni 2005 - 10:25 #22
Oki. Jeg prøver lige og vente og se om der ikke kommer nogen andre, der ved hva der kan være galt. Jeg synes det er lidt mærkeligt, synes heller ikke selv der burde være noget galt med koden
Avatar billede alex_sleiborg Nybegynder
08. juni 2005 - 11:50 #23
Er der ikke nogen der ved hva der kan være galt
Avatar billede webt Nybegynder
04. juli 2005 - 09:45 #24
Som skrevet 2/6 tror jeg det smarteste vil være at lægge et svar selv og så acceptere det og derefter oprette et nyt spørgsmål, ser ikke ud til der er så eget liv i denne tråd

Mvh
Martin
Avatar billede alex_sleiborg Nybegynder
05. juli 2005 - 09:18 #25
Okay så gør jeg det
Avatar billede webt Nybegynder
05. juli 2005 - 10:25 #26
Kan du ikke lige smide et link her hvis du opretter nyt spørgsmål, synes problemet er så bizzart at jeg næsten må vidde hvad der er galt :)

Mvh
Martin
Avatar billede alex_sleiborg Nybegynder
05. juli 2005 - 11:03 #27
Havde nu ikke regnet med og oprette et nyt spørgsmål. For er på sommerferie, så jeg er først hjemme igen i uge 32. Men jo kunne også godt selv tænke mig og finde ud af hva problemet er. Men skal nok prøve og se om jeg ikke kan huske det
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester