Gå til innhold

Bruker/passord sjekking


Anbefalte innlegg

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
Videoannonse
Annonse

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...