Klette Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Holder på med en sak som skal sjekke brukernavn og passord fra en fil filen ser slik ut: user1:pass1 user2:pass2 Har laget denne, men har ikke fått testet den enda, ser den ok ut? Hva kan gjøres bedre/enklere/kjappere ? <?php session_start(); $lines = file('/home/pass.txt'); if(!$_SESSION["loggedin"] = "yes"){ foreach ($lines as $line_num => $line) { list($user,$pass) = explode(":",$line); if($user = $_POST['user']){ $userCorrect = true; } if($pass = $_POST['pass']){ $passCorrect = true; } if($userCorrect && $passCorrect) { $_SESSION["loggedin"] = "yes"; break; } } if(!$_SESSION["loggedin"] = "yes") { die("Wrong username or pass"); } } if($_SESSION["loggedin"] = "yes"){ echo "Min side"; } ?> Lenke til kommentar
???????? Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Pass på at if($variabel = "noe") betyr at hvis "noe" kan lagres i variabelen $variabel. != betyr ikke. Du trenger ikke å dele opp filen så mye, ta en kikk på denne: <?php session_start(); if($_SESSION['loggedin'] != "yes"){ $lines = file("pass.txt"); foreach($lines as $line){ if($line == $_POST['user'].":".$_POST['pass']){ $_SESSION['loggedin'] = "yes"; } } } if($_SESSION['loggedin'] != "yes"){ echo "Feil brukernavn eller passord!"; exit; } echo "Velkommen"; ?> NB: denne er ikke testet! Som du ser sjekker den bare om linjen er lik "user:pass", finner den en linje som matcher så lagres "yes" i sessionen. Lenke til kommentar
Klette Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Hvorfor tenkte jeg ikke på det? Tusen takk Lenke til kommentar
Klette Skrevet 11. februar 2004 Forfatter Del Skrevet 11. februar 2004 Kokte opp litt til ( litt tung koding, da jeg vil bruke noe av det til senere.. 1 <?php 2 session_start(); 3 4 if (!isset($_SERVER['PHP_AUTH_USER'])) { 5 header('WWW-Authenticate: Basic realm="Shootem up"'); 6 header('HTTP/1.0 401 Unauthorized'); 7 echo '<img src=/"http://www.ciboire.com/cartes/carte-61.jpg/">'; 8 exit; 9 } else { 10 $arrayU[1] = $_SERVER['PHP_AUTH_USER']; 11 $arrayU[2] = $_SERVER['PHP_AUTH_PW']; 12 13 $LineWant = implode("|", $arrayU); 14 15 echo $LineWant; // debug check 16 17 if($_SESSION['loggedin'] != "yes"){ 18 $lines = file("/home/m0d3/userdb.txt"); 19 foreach($lines as $line){ 20 if($line == $LineWant){ 21 $_SESSION['loggedin'] = "yes"; 22 23 } 24 } 25 } 26 ?> 27 28 <html> my page </html> 29 30 <?php } ?> Men denne feiler på sjekkinga om linja er lik :S ( de er like, sjekka med echo ... Lenke til kommentar
???????? Skrevet 12. februar 2004 Del Skrevet 12. februar 2004 Pass på at det ikke er noen tomme felter der ved å bruke trim(); 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å