$query = "Select * from v_users where username='".@$HTTP_SESSION_VARS[id]."' And password = '".@$HTTP_SESSION_VARS[pass]."'"; $result = mysql_query($query);
if ($row = mysql_fetch_array($result)){ }else{
if ($rememberCookiePassword != "" && $rememberCookieUname != ""){
$query = "Select * from v_users where username='".$rememberCookieUname."'"; $result = mysql_query($query); if ($row = mysql_fetch_array($result)){
if (md5($row["password"]) == $rememberCookiePassword){
Problemet kommer i at brugeren bliver logget ud når han opdatere ting eller prøver at lave noget det går gennem en form. Man kan sagtens trykke rundt på alle links osv uden problemer, men hvis man f.eks. vil angribe en anden, skriver man id og trykker attack, så får man resultatet, men hvis man så vil trykke på main eller andre links bliver man logget ud.
Håber virkelig at der er en som forstår og kan hjælpe :)
Rettelse: hvis man f.eks. vil angribe en anden (et spil jeg har lavet), skriver man id og trykker attack, så får man resultatet rigtigt nok, men hvis man så bagefter vil trykke på main eller andre links bliver man logget ud.
Nej det er der ikke, men jeg tog en tutorial og læste om sessions or lærte det på den måde, hvordan kan jeg rette det, så det kommer til at virke med $_SESSION?
Det er ret nemt: session_start(); session_destroy();
kender du.. og de virker som du forventer.
session_register skal du glemme..
Når du skal gemme noget i en session: $_SESSION['etnavn'] = 'enværdi'; Når du skal bruge det igen: $_SESSION['etnavn']; Skal du fjerne et element: unset($_SESSION['etnavn']);
som du kan se, er det "bare" et array du arbejder med - borset fra at det gemmes i en session. Ligesom $HTTP_SESSION_VARS.
Du kan lave en lilel testfil, så du føler dig fortroligt med det: <?php session_start(); if( isset($_SESSION['count']) ) $num = $_SESSION['count']; else $num = 1;
print "Du har set denne side $num gange i denne session";
Men har du behov for session_destroy() ? Hvis folk logger ind, så er det vel fordi de ikke er kendt af dit system? Den virker lidt overflødigt.. Jeg bruger den kun, når folk trykker "logout" på min side.
1) Prøv øverst i dit brugertjek-script at skrive $_SESSION ud igen (lige efter session_start(). Er den ok? Hvis den er, så er fejlen i det script. Hvis ikke, så må det være et andet sted (der hvor de måske sættes).
2) Prøv at søge i dine filer efter $_SESSION, $HTTP_SESSION_VARS og list dem der bruger id her.. Der må være een af dem, der "kommer til" at ændre det. Bare tag hele skidtet.
dvs hvis du sætter print ind før/efter denne linje: $query = "Select * from v_users where username='".$_SESSION['id']."' And password = '".$_SESSION['pass']."'";
så får du een med rigtig $_SESSION['id'] og en forkert ?
men hvis det er kan du så ikke ændre det helt så det kommer til at virke...? Eller fortælle mig hvordan du ville lave login.php og membersonly.php, fordi vi kommer ikke rigtig nogen vejne :(
Så burde det jo virke. Hvis du vil se sourcen så kan du trykker på π. brugernavn/kodeord er "dennis". Jeg har skrevet DMP ved alle de linjer jeg har rettet i.
ja jeg kan også godt logge ind helt rigtigt med mit script, men der må ligge en fejl et sted så jeg tror jeg bliver nødt til at lave alt forfra...fordi problemet kommer når jeg trykke links osv. eller kommer gennem en form
så når jeg lavede det script, så blev min session[id] lavet om til brugerid istedet fr username og mna blev derfor logget ud, viste ikke det hang sådan sammen :)
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.