Gå til innhold

PHP OOP admin/login script.


Gjest

Anbefalte innlegg

Hei!

 

Sitter nå igjen fast med PHP OOP admin/script.

 

<?php require_once("initialize.php"); ?>
<?php

class Admin 
{


function loginform() {
$action = $_GET['action'];
echo '<form name="Login" method="post" action="admin.php?action=Login">';
echo 'Brukernavn: <input type="text" name="brukernavn"/><br/>';
echo 'Passord: <input type="password" name="passord"/><br/>';
echo '<input type="submit" value="Login">';
echo '</form>';
}

function login($brukernavn="", $passord="") {
if ($_GET['action'] == "login"){
if($_POST['brukernavn'] && ($_POST['passord'])){
global $db;
global $user;
$brukernavn = $db->escape_value($brukernavn);
$passord = $db->escape_value(sha1(md5($password)));
$result = $db->query("SELECT * FROM ".self::$table_name." WHERE brukernavn = '".$brukernavn."' AND passord = '".$passord."' LIMIT 1");
if($db->num_rows($result) < 1){
$object->message = 'Feil brukernavn eller passord!'; 
echo warning($object->message); 
return false;
}else{
$result = $db->query("SELECT fornavn, etternavn FROM brukere");
while($row = $db->fetch_array($result, MYSQL_ASSOC)){
$fornavn = $row['fornavn'];
$etternavn = $row['etternavn'];
}
$object->message = ('Du er nå logget inn som: '.$fornavn.' '.$etternavn);
echo success($object->message); 
return true;
}
}
}
}

function error(){

}


}
?>

 

Som du ser så er den koden litt rotet ja.

Blandt annet her:

if($db->num_rows($result) < 1){
$object->message = 'Feil brukernavn eller passord!'; 
echo warning($object->message); 
return false;
}else{
$result = $db->query("SELECT fornavn, etternavn FROM brukere");
while($row = $db->fetch_array($result, MYSQL_ASSOC)){
$fornavn = $row['fornavn'];
$etternavn = $row['etternavn'];
}
$object->message = ('Du er nå logget inn som: '.$fornavn.' '.$etternavn);
echo success($object->message); 
return true;
}

Hvis du ser den siste funksjonen:

	function error(){

}

Så har jeg lyst til å kode en egen klasse for error når du logger inn. F.eks glemmer å fylle ut passord feltet.

Hvordan kan jeg da sette opp en variabel som er en array som printer ut alle error meldingene med denne koden:

echo success($object->message);

(Koden over er allerede kodet i en annen funksjon fil og henter meldingen i denne filen hvis jeg har satt en melding. Variablen ønsker som skal være en array skal hete message som inneholder alle feil ;)

 

håper du skjønner hva jeg mener :):D

Lenke til kommentar
Videoannonse
Annonse
Så har jeg lyst til å kode en egen klasse for error når du logger inn. F.eks glemmer å fylle ut passord feltet.

Hvordan kan jeg da sette opp en variabel som er en array som printer ut alle error meldingene.

Det du vil ha er en matrise (array) i objektet og når det oppstår en feil så legger du til et feilobjekt med koden

 

class T_Error_object{
 function __construct($message, $fatal=false)
 {
$this->message = $message;
if($fatal===true)
{
  die($message);
}
 }
}

if(empty($password))
{
 $this->error[]=new T_Error_object("Du har glemt å fylle ut passordet.");
}

 

Så, når du sjekker etter feil så gjør du det slik:

 

  if(!empty($this->error))
 {
foreach($this->error as $error)
{
  echo($error->message);
}
 }

 

Håper det hjelper.

Lenke til kommentar
Litt av (ganske mye etter min mening) poenget med OOP og klasser forsvinner når du tvinger HTML ut av funksjonene i klassen.

Hvis du har noe bedre forslag så hvis det fram da? =P

Lenke til kommentar

Det er bare å søke etter "php login class" på f.eks. Google, så finner du mer enn nok av eksisterende klasser du enten kan kopiere eller bruke som inspirasjon.

 

Jeg kan kanskje ikke vise frem et eksempel på en selvsagt versjon av klassen du er ute etter, men jeg har holdt på med dette lenge nok til å vite at man skal skille html output og php, kort fortalt.

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...