TheClown Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Heisann. Rota litt rundt i login-scripts som jeg fant her. Likte den ene veldig godt og hadde tenkt til å bruke den på siden min. MEN! Jeg vil gjøre slik at hver login-forsøk blir lagret i en .txt fil (både brukernavn og passord) Jeg vil ha en link på "hidden.php" som gjør slik at du logger ut og kommer tilbake til login.php <?php $user = 'admin'; $passwd = 'admin'; $hiddenpage = 'hidden.php'; // spiller ikke stor rolle om passordet er klartekst. kilden vil ikke være synlig med mindre php modulen til serveren crasher session_start(); // behandle innlogging if(isset($_POST['submit_login'])) { if(!strcmp($passwd, $_POST['password']) && !strcmp($user, $_POST['username'])) $_SESSION['innlogget'] = true; header("Location: ".$_SERVER['PHP_SELF']); } // hvis ikke innlogget, logge inn if(!isset($_SESSION['innlogget'])) { echo " <html> <head><title>Logg inn</title></head> <body> <table> <form action='' method='post'> <tr><td>Brukernavn:<td><input type='text' name='username' value=''> <tr><td>Passord:<td><input type='password' name='password' value=''> <tr><td align='center' colspan='2'><input type='submit' name='submit_login' value='Logg inn'> </form> </body> </html> "; // hvis innlogget, vis skjult side } else { include($hiddenpage); } ?> Åpne + skrive ideen min (gikk til helvette) $teller = ("logg.txt"); //her finner vi filen og opner den $besokende = file($teller); //her opner vi telleren $ny = fopen($teller , "w"); //her forteller vi telleren om den nye besøkende fputs($ny , $_POST['username'] && $_POST['password']); //lukker filen fclose($ny); Tatt fra et telle-script, har bare gjort om fputs($ny , $_POST['username'] && $_POST['password']); . Men logg.txt blir tom, og det skrives ingenting i den. login.php hidden.php logg.txt Håper på like godt svar her som det jeg har fått i de andre trådene! På forhånd, takk! Lenke til kommentar
Runar0 Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Jeg vil gjøre slik at hver login-forsøk blir lagret i en .txt fil (både brukernavn og passord) 8541454[/snapback] Hei, har ikkje tid til å se igjennom skripet ditt no, vil bare påpeike at å lagre alle forsøk til ei .txt fil er veldig farleg. Det er ikkje veldig vanskelig å finne fila og dermed få tilgang. Lenke til kommentar
Bakke Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 (endret) Idè til å logge innloggings forsøk (selv om det er farlig): PHP <?php $user = 'admin'; $passwd = 'admin'; $hiddenpage = 'hidden.php'; if(!$logg = fopen("logg.txt","a")) { die("Kunne ikke åpne loggfil..."); } $text = $user . " - " . $passwd . ""; if(!fwrite($logg,$text)) { die("Kunne ikke skrive til loggfil..."); } fclose($logg); ?> Endret 5. mai 2007 av mhbakke Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 (endret) Nå skjønner jeg ikke helt. Poenget er at teksten som brukeren fyller inn i: <tr><td>Brukernavn:<td><input type='text' name='username' value=''> <tr><td>Passord:<td><input type='password' name='password' value=''> <tr><td align='center' colspan='2'><input type='submit' name='submit_login' value='Logg inn'> Skal lagres der. . . Er det mulig å skjule de som er riktig? { if $_POST['username'] == "admin" {if $_POST['passord'] == "admin" die() } } eller noe i den dur? JEG ER VELDIG NOOB. . . Endret 5. mai 2007 av TheClown Lenke til kommentar
Ståle Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 (endret) de er jo skjult, for brukeren. Men hvis PHP modulen ikke blir loadet, vil hele kildekoden vises. du kan bruke md5() eller sha1() til a hashe passordet ditt. Det er en enveis hash, sa folk som far tak i den, far allivell ikke komme inn p siden din. lim inn det du far ut av sha1('admin'); inn der hvor du na har brukernavn/passord { if $_POST['username'] == "*her*" sa nar du sjekker om de har brukt riktig passord: if(!strcmp($passwd, sha1($_POST['password']) ... osv edit; du kunne jo lagre de passordene og brukernavnene som ble brukt hvis personen _ikke_ klarte a logge inn Mer sikkerhet, men allikevell ikke sa smart. Database kanskje. Endret 5. mai 2007 av Ståle Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 (endret) Hvis noen prøver å logge inn, f.eks en hacker. Som prøver mange forskjellige kombinasjoner med passord og brukernavn. Alle disse er feil og brukernavnene og passordene han skreiv blir listet opp i en tekstfil som jeg har laget. Men hvis jeg prøver å logge inn på siden og skriver både riktig passord og riktig brukernavn skives ingenting til tekstfila. Noen? Endret 5. mai 2007 av TheClown Lenke til kommentar
Bakke Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 (endret) PHP <?php $user = 'admin'; $passwd = 'admin'; $hiddenpage = 'hidden.php'; // spiller ikke stor rolle om passordet er klartekst. kilden vil ikke være synlig med mindre php modulen til serveren crasher session_start(); // behandle innlogging if(isset($_POST['submit_login'])) { if(!strcmp($passwd, $_POST['password']) && !strcmp($user, $_POST['username'])) $_SESSION['innlogget'] = true; header("Location: ".$_SERVER['PHP_SELF']); } else { if(!$logg = fopen("logg.txt","a")) { die("Kunne ikke åpne loggfil..."); } $text = $_POST['username'] . " - " . $_POST['password'] . " "; if(!fwrite($logg,$text)) { die("Kunne ikke skrive til loggfil..."); } fclose($logg); } // hvis ikke innlogget, logge inn if(!isset($_SESSION['innlogget'])) { echo " <html> <head><title>Logg inn</title></head> <body> <table> <form action='' method='post'> <tr><td>Brukernavn:<td><input type='text' name='username' value=''> <tr><td>Passord:<td><input type='password' name='password' value=''> <tr><td align='center' colspan='2'><input type='submit' name='submit_login' value='Logg inn'> </form> </body> </html> "; // hvis innlogget, vis skjult side } else { include($hiddenpage); } ?> Noe sånt? Vis login feiler blir brukernavn og passord lagret i loggen... Endret 5. mai 2007 av mhbakke Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 (endret) Nei, nå lagrer den passord og brukernavn (de rette) hver gang noen prøver å loge inn . . . Jeg tenkte på noe slikt: $usertext = $_POST['username']; $passordtext = $_POST['password']; Men da blir .txt fila bare: - Endret 5. mai 2007 av TheClown Lenke til kommentar
Bakke Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Jeg som tenkte feil Har oppdatert scriptet slik at den lagrer brukernavn og passord som brukeren skriver inn, dersom login feiler. Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 Men er det ikke mulig å få $_POST['username'] til å bli en vanelig $ som kan echoes? Lenke til kommentar
nree Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Jo? $username = $_POST['username']; echo "Brukernavn: $username"; Men det kan og gjøres slik: echo "Brukernavn: ".$_POST['username'].""; Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 Har prøvd det, kan linke deg reultatet straks. Har gjort om litt på scriptet, men har problemer med å forstå hva denne linja her egentlig sier: if(!strcmp($passwd, $_POST['password']) && !strcmp($user, $_POST['username'])) $_SESSION['innlogget'] = true; Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 (endret) Funnet en enkel metode! Login2.php <?php session_start(); echo " <html> <head><title>Logg inn</title></head> <body> <table> <form action='nextpage2.php' method='post'> <tr><td>Brukernavn:<td><input type='text' name='username' value=''> <tr><td>Passord:<td><input type='password' name='password' value=''> <tr><td align='center' colspan='2'><input type='submit' name='submit_login' value='Logg inn'> </form> </body> </html> "; ?> Nextpage2.php <? $user = "admin"; $passwd = "admin"; $hiddenpage = 'hidden.php'; // spiller ikke stor rolle om passordet er klartekst. kilden vil ikke være synlig med mindre php modulen til serveren crasher session_start(); // behandle innlogging { if(isset($_POST['submit_login'])) { if($_POST['password'] == $passwd && $_POST['username'] == $user) header("Location: $hiddenpage"); } { if($_POST['password'] !== $passwd && $_POST['username'] !== $user) { if(!$logg = fopen("logg.txt","a")) { die("Kunne ikke åpne loggfil..."); } $usernametext = $_POST['username']; $passwordtext = $_POST['password']; $text = $usernametext . " - " . $passwordtext . " " . "\n"; if(!fwrite($logg,$text)) { die("Kunne ikke skrive til loggfil..."); } fclose($logg); } echo "Feil passord og/eller brukernavn"; } } ?> Funker knuskefritt! :) Endret 5. mai 2007 av TheClown Lenke til kommentar
Ståle Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Jo? $username = $_POST['username']; echo "Brukernavn: $username"; Men det kan og gjøres slik: echo "Brukernavn: ".$_POST['username'].""; 8543011[/snapback] Eller, som ogsa er en pagaende diskusjon, echo "Brukernavn: {$_POST['username']} Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 Men folkens! Nå trenger jeg hjelp til logav-script bassert på det jeg har skrevet ovenfor. Linken/knappen skal være på hidden.phh Lenke til kommentar
Ståle Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 (endret) if ( isset( $_POST['loggav'] ) ) { unset( $_SESSION['innlogget'] ); } Endret 5. mai 2007 av Ståle Lenke til kommentar
Martin A. Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Du har fortsatt noen feilplasserte {, og noen unødvendige if'er. Og ikke minst, short-tags ( <? ). <? //Shorttags er djevelens verk. Bruk <?php session_start(); $user = "admin"; $passwd = "admin"; $hiddenpage = 'hidden.php'; if ( isset ( $_POST['submit_login'] ) ) { $username = $_POST['username']; $password = $_POST['password'] if($password == $passwd && $username == $user) { header ( "Location: $hiddenpage" ); exit; //Bruk alltid exit etter du har sendt en // header Location eller Refresh } else { if( ! $logg = fopen ( "logg.txt", "a" ) ) { die ( "Kunne ikke åpne loggfil..." ); } $text = "{$username} - {$password}\n"; if( ! fwrite ( $logg, $text ) ) { die ( "Kunne ikke skrive til loggfil..."); } fclose ( $logg ); die ( "Feil passord og/eller brukernavn"; } } else { header ( "Location: Login2.php" ); exit; } ?> Lenke til kommentar
TheClown Skrevet 5. mai 2007 Forfatter Del Skrevet 5. mai 2007 <? echo " <input type='submit' name='Loggav' value='Logg av' action='login2.php' method='post'> </form> "; if(isset($_POST['Loggav'])) { unset( $_SESSION['innlogget'] ); } ?> Funker ikke, hva er feil? Lenke til kommentar
Martin A. Skrevet 5. mai 2007 Del Skrevet 5. mai 2007 Du setter aldri $_SESSION['innlogget'] i Nextpage2.php. Legg til $_SESSION['innlogget'] = TRUE; rett før header("Location: $hiddenpage");. Sjekker du i hidden.php om $_SESSION['innlogget'] er satt til TRUE? Om du ikke gjør det er hele loginformen totalt unødvendig, da hvemsomhelst har tilgang til den siden uansett. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå