Avatar billede sylvesternielsen Nybegynder
19. august 2002 - 14:36 Der er 12 kommentarer og
1 løsning

sikkerhed i login

Jeg har et brugersystem som jeg har lavet lidt sikkerhed til men jeg har lidt problemmer med det desværre. Normalt virker det men nogengange vil den bare ikke lukke en ind før man har været helt ude af systemet.

Jeg har lavet det med sessions og så en include af en fil som checker brugernavn og password samt om man er online i db.

Her er min include til check:

_______________________________________________________

<?
include ("database.php");
include ("../ban/ban.php");
session_start();
    mysql_connect("$db_host", "$db_user", "$db_pass");
    mysql_select_db("$database");
    $res = mysql_query("select * from combox where brugernavn='$brugernavn' and password='$password'");
    $stat = mysql_fetch_array($res);
    if (($stat < "1") || ($stat[statlogin] != "1")){
    header ("location: http://cbox.dk/mainsites/login.php?fib=$PHP_SELF");
    }
    if ($stat[ban] == "ja"){
    mysql_query("update combox set ip='$REMOTE_ADDR' where brugernavn='$brugernavn' and password='$password'");
header ("location: http://www.cbox.dk/ban/ban.php");
}
?>

______________________________________________________


Her er min loginside så:

______________________________________________________

<?
session_start();
session_destroy();
session_start();
include ("database.php");
$password = md5("$password");
mysql_connect("$db_host","$db_user","$db_pass");
mysql_select_db("$database");
$Record = mysql_query("SELECT * FROM combox WHERE brugernavn = '$brugernavn'  and password = '$password'") or die(mysql_error());
$row = mysql_fetch_array($Record);
if ($row){
$dato = time();
$row[statlogintid] ++;
// checker db for venner
$ven_com = mysql_query("SELECT * FROM venner WHERE ven='$brugernavn' and godkendt='ja'") or die(mysql_error());
// hvis der er venner
while ($ven = mysql_fetch_array($ven_com)){
// henter oplysninger om ven
$check = mysql_query("SELECT * FROM combox WHERE brugernavn='$ven[nick]'") or die(mysql_error());
$online = mysql_fetch_array($check);
// hvis ven er online
if ($online[statlogin] == "1"){
// skriv besked til bruger om at han er online
mysql_query("update venner set status='online', besked='Din ven $brugernavn er nu online' where id='$ven[id]'") or die(mysql_error());
}
}
    $res = mysql_query("select * from combox where brugernavn='djsaw'") or die(mysql_error());
    $online = mysql_fetch_array($res);
    if ($online[status] == "online"){
mysql_query("INSERT INTO `admin` ( `id` , `status` , `nick` , `head` , `besked` , `sektion` ) VALUES ('', 'ny', '$brugernavn', 'Bruger er online', '$brugernavn har logget på', 'online')");
}
mysql_query("UPDATE combox SET andenlogon='$row[sidstelogon]', statlogin='1', ip='$REMOTE_ADDR' WHERE brugernavn='$brugernavn'");
mysql_query("UPDATE combox SET statlogintid='$row[statlogintid]', sidstelogon='$dato' WHERE brugernavn='$brugernavn'");
session_register("brugernavn");
session_register("password");
header ("location: http://www.cbox.dk/mainsites/info.php");
}


Må jeg så høre hvad jeg skal gøre for at få det til at køre smertefrit?
Avatar billede dr.tynell Nybegynder
19. august 2002 - 14:39 #1
hvad er der galt lige nu?
Avatar billede sylvesternielsen Nybegynder
19. august 2002 - 14:39 #2
at den logger en ud af sig selv
Avatar billede dr.tynell Nybegynder
19. august 2002 - 14:42 #3
har du ikke selv skrevet koden?

Hvilken version af php kører den på?
Avatar billede sylvesternielsen Nybegynder
19. august 2002 - 14:43 #4
Har selv skrevet den jo...

den kører 4.2.2
Avatar billede dr.tynell Nybegynder
19. august 2002 - 14:43 #5
melder den ik fejl i nogen linier? og har du tjekket om alle dine variabler indeholder noget?
Avatar billede sylvesternielsen Nybegynder
19. august 2002 - 14:45 #6
ingen fejl. der er data i variablerne.
Avatar billede dr.tynell Nybegynder
19. august 2002 - 14:46 #7
så skal du bla. skifte $REMOTE_ADDR med $_SERVER['REMOTE_ADDR'] pga. http://www.php.net/release_4_1_0.php

Og dine variabler som bliver postet via en form skal du udskifte med: $_POST['variabel-navn']
Avatar billede sylvesternielsen Nybegynder
19. august 2002 - 14:47 #8
Det skulle ikke være nødvendigt.. har sat register globals = on i php.ini tror jeg nok den hedder
Avatar billede dr.tynell Nybegynder
19. august 2002 - 14:47 #9
... hvis de bliver sendt vha. post ellers er det $_GET['variabel-navn']
Avatar billede dr.tynell Nybegynder
19. august 2002 - 14:48 #10
nå oki, så kan jeg ikke lige overskue hvad der skulle være galt.
Avatar billede sylvesternielsen Nybegynder
19. august 2002 - 14:50 #11
Så er vi to.. men du kan da selv prøve at oprette dig på siden og surfe lidt rundt.. så kan det være at den gør det..

P.s. siden er ikke færdig endnu.

www.cbox.dk
Avatar billede sukos Juniormester
19. august 2002 - 21:12 #12
Prøv at droppe dit domæne i header:
header ("location: mainsites/info.php");
Har selv haft samme problem, og da jeg slettede domænenavnet i headeren, virkede det.
Måske en php.ini opsætning?
Avatar billede sylvesternielsen Nybegynder
22. august 2002 - 12:23 #13
det hjælper heller ikke desværre.
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