Avatar billede Slettet bruger
24. juni 2004 - 15:52 Der er 9 kommentarer

Ideer til login script

hej E. Jeg har et login script jeg arbejder på, og jeg prøver at gøre det så sikkert som muligt. Men jeg kan ike helt finde ud af hvordan jeg skal gøre det her: Man logger ind i en menu ude i venstre side. Derefter kommer der en lille brugermenu frem hvor der før var login form. Hvordan kan det gøres, så man også forbliver logget på indtil man forlader siden? Skal jeg bruge cookies? jeg behøver ikke noget færdigt script, bare ideer. Jeg kan ikke helt se det for mig... Nå men her er min kode:

<?php

ob_start();

?>
<html>
<head>
<title>Untitled Document</title>
</head>

<body>
<?php

$username = $_POST['qlogin'];
$username = mysql_escape_string($username);
$password = $_POST['xlogin'];
$logged = false;

mysql_connect("", "", "");
mysql_select_db("");

$query = mysql_query("SELECT * FROM login");

$data = mysql_fetch_array($query);

if(md5($password) == md5($data['password']) && $username == $data['username']){
$logged = true;
}else{
$logged = false;
}
if($logged == true){
header("Location: logged.php");
}
if($logged == false){
echo "Wrong username or password";
}

ob_end_flush();

?>

<form name="form1" method="post" action="<? $PHP_SELF ?>">
  <p align="center">
    <input name="qlogin" type="text" id="qlogin" value="Username" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">
  </p>
  <p align="center">
    <input name="xlogin" type="password" id="xlogin" value="Password" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">
  </p>
  <p align="center">
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<div align="center"></div>

</body>
</html>
Avatar billede jaw Nybegynder
24. juni 2004 - 15:56 #1
Du kan bruge sessions $_SESSION['bruger'] = brugerens_login, så vil brugeren indtil han lukker sin browser eller logger ud, være logget ind.

eks:
if(isset($_SESSION['bruger'])) {
  //login-menu
} else {
  //login-forms
}

Hvor du så i din nuværende kode kan sætte din sessions her:
if($logged == true){
$_SESSION['bruger'] = $data['username'];
header("Location: logged.php");
}
Avatar billede webcreator Nybegynder
24. juni 2004 - 15:56 #2
Jeg laver ofte mine login scripts sådan :

1) En form hvor brugernavn/password skrives (sendes til sig selv - $_SERVER["PHP_SELF"])
2) Tjekker i DB - hvis rigtig laves en session, og brugeren sendes til en ny side
3) På denne side inkluderes en fil ved navn check.php . Denne henter dataet fra mine sessions, og tjekker om brugernavn og password er korrekt. Hvis ikke, sendes brugeren tilbage til login.

Meget simpelt :)

Tjek eventuelt www.powerzone.dk og hente Easy WebManager. Denne indeholder et login script som gør brug af sessions.
Avatar billede webcreator Nybegynder
24. juni 2004 - 15:57 #3
Jaw > Synes det virker en smule usikkert kun at tjekke på om session eksistere. Man bør også tjekke dataet i dem.
Avatar billede webcreator Nybegynder
24. juni 2004 - 15:57 #4
Hov, beklager - lagde kun mærke til dit første eksempel.
Avatar billede Slettet bruger
24. juni 2004 - 16:10 #5
Okay. Noget af det jeg har mest problemer med er det med at vise en bruger menu. Hvordan skal det gøres? På samme side, eller skal jeg hente en anden side frem, der ser om man er logget ind?
Avatar billede Slettet bruger
25. juni 2004 - 11:50 #6
Jeg kan ikk helt få det med
if(isset($_SESSION['bruger'])) {
  //login-menu
} else {
  //login-forms
}

til at virke fordi at den tolker mit javascript som php pga. ';' tegnene! Hvad kan jeg gøre?
Avatar billede webcreator Nybegynder
25. juni 2004 - 11:54 #7
Få at få vist brugermenu i stedet for login, kan du lave en IF statement.

if ($login) {
    //  Vis menu
} else {
    //  Vis login
}

$login er så en variabel (eller session) der bliver sat når brugeren er logget korrekt ind.
Avatar billede webcreator Nybegynder
25. juni 2004 - 11:55 #8
Dit JS kan da ikke blive tolket som PHP ?! Du adskiller det jo med <?php ?>
Avatar billede Slettet bruger
25. juni 2004 - 13:07 #9
hvis jeg bruger:

echo '
<form name="form1" method="post" action="<? $PHP_SELF ?>">
  <p align="center">
    <input name="qlogin" type="text" id="qlogin" value="Username" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">
  </p>
  <p align="center">
    <input name="xlogin" type="password" id="xlogin" value="Password" onFocus="if(this.value==this.defaultValue)this.value='';" onBlur="if(this.value=='')this.value=this.defaultValue;">
  </p>
  <p align="center">
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
<div align="center"></div>
'; kan den ikke forstå at de ';' tegn høre til JS delen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester