Gå til innhold

Problemer med login


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

Desverre så har eg ikke ferdigheter nok til å mekke et slikt script selv, siden eg nettopp begynnte med PHP denne uken... ;)

 

Så, fikk du scriptet til? eller er det ingen som gidder å prøve?

Skrevet (endret)

Uff, skal gjøre noe jeg ikke liker å gjøre, men dog.. Her er et eksempel.

 

Her hentes brukernavn og passord fra en flatfil i formatet "bruker|passord" på hver linje.

 

<?php 
session_start();

if (!isset($_SERVER['PHP_AUTH_USER'])) {
  header('WWW-Authenticate: Basic realm="Shootem up"');
  header('HTTP/1.0 401 Unauthorized');
  echo '<img src=/"http://www.ciboire.com/cartes/carte-61.jpg/">';
  exit;
 } else {  
$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
if($_SESSION['loggedin'] != "yes"){
$lines = file("userdb.txt");
foreach($lines as $line){
  if(trim($line) == $user."|".$pass){
    $_SESSION['loggedin'] = "yes";
    $_SESSION['username'] = $_SERVER['PHP_AUTH_USER'];
    $_SESSION['LoginTime'] = time();
  }
}
}

if($_SESSION['loggedin'] != "yes"){
echo "<img src='http://www.ciboire.com/cartes/carte-61.jpg'>";
exit;
}
?>

 

 

Vær nå snill å bruk dette kun som eksempel, og lag ditt eget script!

Endret av Klette
Skrevet

Foreslår at du leser en tutorial om login script.

Login script er veldig enkelt å lage og krever ganske lite ferdigheter, ganske fint å mekke når man er ny i php. Var noe av det første jeg lærte meg faktisk etter standard Hello world. Du vil bli overrasket over hvor lett det egentlig er.

Skrevet

Ja det blir en helt annen sak.

Men et enkelt login script for ikke så veldig sensitiv informasjon, som det mest sannsynligvis er snakk om er jo greit.

Er jo ikke så mange som trenger det absolutt mest sikre som er mulig.

Skrevet

Hvordan kan eg på medlems sidene sjekke om brukeren er logget inn eller ikke? Og eventuellt hindre folk å kunne åpne disse sidene i text editorer og lignende?

Skrevet

PHP scripts kan ikke åpnes i en text editor, kun et eventuelt output (som html siden) kan åpnes.

 

Det finnes mange måter å lage et logginn script. Skal du ha et lite enkelt logginn script kan du bruke scriptet til Klette, men det er ikke det sikreste i verden :)

 

Skal du lage det tryggere legger du inn passordet (kryptert) og brukernavnet i en session og sjekker dette på hver side. Videre kan du implementere info om brukeren, som ip adresse ol., i sessionen for å passe på at brukeren virkelig er brukeren. Søk litt på forumet så finner du litt diskusjon om dette.

Skrevet

Uansett hvor sikkert du prøver å gjøre det, koker hele greien uansett ned til et passord. Uansett er det mulig å få tak i passordet via social engineering.

Skrevet (endret)

Eg har allerede et login script som fungerer, men eg må ha en eller annen kode i begynnelsen av hver av sidene som kun skal være tilgjengelige for medlemmer som er logget inn?

 

Og BTW; ser dere noe feil i denne login koden? får ikke logget inn...

 

 <?PHP 

if (!isset($_POST['username']) || !isset($_POST['password'])) { 
header( "Location: index.html" ); 
exit;
} 

elseif (empty($_POST['username']) || empty($_POST['password'])) { 
header( "Location: index.html" ); 
exit;
}  

$user = addslashes($_POST['username']); 
$pass = md5($_POST['password']); 

$dbHost = "127.0.0.1"; 
$dbUser = "root"; 
$dbPass = ""; 
$dbDatabase = "member"; 
$dbTabel = "login";

$db = mysql_connect("$dbHost", "$dbUser", "$dbPass") or die ("Error connecting to database."); 

mysql_select_db("$dbDatabase", $db) or die ("Couldn't select the database."); 

$result = mysql_query("select * from $dbTabel where username='$user' AND password='$pass'", $db); 

$rowCheck = mysql_num_rows($result); 
if($rowCheck > 0){ 
while($row = mysql_fetch_array($result)){ 

 session_start(); 
 session_register('username'); 

header( "Location: members.php" ); 
 } 

 } 
 else { 

 echo 'Incorrect login name or password. Please try again.'; 
 } 
?> 

Endret av _TT_
Skrevet

Eg har allerede et login script som fungerer, men eg må ha en eller annen kode i begynnelsen av hver av sidene som kun skal være tilgjengelige for medlemmer som er logget inn?

Skrevet

Glem det, eg fannt ut av det.

 

Men den koden tidligere... den får en kompis av meg til å kjøre på sin server, men eg får bare feil hele tiden. Er det noen spesielle instillinger i php eller mysql den koden trenger?

Skrevet

Programmet går til 'Incorrect login name or password. Please try again.' uansett om eg skriver inn riktig eller galt brukernavn/pass.

Skrevet

Fannt også lignende feil ved registrering av bruker. En kan skrive inn samme brukernavn to ganger, uten at den programmet merker det, noe den er programmert til å gjøre da selfølgelig.

 

 <?php

$adresse = "127.0.0.1";
$brukernavn = "root";
$passord = "";
$dbnavn = "member";
$tabell = "login";

$user = addslashes($_POST['user']); 
$pass = md5($_POST['pass']); 

$connect = mysql_connect ("$adresse", "$brukernavn", "$passord") or die ("Her dør vi i oppkoblinga");
$sjekk = "select * from $tabell WHERE username='$user'"; 
$sjekk2 = mysql_db_query ($dbnavn, $sjekk, $connect);

$rowCheck = mysql_num_rows($sjekk2); 
if($rowCheck > 0){  
echo "Brukernavnet finnes";
exit;
}

$action = "INSERT into $tabell values ('0', '$user', '$pass')";

if (mysql_db_query ($dbnavn, $action, $connect)) {
header( "Location: index.html" ); 
  exit;
 }else{ print("En feil oppstod under registrering. Vennligst prøv på nytt senere.\n"); }
mysql_close ($connect);


?> 

Skrevet (endret)

Først av alt, ikke bruk mysql_db_query:

"This function has been deprecated since PHP 4.0.6. Do not use this function." - fra manualen.

 

Edit: bruk mysql_connect, mysql_select_db og mysql_query

 

Hvis du vil passe på at ikke to brukernavn er like, så gjør feltet unikt:

ALTER TABLE `tabellnavn` ADD UNIQUE (brukernavn)

Da er det ikke mulig å sette inn to like verdier.

 

Ta en kikk på:

http://www.mysqlfreaks.com/mysql_errors.php

Endret av ????????

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å
×
×
  • Opprett ny...