atsjoo Skrevet 2. april 2005 Del Skrevet 2. april 2005 Jeg driver å lager en side med et slikt innloggingssystem, ved hjelp av en database og og sessions. I toppen av index.php starter jeg en session, og dersom man skriver inn riktig brukernavn og passord lenger ned på sida, settes $_SESSION['access'] = "granted", men når jeg da trykker på en link glemmes tydeligvis denne sesjonsvariablen. Man befinner seg alltid på index.php, men forskjellige sider inkluderes når man trykker på linker (<a href="?side=blablabla$kategori=blablabla2">). Hvordan får jeg sida til å beholde sesjonen og sesjonsvariabelen når jeg trykker en link? Mvh. Anders Lenke til kommentar
LoS Skrevet 2. april 2005 Del Skrevet 2. april 2005 Har du husket session_start() i toppen av index.php da? Lenke til kommentar
atsjoo Skrevet 2. april 2005 Forfatter Del Skrevet 2. april 2005 (endret) Ja. URL-en i toppen endrer seg dog ikke når jeg trykker på logg-inn (sesjonsid vises aldri), men $_SESSION['access'] blir satt. Endret 2. april 2005 av atsjoo Lenke til kommentar
Rasmus Skrevet 2. april 2005 Del Skrevet 2. april 2005 Sesjonsid lagres i en cookie dersom nettleseren støtter det. Da vil ikke url'en endres. Dersom cookies ikke støttes får man &PHPSESSID=... på slutten av url'en. (Antar at session.name og arg_separator.output er default) PS: Paste koden, så finner vi kanskje feilen. Lenke til kommentar
atsjoo Skrevet 2. april 2005 Forfatter Del Skrevet 2. april 2005 if ($_SESSION["access"] == "granted") { ?> <p class="menyskille">: administrasjon</p> <p>Du er innlogget som <?php echo $_SESSION['brukernavn'];?>. <a href="<?php session_destroy(); ?>">Logg ut</a></p> <a href="index.php?kat=<?php echo $kat; ?>&side=nyhet" class="katlink">- legg til nyhet</a> <a href="index.php?kat=<?php echo $kat; ?>&side=upload" class="katlink">- legg inn bilde</a> <?php } else { ?> <form name="login" method="POST" action="index.php"> <input type="text" name="brukernavn" class="login"> <input type="password" name="passord" class="login"> <input type="submit" name="login" class="login" value="Logg meg inn"> </form> Ikke registrert? <a href="?side=Registrering.php">Trykk her.</a> <?php if ($_POST['login'] != null) { $brukernavn = $_POST['brukernavn']; $login = crypt($brukernavn, $_POST['passord']); include ('db_conn.php'); $query = "SELECT * FROM brukere WHERE passord = '".$login."' and brukernavn ='".$brukernavn."'"; $result = mysql_query($query); if (mysql_fetch_row($result)) { $_SESSION['brukernavn'] = $brukernavn; $_SESSION["access"] = "granted"; } else { echo 'Prøv en gang til.'; } } } I tillegg kommer session_start(); øverst i dokumentet. Lenke til kommentar
Rasmus Skrevet 2. april 2005 Del Skrevet 2. april 2005 <p>Du er innlogget som <?php echo $_SESSION['brukernavn'];?>. <a href="<?php session_destroy(); ?>">Logg ut</a></p> Problemet er at du ødelegger sesjonen når brukeren har logget inn. <?php session_destroy(); ?> Denne sletter sesjonen. href attributten blir forøvrig tom. Les mer om session-destroy Lenke til kommentar
atsjoo Skrevet 3. april 2005 Forfatter Del Skrevet 3. april 2005 <p>Du er innlogget som <?php echo $_SESSION['brukernavn'];?>. <a href="<?php session_destroy(); ?>">Logg ut</a></p> Problemet er at du ødelegger sesjonen når brukeren har logget inn. <?php session_destroy(); ?> Denne sletter sesjonen. href attributten blir forøvrig tom. Les mer om session-destroy Selvfølgelig Takk skal du ha. Forslag til hvordan jeg da kan lage en logg ut-link? Eneste måten jeg kommer på i farta er å lage en submit-knapp. Lenke til kommentar
Prodigy_ Skrevet 3. april 2005 Del Skrevet 3. april 2005 loggut.php <?php session_start(); session_destroy(); print("Du er nå logget ut"); ?> Da kan du bare lage en link som ser slik ut: <a href="loggut.php">Logg ut</a> Lenke til kommentar
atsjoo Skrevet 3. april 2005 Forfatter Del Skrevet 3. april 2005 Et problem til jeg har, er at når jeg trykker på "logg inn" første gang, skjer det ingen ting. Jeg må med andre ord trykke to ganger for at jeg skal bli logget inn - hvorfor? Lenke til kommentar
pgdx Skrevet 3. april 2005 Del Skrevet 3. april 2005 (endret) Er du sikker på at du ikke blir logget inn, men at PHP-koden som skal sjekke om du er innlogget er ett HTML-koden som sier om du er det eller ikke? Hvordan logger du inn? Via form? For å logge ut, kan du jo også bare lage en lenke slik: <a href="index.php?loggut=1">Logg ut</a> Og i index.php ha denne kodesnutten: <?php if ($_GET['loggut'] == 1) { session_destroy(); } ?> Endret 3. april 2005 av drange_net Lenke til kommentar
fiLLLipnet Skrevet 3. april 2005 Del Skrevet 3. april 2005 Har du mulighet til å poste hele koden på index fila og innloggingsscriptet? Lenke til kommentar
Mellet Skrevet 5. april 2005 Del Skrevet 5. april 2005 Hmm.. Når jeg sette inn <?php session_start(); ?> i toppen av index.php kommer denne feilmeldingen: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /mnt/home3/z/zo/zoot89/public_html/index.php:25) in /mnt/home3/z/zo/zoot89/public_html/index.php on line 117 Hva er det som egentlig er galt ? Lenke til kommentar
pgdx Skrevet 5. april 2005 Del Skrevet 5. april 2005 (endret) Akkurat det som står. Header er allerede sendt, og session_start() må være det ALLER FØRSTE som blir sendt, ellers tryner det. Edit: Dette har vært oppe før her. Edit2: Frames? Endret 5. april 2005 av drange_net Lenke til kommentar
Mellet Skrevet 5. april 2005 Del Skrevet 5. april 2005 Akkurat det som står. Header er allerede sendt, og session_start() må være det ALLER FØRSTE som blir sendt, ellers tryner det. Edit: Dette har vært oppe før her. Edit2: Frames? Hmm.. Har den heeeeelt øverst på index.php Nei bruker ikke frames... Bruker ett include script : <?php session_start(); ?> <!-- All contents are copyrighted © to Mellet Solbakk. Please do not use any without my approval. Thank you. Alt innhold er copyrighted © til Mellet Solbakk. Vær vennlig å ikke bruk noe uten mitt samtykke. På forhånd takk. --> <html><head> <style> INPUT { background-color: #666666; color: black; border: black 1px solid; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 10px; } TEXTAREA { background-color: #666666; color: black; border: black 1px solid; font-family: Verdana, Arial, Helvetica, sans-serif; font-weight: bold; font-size: 10px; } </style> <title>MelleT</title> <link rel="stylesheet" type="text/css" href="style.css"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body alink="#FFFFFF" vlink="#FFFFFF" link="#FFFFFF" text="#FFFFFF"> <div align="center"> <!--Banner--> <div id="header"></div> <!--Banner--> <!--Linker--> <div class="fet" id="menu"> <a href="?side=main">Nyheter</a> - <a href="?side=meg">Meg</a> - <a href="?side=venner">Venner</a> - <a href="?side=linker">Linker</a> - <a href="?side=galleri">Galleri</a> - <a href="?side=statistikk">Stats</a> - <a href="?side=gjestebok">Gjestebok</a> - <?php if($_SESSION['brukernavn'] && $_SESSION['passord']) {echo ("<a href=?side=loggut>Logg Ut</a>");} else {echo("<a href=?side=logginn>Logg Inn</a>");} ?> </div> <!--Linker--> <!-- Innhold --> <div class="normal" id="main"> <div align="left"> <div id="padding"> <?php include("style.php"); if(@$_GET['side']) { if(@is_file("{$_GET['side']}.php")) { @include("{$_GET['side']}.php"); } else { echo "$rød Siden finns ikke. $end $normal Eller blir oppdatert. Prøv igjen senere. $end"; } } else { @include("main.php"); } echo ("<br>"); include ("online.php"); ?> <br><br> <div align="center"><strong>Copyright © Mellet Solbakk</strong></div> <!-- Innhold --> </div> </div> </div> </div> </body> </html> 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å