Avatar billede cyfer Nybegynder
11. januar 2003 - 15:49 Der er 7 kommentarer og
1 løsning

Login... Hvad er fejlen?

Hejsa.
Jeg har lavet et login-system som bruger MySQL database til at tjekke bruger og password.

På de sider jeg beskytter putter jeg <?php include("accesscontrol.php");?>

ACCESSCONTROL ser således ud:
http://cyfer.frip.dk/koden.htm

For at se hvad der sker, så log ind her med
http://cyfer.frip.dk/base/loginsystem/login.php
BRUGER: test
PASSWORD: pass

Den står bare og arbejder, men hvis i umidelbart efter i har trykket login trykker opdater. Så bliver man lukket ind.

Hvad kan der være galt?
Avatar billede bacce.dk Nybegynder
11. januar 2003 - 15:57 #1
hmm du skriver følgende i din kode
if(!isset($uid)) {

var det ikke smart at lukke denne med en } INDEN du registrerede dine sessions
det er højest tænkeligt fordi den ik kan finde rundt i det hele
Avatar billede bacce.dk Nybegynder
11. januar 2003 - 15:58 #2
det er netop derfor du kan komme ind bagefter hvis man trykker F5 for så har den fået sat $uid
Avatar billede cyfer Nybegynder
11. januar 2003 - 15:59 #3
Hmm..
Gør jeg ikke også det her? :
<?php  exit;}

Hvis ikke.. Hvor skal jeg så lukke den med }  ?
Avatar billede bacce.dk Nybegynder
11. januar 2003 - 16:00 #4
hmm glem lige min post ser at der er op til flere }
de er bare svære at se på den skod html side :-))
du burde poste koden her i stedet, det gør det nemmere at læse
Avatar billede cyfer Nybegynder
11. januar 2003 - 16:02 #5
Det gør jeg så. Har bare fået fornemmelsen af at folk helst vil undgå det:
----

<?php // accesscontrol.php

include("common.php");
include("db.php");

session_start();

if(!isset($uid)) {
  ?>
<body bgcolor="#FFFFFF" text="#000000">
<form name="tag" method="post" action="<?=$PHP_SELF?>">
  <p>du skal logge ind <br>
    login
    <input type="text" name="uid">
    <br>
    password
    <input type="text" name="pwd">
  </p>
  <p><input type="submit" value="Login"></p>
</form>
<?php exit;}
session_register("uid");
session_register("pwd");
dbConnect("cyfer");$sql = "SELECT * FROM members WHERE name = '$uid' AND password = PASSWORD('$pwd')";$result = mysql_query($sql);if (!$result) {  error("A database error occurred while checking your ".        "login details.\\nIf this error persists, please ".        "contact cyfer@adslhome.dk.");}
if (mysql_num_rows($result) == 0) {  session_unregister("uid");  session_unregister("pwd");  ?>
<form name="tag" method="post" action="<?=$PHP_SELF?>">
  <p>forkert pass<br>
    login
    <input type="text" name="uid">
    <br>
    password
    <input type="text" name="pwd">
  </p>
  <p><input type="submit" value="Login"></p>
</form>
<?php  exit;}
$userdata = mysql_fetch_array($result);
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['uid']) && isset($_POST['pwd'])){
header("Location: $PHP_SELF");
exit;
}
?>
Avatar billede cyfer Nybegynder
11. januar 2003 - 17:28 #6
Plz hjælp mig... Jeg kan ikke selv gennemskue fejlen :\
Avatar billede cyfer Nybegynder
11. januar 2003 - 21:25 #7
Det var da ligegodt utroligt så dårlig eksperten er blevet.
Man kan jo ingen hjælp hente her.
Det er 2. gang jeg laver dette spm.

Og alligevel er der kun 1 person som viser interesse, og derefter lader det være ved 2 kommentarer!
Avatar billede cyfer Nybegynder
02. august 2003 - 17:42 #8
Lukker!
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