17. oktober 2004 - 10:47Der er
61 kommentarer og 1 løsning
auto login? igen..
hey ;D.. nu er det anden gang jeg opretter dette spg, da i det sidste spg var kun en der svarede og han kunne desværre ikke klare det. Så nu hvis der er en igang med at hjælpe mig må i også godt prøve ;)
jeg vil gerne have en husk login på min loginformular.. det skal være sådan at vis der er sat "flue ben" i husk login på login siden skal den på nedenstående kode sætte en cookie. nedenstående kode er den sidem an bliver sendt til ved at trykke login på loginsiden.. nedenstående kode tjekker kode og brugernavn.
if ($_POST['system'] == 'login') { session_start();
$kode = md5($_POST["kode"]);
$result = mysql_query("SELECT * FROM brugere WHERE brugernavn='$_POST[brugernavn]' AND kode='$kode'") or die(mysql_error());
hvis der var en der kunne lave dette ville jeg blive mega glad..
så på forsiden, i nedenstående kode, skal den tjekke om der finde en cookie fra login siden, hvis der gør det skal den åbne frameset.php, hvis ikke skal den åbne main.php .. koden:
$tjek = mysql_query("SELECT id, brugernavn, kode FROM brugere WHERE brugernavn='". $_COOKIE["brugernavn"] ."' AND kode='". $_COOKIE["password"] ."'") or die(mysql_error());
Efter login, kan du jo prøve at gemme flg. i en ny fil:
<?php session_start();
if(isset($_COOKIE["username"], $_COOKIE["password"])) { // HUSK CONNECT TIL DB !!! $tjek = mysql_query("SELECT id, brugernavn, kode FROM brugere WHERE brugernavn='". $_COOKIE["brugernavn"] ."' AND kode='". $_COOKIE["password"] ."'") or die(mysql_error());
if(isset($_COOKIE["username"], $_COOKIE["password"])) { // HUSK CONNECT TIL DB !!! $tjek = mysql_query("SELECT id, brugernavn, kode FROM brugere WHERE brugernavn='". $_COOKIE["brugernavn"] ."' AND kode='". $_COOKIE["password"] ."'") or die(mysql_error());
skal jeg bruge den der hvor mit frame er på index? hvor det her er: <FRAMESET frameSpacing=0 frameBorder=0 cols=0><FRAME name=index src="main.php" noResize scrolling=no></FRAMESET>
Med den kode som er indtil nu, vil der jo ved hver request blive tjekket for om en cookie er sat, og er den det, laves et opslag på DB. Det er jo nok unødvendigt, hvis du allerede har gjort det en gang, og kan undgås ved at sætte en session, når opslag er lavet.
Hvis man logger ind og sætte autologin til kommer man der ind hvor man skal.. så hvis man opdatere index.php i samme vindue er man stadig logget ind, men hvis man lukker vinduet og åbner et nyt og går ind på http://j.woox.dk er man ikke automatisk logget ind.. ved ikke hvilken fil fejlen kan ligge i, men så må jeg vente til du er her igen.
Hvad mener du med at vise noget kode? Vil du have index koden, hvor den tjekker om cookien er sat?
index.php:
<?php session_start();
if(isset($_COOKIE["username"], $_COOKIE["password"])) { include('sql.php'); $tjek = mysql_query("SELECT id, brugernavn, kode FROM brugere WHERE brugernavn='". $_COOKIE["brugernavn"] ."' AND kode='". $_COOKIE["password"] ."'") or die(mysql_error());
Har du et link? Denne linie: mysql_query("UPDATE brugere SET online= '1', sidst_login= now() WHERE id=".$_SESSION[userid]."") or die(mysql_error()); er også forkert
mysql_query("UPDATE brugere SET online= '1', sidst_login= now() WHERE id='".$_SESSION["userid"]."'") or die(mysql_error());
Din linje virker fint nok. og ja det skal være now(). linket er http://j.woox.dk Der henter den så, i et frame en side hvor der står noget og er 2 iframe, en med login.php og en med opret.php .. når man så i login.php trykker login går den til siden system_af.php hvor den tjekker om det er opret eller login man har gjort og udføre så, når man trykker login den kode jeg skrev længere oppe.
if(isset($_COOKIE["username"], $_COOKIE["password"])) { include('sql.php'); $tjek = mysql_query("SELECT id, brugernavn, kode FROM brugere WHERE brugernavn='". $_COOKIE["brugernavn"] ."' AND kode='". $_COOKIE["password"] ."'") or die(mysql_error());
$result = mysql_query("SELECT brugernavn FROM brugere WHERE brugernavn='$brugernavn'") or die(mysql_error());
if(mysql_num_rows($result) > 0) {
echo "<meta http-equiv=\"Refresh\" content=\"0;URL=opret.php?opretfejl=Brugernavnet er optaget\">";
}else {
if ($kode != $kode1) {
echo "<meta http-equiv=\"Refresh\" content=\"0;URL=opret.php?opretfejl=De 2 koder var ikke ens!\">";
}elseif (!preg_match('#^[a-zA-ZæøåÆØÅ0-9 ]+$#',$brugernavn)) { echo "<meta http-equiv=\"Refresh\" content=\"0;URL=opret.php?opretfejl=Du må ikke have ulovlige tegn i dit brugernavn!\">"; } else { if (!preg_match("/^([\w|\.|\-|_]+)@([\w||\-|_]+)\.([\w|\.|\-|_]+)$/i",$_POST['email'])) { echo "<meta http-equiv=\"Refresh\" content=\"0;URL=opret.php?opretfejl=Skriv en gyldig e-mail!\">"; } else {
mysql_query("INSERT INTO brugere (brugernavn, kode, alder, sex, email, sidst_login, ip, oprettet) VALUES ('$brugernavn','$kode','$alder','$sex','$email',now(),'$ip',now())") or die(mysql_error());
$besked = "Velkommen som bruger af CMAU.DK\n\nHer er dine oplysninger:\n\nBrugernavn: $_POST[brugernavn]\nKode: $_POST[kode1]\n\nHusk du kan ikke få dine oplysninger igen! Så gem dem i en fil på din computer, som ingen andre end dig kender til.\n\nVi ses på siden. Hyg dig!\n\nM.v.h\nTeam CMAU.DK";
mail('','Oprettelse som bruger på CMAU.DK',$besked,"BCC: $email\nFrom: CMAU.DK <noreplay@cmau.dk>");
echo "<meta http-equiv=\"Refresh\" content=\"0;URL=opret.php?opretok=Din bruger blev oprettet rigtigt!\">"; } } } } exit; } ?>
i begge skal lige vide at grunden til at jeg skriver fra både cmau og wqazr er, er at når jeg åbner exp.dk er jeg automatisk logget ind, på wqazr, som jeg ikke kan finde ud af at få den til at lave være med. og nogle gange glemmer jeg at logge ud og logge ind på cmau..
wqazr/cmau: Men har du selv oprettet begge brugere?
For at løse problemet kan du prøve at logge helt ud af Eksperten, og så slette din cookie her fra Eksperten. Når du så igen åbner Eksperten i din browser, så skulle du gerne blive bedt om at logge ind, og så logger du så ind med den rigtige bruger.
Ja jeg har oprettet begge brugere selv, pga. da jeg oprettede wqazr var han sat til en af mine venners email også tog han på ferie i 3 uger og jeg havde glemt kode og kunne jo ikke få den tilbage igen, pga. det var ik min mail. Så fik jeg virkelig brug for hjælp, til noget ingen andre jeg kendte kunne hjælpe mig med også oprettede jeg cmau. Da så min ven kom tilbage fik jeg koden til wqazr og lavede auto login på ham. Da jeg så prøvede at logge af fordi jeg ikke ville have auto login mere var det bare sat til hver gang jeg åbnede exp.dk aligevel. Men har lige fået hjælp af en af mine venner til at sætte alle cookies på min computer, så nu vil jeg kun bruge cmau.
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.