02. april 2010 - 15:12Der 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
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>
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:
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.
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.
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".
Synes godt om
Ny brugerNybegynder
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.