Mr.Postman Skrevet 18. juli 2012 Del Skrevet 18. juli 2012 (endret) Hei, jobber med et enkelt php login script som ser sånn ut: &--#60;?php if (isset($_REQUEST['attempt'])) { $link = mysql_connect('#', '#', '#') or die('Cant connect to database'); mysql_select_db('#'); $user = mysql_real_escape_string($_POST['user']); $password = sha1(mysql_real_escape_string($_POST['password'])); $query = mysql_query(" SELECT user FROM users WHERE user = '$user' AND password = '$password' ") or die(mysql_error()); $total = mysql_num_rows($query); if ($total &--#62; 0) { session_start(); $_SESSION['user'] = "blah"; header("Location: logs.php"); } else { echo "Fuck You"; } } ?&--#62; og logs.php... if (!isset($_SESSION['user'])) { header("Location: login.php"); } ?&--#62; Brukeren jeg har i databasen heter skillew. Når jeg trykker login med rett passord og brukernavn så blir jeg direkte retunert til samme side, altså login.php Dersom jeg trykker login med feil passord og brukernavn så kommer "Fuck You" opp, akkuratt som planlagt. Noen som kan hjelpe? I tillegg vil jeg ha noe problem med å skrive til logs.php uten login detaljene med en annen php fil? Diverse send.php Endret 18. juli 2012 av Mr.Postman Lenke til kommentar
Thomas. Skrevet 18. juli 2012 Del Skrevet 18. juli 2012 Du mangler session_start() øverst i logs.php. Lenke til kommentar
Værktøy Skrevet 5. august 2012 Del Skrevet 5. august 2012 For å si det slik, ville jeg satt "session_start();" i alle dine php filer fordi det er du bruker. Er ikke session_start() der virker ikke session. Også sett "$_SESSION['user'] = "blah";" til $_SESSION['user'] = true;" siden du skjekker om den er "false." Eller, endre "if (!isset($_SESSION['user']))" til "if ($_SESSION['user'] == ""){." BTW, session_start() MÅ være øverst i dokumentet før noen annen ting. Lenke til kommentar
Crowly Skrevet 7. august 2012 Del Skrevet 7. august 2012 (endret) session_start() må strengt tatt kun være før noen annen output: To use cookie-based sessions, session_start() must be called before outputing anything to the browser. -- Ikke bruk $_REQUEST, du har ikke kontroll på hvor informasjonen kommer i fra. $_REQUEST inneholder alt fra $_COOKIE, $_POST og $_GET Endret 7. august 2012 av Crowly Lenke til kommentar
Spenzer Skrevet 10. september 2012 Del Skrevet 10. september 2012 (endret) Som Crowly sier, så spesifiser om du for eks. bruker HTTP post. Da skriver du for eks.: if (isset($_POST['attempt'])) Og når det kommer til å definere en session variabel etter pålogging er akseptert, så er jeg ikke enig med thypthon^ det er ganske greit å lagre bruker id'en til den personen som logger seg på. Se eksempel: $total = mysql_num_rows($query); $obj = mysql_fetch_object($query); if ($total &--#62; 0) { $_SESSION['uid'] = $obj-&--#62;id; header('Location: logs.php'); } For at dette skal fungere må du legge til et felt i tabellen din som heter ID med auto_increment som er en primærnøkkel, ettersom den alltid vil være unik. Du må også huske å legge til feltet i sql queryen ($query variabelen). Endret 10. september 2012 av Spenzer 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å