} else { include("dbconnect.php"); $result = mysql_query("SELECT * FROM users WHERE id = '$_SESSION[id]'"); while ($row = mysql_fetch_array($result)){ extract($row); ?>
$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'") or die (mysql_error()); $result_pw = mysql_query("select password from users where password = '$password'") or die (mysql_error()); $result_id = mysql_query("select * from users where id = '$id'") or die (mysql_error());
$array_user = mysql_fetch_array($result_user); $array_pw = mysql_fetch_array($result_pw); $array_id = mysql_fetch_array($result_id); if($array_user['brugernavn'] == $brugernavn AND $array_id['id'] == $id AND $array_pw['password']) {
altså if ($_POST["auto"] == "yes") { setcookie("cookie_brugernavn", $_SESSION['brugernavn'], time() + 60*60*24*180); setcookie("cookie_kodeord", $_SESSION['kodeord'], time() + 60*60*24*180); } det skal på login ok siden ikke? og skal if (isset($_COOKIE['cookie_brugernavn']) && isset($_COOKIE['cookie_kodeord'])) { $_SESSION['brugernavn'] = $_COOKIE['cookie_brugernavn']; $_SESSION['kodeord'] = $_COOKIE['kodeord']; } på alle sider?
den tjekker om 'cookie_brugernavn' og 'cookie_kodeord' findes. - og hvis de gør det, skal den fortælle at den skal give en session der hedder brugernavn værdien i ens cookie, og selvfølgelig det smame med kodeord. -------------------------
den tjekker om man har valgt autologin, og hvis man har det skal den sætte en cookie. og i dette tilfælde giver den en cookie navnet "cookie_brugernavn", og værdien bliver "$_SESSION['brugernavn']", og til sidst angiver vi hvor længe den cookie skal holde.
kodeord skal jo selvfølgelig lige ændres til password, da du kalder den for password.
Synes godt om
Slettet bruger
17. september 2005 - 16:36#7
plazm: ja, men man kan jo ikke læse andet end sit eget kodeord? :)
gandso skal det se sådan ud ? <?php if (isset($_COOKIE['cookie_brugernavn']) && isset($_COOKIE['cookie_kodeord'])) { $_SESSION['brugernavn'] = $_COOKIE['cookie_brugernavn']; $_SESSION['kodeord'] = $_COOKIE['kodeord']; } if(!$_SESSION["brugernavn"] AND !$_SESSION["password"] AND !$_SESSION["id"])
} else { include("dbconnect.php"); $result = mysql_query("SELECT * FROM users WHERE id = '$_SESSION[id]'"); while ($row = mysql_fetch_array($result)){ extract($row); ?>
login ok skriver Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 54
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 55
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 56 og i de linjer står der setcookie("cookie_brugernavn", $_SESSION['brugernavn'], time() + 60*60*24*180); setcookie("cookie_kodeord", $_SESSION['kodeord'], time() + 60*60*24*180); setcookie("cookie_id", $_SESSION['id'], time() + 60*60*24*180);
og så henter jeg det felt i databasen med brugernavn = cookie_brugernavn og så tester jeg om det pass der står i databasen md5("MinHemmeligeNøgleSomIngenKender".$_row['kodeord']) er det samme om står i cookie_pass
$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'") or die (mysql_error()); $result_pw = mysql_query("select password from users where password = '$password'") or die (mysql_error()); $result_id = mysql_query("select * from users where id = '$id'") or die (mysql_error());
$array_user = mysql_fetch_array($result_user); $array_pw = mysql_fetch_array($result_pw); $array_id = mysql_fetch_array($result_id); if($array_user['brugernavn'] == $brugernavn AND $array_id['id'] == $id AND $array_pw['password']) {
I stedet for at overtage computeren fysisk, så ses det tit, at en cookie bliver tyvstjålet via noget javascript-injection på sitet. Hvis man kan tillade at sætte en restrikion på den ip som kan benytte cookien, så er det også et skridt i den rigtig retning
ups :) men nu skriver den Parse error: parse error, unexpected T_ELSE in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 51 og i den linje står der else { kan ikke se hvad der er i vejen
Synes godt om
Slettet bruger
18. september 2005 - 11:32#21
Jeg vil skyde på at det er næsten nederst, så prøv med:
sådan nu er det fixet og jeg kan logge ind men nu skriver den
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 47
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 48
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 49
der står i de 3 linier setcookie("xmas_brugernavn", $_SESSION['brugernavn'], time() + 60*60*24*180); setcookie("xmas_password", $_SESSION['password'], time() + 60*60*24*180); setcookie("xmas_id", $_SESSION['id'], time() + 60*60*24*180);
if(empty($brugernavn) OR empty($password)) { echo 'Et af felterne er tomme'; } else { mysql_connect($mysql_host, $mysql_user, $mysql_pw); mysql_select_db($mysql_db);
$result_user = mysql_query("select brugernavn from users where brugernavn = '$brugernavn'") or die (mysql_error()); $result_pw = mysql_query("select password from users where password = '$password'") or die (mysql_error()); $result_id = mysql_query("select * from users where id = '$id'") or die (mysql_error());
den skriver stadig Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 53
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 54
Warning: Cannot modify header information - headers already sent by (output started at /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/index.php:8) in /customers/mr-xmas.dk/mr-xmas.dk/httpd.www/1/login-ok.php on line 55
Well, så må du sørge for at der ikke bliver skrevet noget som helst ud, ikke engang et mellemrum, i index.php før du har require'et login-ok. Eller bruge ob_start() i index.php
sådan ser koden ud til at login med <?php if (isset($_COOKIE['xmas_brugernavn']) && isset($_COOKIE['xmas_password']) && isset($_COOKIE['xmas_id'])) { $_SESSION['brugernavn'] = $_COOKIE['xmas_brugernavn']; $_SESSION['password'] = $_COOKIE['xmas_password']; $_SESSION['id'] = $_COOKIE['xmas_id']; } if(!$_SESSION["brugernavn"] AND !$_SESSION["password"] AND !$_SESSION["id"])
} else { include("dbconnect.php"); $result = mysql_query("SELECT * FROM users WHERE id = '$_SESSION[id]'"); while ($row = mysql_fetch_array($result)){ extract($row); ?>
jo den har lavet en hvor der står noget i men den logger bare ikke selv ind
Synes godt om
Slettet bruger
18. september 2005 - 21:50#51
Det har intet med placeringen af set_cookie at gøre. Du må bare komme igang med at læse koden igennem, og tjekke hvor mange tuborg klammer der ikke har en 'partner'.
ind ALLER øverst på din side.. altså inden for <?php
Synes godt om
Ny brugerNybegynder
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.