Pangaea Skrevet 28. april 2004 Del Skrevet 28. april 2004 (endret) Nå forstår jeg fint lite her... Har prøvd å lage til et innloggings-script på siden min. Når jeg bruker session_start() i login-scriptet får jeg denne feilmeldingen... Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\appserv\www\acdc\index.php:7) in c:\appserv\www\acdc\include\login.php on line 2 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\appserv\www\acdc\index.php:7) in c:\appserv\www\acdc\include\login.php on line 2 Og jeg blir innlogget. Men når jeg fjerner session_start() forsvinner feilmeldingen, men jeg blir også logget inn ?!? Synes dette virker ganske merkelig... Linje 7 i index.php er "<?php"... Her er login-scriptet mitt. Vet det ikke er veldig sikkert enda, men det kommer med tiden. Foreløbig vil jeg bare at det skal virke... <?php session_start(); $user = 'pangaea'; $pass = 'pangaea'; if (($_POST['username'] == $user) && ($_POST['password'] == $pass)) { $_SESSION['loggedin'] = "true"; echo "You are logged in. <br>"; exit; } else { $_SESSION['loggedin'] = "false"; echo "You are not logged in. <br>"; } ?> Jeg blir logget inn enten jeg bruker session_start() eller ikke. Jeg bruker ?page=login om det har noe å si, men bruker ikke session_start() på index.php Har det noe med php.ini å gjør?? Endret 28. april 2004 av Pangaea Lenke til kommentar
Nervetattoo Skrevet 28. april 2004 Del Skrevet 28. april 2004 (endret) <?php session_start(); ?> Det er feil måte å gjøre det på. <?php session_start(); ?> Det er rett måte å gjøre det på. Om du ikke skjønte den så vil det bare si at ingen ting må sendes til browseren før session startes. PHP echo/print output, html kode, tomme linjer med html. Hva som helst. session_start(); skal være det ABSOLUTT første som kommer i koden, med tanke på output. Edit: Ser at kode funksjonen på forumet her automatisk legger til en tom linje øverst, ,så det ble en dårlig illustrasjon. Beklager. Endret 28. april 2004 av Findus Lenke til kommentar
Pangaea Skrevet 28. april 2004 Forfatter Del Skrevet 28. april 2004 La nå inn session_start() i index.php helt øverst, og fjernet det i login.php, og da funket det Og jeg forstod eksempelet ditt bare jeg fikk tenke noen sekunder... Problemet var at siden jeg inkluderte login-scriptet ble session_start() plassert et stykke ned på siden... Takker for nok et løst problem Lenke til kommentar
Torbjørn Skrevet 28. april 2004 Del Skrevet 28. april 2004 (endret) Findus: feil måte: [CODE] <?php rett måte: [CODE]<?php EDIT: smiley... Endret 28. april 2004 av Torbjørn Lenke til kommentar
Pangaea Skrevet 28. april 2004 Forfatter Del Skrevet 28. april 2004 Huff, nok et problem jeg ikke finner ut av Sånn ser menu.inc.php ut... <strong>Menu:</strong><br/> <a href="index.php?page=home">Home</a><br/> <a href="index.php?page=news">News</a><br/> <a href="index.php?page=news_add">Add News</a><br/> <a href="index.php?page=form_id">Form</a><br/> <a href="index.php?page=form">Add Member</a><br/><br/> <a href="../forum/index.php">AC/DC Info Forum</a><br/><br/> <?php if ($_SESSION['loggedin'] == "false") { ?> <form name="login" method="post" action="index.php?page=login"> HTML..... </form> <?php } else { echo "<a href=index.php?page=logout>Log Out</a>"; } ?> Meningen er at når bruker er logget inn skal menyen forandre seg (fra login skjema til logout link). Men det gjør den ikke før jeg klikker på en av linkene. Hvorfor forandrer den seg ikke med en gang? Sorry for å spør så mye, men er uerfaren enda, og ser ikke hvorfor det ikke vil virke... Lenke til kommentar
???????? Skrevet 28. april 2004 Del Skrevet 28. april 2004 Å spørre om ting er meningen med et forum Har du husket session_start() på den filen? Lenke til kommentar
Pangaea Skrevet 28. april 2004 Forfatter Del Skrevet 28. april 2004 (endret) Jeg har session_start() i index-filen, og includerer menu.inc.php Edit: slenger på koden min, kanskje dere finner ut av det index.php <?php session_start(); ?> <html> <head> <title>Test Page:</title> <link rel="stylesheet" href="./include/styles.inc.css" type="text/css"/> </head> <body> <?php if (isset($_GET['page'])) { $page = $_GET['page'].".php"; if (is_file("./".$page)) { $page_inc = "./".$page; } else { $page_inc = "./home.php"; } } else { $page_inc = "./home.php"; } ?> <table width="990" border="1" cellpadding="0" cellspacing="0"> <tr> <td colspan="2"><?php include ("./include/header.inc.php");?></td> </tr> <tr> <td width="150" valign="top"><?php include ("./include/menu.inc.php");?></td> <td width="840" valign="top"><?php include ($page_inc);?></td> </tr> <tr> <td colspan="2"><?php include ("./include/footer.inc.php");?></td> </tr> </table> </body> </html> menu.inc.php <strong>Menu:</strong><br/> <a href="index.php?page=home">Home</a><br/> <a href="index.php?page=news">News</a><br/> <a href="index.php?page=news_add">Add News</a><br/> <a href="index.php?page=form_id">Form</a><br/> <a href="index.php?page=form">Add Member</a><br/><br/> <a href="../forum/index.php">Forum</a><br/><br/> <?php if ($_SESSION['loggedin'] == "false") { ?> <form name="login" method="post" action="index.php?page=login"> <table class="table_login" width="150" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="table_login_td">Username:</td> <td><input name="username" type="text" id="username" size="10"></td> </tr> <tr> <td class="table_login_td">Password:</td> <td><input name="password" type="password" id="password" size="10"/></td> </tr> <tr> <td> </td> <td><input name="login" type="submit" id="login" value="Login"/></td> </tr> </table> </form> <?php } else { echo "<a href=index.php?page=logout>Log Out</a>"; } ?> login.php <?php $user = 'p'; $pass = 'p'; if (($_POST['username'] == $user) && ($_POST['password'] == $pass)) { $_SESSION['loggedin'] = "true"; echo "You are logged in. <br>"; echo "session state: ".$_SESSION['loggedin']; exit; } else { $_SESSION['loggedin'] = "false"; echo "You are not logged in. <br>"; echo "session state: ".$_SESSION['loggedin']; } ?> logout.php <?php $_SESSION['loggedin'] = "false"; echo "You are logged out."; ?> Problemet (tror jeg) er at ikke siden blir refresha, men at bare login(eller logout).php blir inkludert. Vet ikke helt hvordan dette kan fikses... Har prøvd med header("Location: index.php"); i scriptene, men da fikk jeg feilmelding... Endret 28. april 2004 av Pangaea Lenke til kommentar
Pangaea Skrevet 28. april 2004 Forfatter Del Skrevet 28. april 2004 Ingen som har peiling på hva jeg må gjøre ? Lenke til kommentar
Nervetattoo Skrevet 28. april 2004 Del Skrevet 28. april 2004 Findus: feil måte: [CODE] <?php rett måte: [CODE]<?php EDIT: smiley... Uff. Blir så fæl struktur da. echo "test"; $haha = "hmm"; include("ting.php"); Ser ikke akkurat delikat ut Pangaea, ha tålmodighet. Veldig mange her er hyggelige å svarer på det meste som blir spurt. Svaret kommer nok, men det hender jo at vi faktisk har ting vi må gjøre selv og, tro det eller ei. 2 timer venting er ingen ting Lenke til kommentar
Pangaea Skrevet 28. april 2004 Forfatter Del Skrevet 28. april 2004 (endret) Forstår selfølgelig det Bare frustrerende å sitte og prøve utrolig mange ting, og ikke få det til. Edit: Hurra, klarte endelig å løse det La om litt if setninger her og der, og la inn session_start() noen flere plasser, og så funka det. Herlig! Endret 28. april 2004 av Pangaea Lenke til kommentar
Torbjørn Skrevet 29. april 2004 Del Skrevet 29. april 2004 Findus: feil måte: [CODE] <?php rett måte: [CODE]<?php EDIT: smiley... Uff. Blir så fæl struktur da. echo "test"; $haha = "hmm"; include("ting.php"); Ser ikke akkurat delikat ut Pangaea, ha tålmodighet. Veldig mange her er hyggelige å svarer på det meste som blir spurt. Svaret kommer nok, men det hender jo at vi faktisk har ting vi må gjøre selv og, tro det eller ei. 2 timer venting er ingen ting ække det som er poenget - skal du vise at det er en linjeskift øverst som ødelegger i et det ene tilfellet, bør du skrie <?php like etter slik at det ikke kommer fram noen linjeskift i koden du skisserer - så blir det mer forståelig til han du forklarer poenget til. Lenke til kommentar
Nervetattoo Skrevet 29. april 2004 Del Skrevet 29. april 2004 Ja, men var ikke klar over at det funket på den måten skjønner du Hadde jeg vært klar over det så hadde jeg jo selvsagt skrevet det sånn. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå