Avatar billede Explomatic Nybegynder
02. april 2010 - 15:12 Der er 9 kommentarer og
1 løsning

Session_start(); fejl, men resten af script gennemføres

Jeg prøver at lave et login system til et eksamensprojekt i programmering, men jeg kan ikke få den til at gemme mine oplysninger i sessioner. hvis jeg indsætter session_start() i starten af scriptet får jeg nedenstående fejlmeddelelse, men resten af login scriptet gennemføres.

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\AppServ\www\eksamensprojekt\login-ok.php:2) in C:\AppServ\www\eksamensprojekt\login-ok.php on line 3

koden

<?php // PHP script start.
session_start();

require("config.php"); // Variabler til mysql hentes

$adgangDB = mysql_connect("$mysql_host", "$mysql_user", "$mysql_pw");
mysql_select_db("$mysql_db");

if(!isset($_POST['login'])) { //Tester om brugeren kom fra  login.html
    echo "Du skal komme fra login.html";
    }else
{
        $postbruger = $_POST['brugernavn'];
        $postpass = $_POST['password'];
//For læservenligheden overføres post variablerne til normale variabler
       
        $resultat = mysql_query("SELECT id FROM users WHERE brugernavn = '$postbruger' AND password = '$postpass'");//Spørger efter ID

        $nummer = mysql_num_rows($resultat);//Tæller antaller af resultater
        if($nummer == 1)
{ //Hvis der kun er et resultat, bliver brugeren logget in
        $_SESSION['logget_in'] = 1;
        $_SESSION['brugernavn'] = $postbruger;
        $_SESSION['password'] = $postpass; //Sætter session variablerne
        echo "Du er nu logget in";
}
                else
{
                echo"De indtastede oplysninger er ikke korrekte";
}
}
?>


</br></br>
<a href="skitse2.php">Link til forsiden</a>


Jeg håber der er nogen som kan hjælpe :)
Avatar billede rask2 Nybegynder
02. april 2010 - 15:35 #1
Hej

Har du noget kode inden ovenstående, eller er session_start() det første?
Avatar billede Explomatic Nybegynder
02. april 2010 - 15:56 #2
hey

session_start() er det første i koden.
Avatar billede rask2 Nybegynder
02. april 2010 - 16:10 #3
Hvad med din login.html ????


Prøv at kalde den for login.php og lav din session_start() som det første på denne side i stedet for
Avatar billede dkfire Nybegynder
02. april 2010 - 16:18 #4
Har du et mellemrum eller tom linje før din <?php ?

I hvilket format gemmer du din php fil, er det UTF-8 eller ISO ?
Avatar billede Explomatic Nybegynder
02. april 2010 - 16:39 #5
@rask2

Har prøvet at rykke session_start() til login.php, men nu skriver den bare fejlmeddelelsen alle de steder jeg har linket til login.php via <?php include(""); ?>.


@dkfire

Da jeg bruger Stone's WebWriter indsætter den jo en AutoDate, men i login.php filen kommer den først efter at jeg har kaldt session_start()

Ang. filformat er jeg i tvivl, men jeg har prøvet at søge i php.ini filen og fandt dette:

; PHP's built-in default is text/html
default_mimetype = "text/html"
;default_charset = "iso-8859-1"


hvis det er det du mener :)
Avatar billede dkfire Nybegynder
02. april 2010 - 21:05 #6
Eftersom at session_start() er på linje 3 må du have noget før <?php.
Har du en tom linje der ???

Og nej det var ikke det jeg mente, jeg tænkte på hver enkelt fil du gemmer, hvilket format gemmes de i ?
Avatar billede rask2 Nybegynder
02. april 2010 - 22:52 #7
Problemet du evt. løber ind i er hvis din editor ikke er sat korekt op.

Du bør sikre dig at det ikke er BOM der er problemet. Jeg har selv været udsat for netop dette problem. Dig editor skal gerne stå til UTF-8 uden BOM .....

Hvis dette ikke er indstillet rigtigt vil der være nogle tegn (som ikke er synlig i editoren) på første linje.
Avatar billede The_Buzz Novice
03. april 2010 - 13:39 #8
Er *helt sikkert* fordi der er sendt en blankspace eller ET eller andet content ud inden den session_start();

Du skal ikke have den i f.eks en include fil - men i toppen af det aller første moderscript - og sikre dig at der ikke er sendt NOGEN form for output inden den kommer.
Avatar billede The_Buzz Novice
03. april 2010 - 13:41 #9
Side kommentar...
output started at C:\AppServ\www\eksamensprojekt\login-ok.php:2)

Linie 2 - i login-ok starter output - læg en session_start() ind inden det?
Avatar billede Explomatic Nybegynder
03. april 2010 - 13:55 #10
The_Buzz

Jeg takker mange gange for dette, det virker nu som det skal :D


@dkfire

Som sagt så indsætter min editor en opdaterings linie, og den ender øverst i scriptet hvis jeg ikke har en head sektion, kunne det godt have gjort udfaldet?


@Rask2 og dkfire

Det der filformat i snakker om, UTF-8 (bom) og ISO (bom), hvor retter man i det? Når jeg gemmer filerne gemmer jeg dem bare som "navn.php" eller "navn.htm".
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

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