Anders Moen Skrevet 20. februar 2007 Del Skrevet 20. februar 2007 (endret) Hei! Vil bare at det logg inn scriptet her skal bli enda litt bedre jeg... Logg inn scripet: <?php if ($_SESSION['online']) { echo " Welcome " . $_SESSION['username'] . "! "; } else if (isset($_POST['username']) && isset($_POST['password'])) { $db=mysql_connect("localhost", "brukernavn", "passord"); mysql_select_db("db_navn", $db); $username = htmlentities($_POST['username']); $password = htmlentities($_POST['password']); $username = mysql_real_escape_string($username); $password = mysql_real_escape_string($password); $query = mysql_query("SELECT username, password FROM members WHERE username = '$username' AND password = '$password'"); if(mysql_num_rows($query) == 1) { $_SESSION['online'] = true; $_SESSION['username'] = $username; echo " Welcome " . $_SESSION['username'] . "! "; } if(mysql_num_rows($query) == 0) { $_SESSION['online'] = false; $_SESSION['username'] = $username; echo " Wrong username or password! "; mysql_close($db); } } else { ?> <form action="" method="post"> <p><strong>Username</strong><br /><input type="text" name="username" /></p> <p><strong>Password</strong><br /><input type="password" name="password" /></p> <p> <br /><input type="submit" name="submit" value=" Login " /></p> </form> <?php } ?> Selve scripet fungerer helt bra, men jeg vil prøve noe annet i stedet for å ha hele det scriptet på hver side... Jeg vil sette det over <html> og bruker header location hvis man ikke er pålogget. Og jeg har prøvd litt, men jeg blir bare tatt med tilbake til index.php hver gang, selv om jeg er pålogget og. Det her satte jeg over Doctypen på sida jeg skal beskytte: <?php session_start(); $db=mysql_connect("localhost", "brukernavn", "passord"); mysql_select_db("db_navn", $db); $query = mysql_query("SELECT username, password FROM members WHERE username = '$username' AND password = '$password'"); if(mysql_num_rows($query) == 0) { $_SESSION['online'] = false; $_SESSION['username'] = $username; header ('location: index.php'); mysql_close($db); } if(mysql_num_rows($query) == 1) { $_SESSION['online'] = true; $_SESSION['username'] = $username; mysql_close($db); } ?> Men det fungerte jo som sagt ikke helt... Endret 20. februar 2007 av Andy-Pandy Lenke til kommentar
ZoRaC Skrevet 20. februar 2007 Del Skrevet 20. februar 2007 Legg login-scriptet i en egen fil. Så i alle filer du vil beskytte: <?php session_start(); require_once("login.php"); if (!$_SESSION['online']) { die(); } // innholdet her ?> Lenke til kommentar
Anders Moen Skrevet 20. februar 2007 Forfatter Del Skrevet 20. februar 2007 (endret) if (!$_SESSION['online']) { die(); } ? Den kan ikke stemme helt, kan den? Die dreper den jo på en måte...jaja, prøver den uansett så får vi se. Edit: Hmm...får det ikke til å fungere helt. Er man logget inn skal man ikke bli sendt bort fra sida, men er man ikke pålogget, skal jeg bruke header ('location: index.php') siden det ikke fungerer under noe annen kode...da blir det bare feilmelding om at den ikke kan "modify headers". Men hvis jeg kunne ha brukt header location midt på sida, hadde det ikke vært noe problem. Nå har jeg bare meta redirects =/ Endret 20. februar 2007 av Andy-Pandy Lenke til kommentar
Anders Moen Skrevet 20. februar 2007 Forfatter Del Skrevet 20. februar 2007 Ingen som har noen andre ideer? Får det rett og slett ikke til å fungere... Synd man ikke kan bruke header location midt i body delen, for da hadde jeg ikke trengt å spørre xD Det der sa jeg kanskje litt før óg det, gjorde jeg ikke? Haha! Lenke til kommentar
ZoRaC Skrevet 20. februar 2007 Del Skrevet 20. februar 2007 Hvorfor må du kjøre "header: location"? Er det ikke greit at innloggings-siden vises da? Hva er problemet med å bruke det jeg foreslo? Fungerer det ikke? Lenke til kommentar
Anders Moen Skrevet 20. februar 2007 Forfatter Del Skrevet 20. februar 2007 Jo, men jeg har en admin mappe, som skal beskyttes, og jeg klarer ikke bruke legge til MySQL koden (annen tabell), inni den siden den allerede logget på...kanskje det går? Uansett, da må jeg skrive inn koden to ganger inni koden av en eller annen grunn :S Men innloggingskjemaet ligger på venstre sida hele tida, så man trenger jo ikke å gå til den "hemmelige" mappa før man logger på... Lenke til kommentar
ZoRaC Skrevet 20. februar 2007 Del Skrevet 20. februar 2007 Du kan legge dette øverst i alle sidene du vil beskytte da: <?php session_start(); if (!$_SESSION['online']) { header("Location: et-eller-annet-sted.php"); die; } // innholdet ?> Lenke til kommentar
Anders Moen Skrevet 20. februar 2007 Forfatter Del Skrevet 20. februar 2007 Du forandret den litt, og nå fikk jeg den til å fungere Tusen takk 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å