Gå til innhold

Login Script | Legg til loggføring + logav "knapp"


Anbefalte innlegg

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
Videoannonse
Annonse
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

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 av mhbakke
Lenke til kommentar

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. . . :p

Endret av TheClown
Lenke til kommentar

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 av Ståle
Lenke til kommentar

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 av TheClown
Lenke til kommentar

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 av mhbakke
Lenke til kommentar

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 av TheClown
Lenke til kommentar

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

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 av TheClown
Lenke til kommentar

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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...