Login fejl !
Hej jeg har et problem når jeg logger ind med mit login system ryger jeg bare hen på login igen hvorfor det ?<script>
var registrerUrl = "login.php?registrer=ja";
var tilbageUrl = "login.php";
var regtilbageUrl = "login.php?registrer=ja";
var logudUrl = "login.php?logud=ja";
var visbrugereUrl = "login.php?visbrugere=ja";
var slet = "Er du sikker på at du vil slette denne person??";
function checkLogin()
{
if(document.loginform.brugernavn.value == '' || document.loginform.password.value == ''){
alert('Du skal udfylde det hele');
return false;
}else{return true;}
}
function checkReg()
{
if(document.regform.brugernavn.value == '' || document.regform.password.value == ''){
alert('Du skal udfylde det hele');
return false;
}else{return true;}
}
</script>
<?php
/*
START VARIABLER
*/
$session = $_SESSION['li']; // Lægger sesionen over i variablen $session
$bruger_filen = "brugere.inc"; // Skriv hvilken fil brugerne skal gemmes i
$antal_brugere = count(file("$bruger_filen")); // Tæl hvor mange brugere der er i filen
// Tjek antal brugere og skriv en ordenlig endelse ind i variablen $enden
if($antal_brugere < 2){$enden = "bruger";}else{$enden = "brugere";}
echo "<center>\n"; // Laver et simpelt html tag.
/*
STARTSIDE
*/
if($session && !$_GET['visbrugere']) // Hvis brugeren er logget ind behøver vi jo kun at sige det til ham/hende.
{
echo 'Du er logget ind som: '.$session.'; <input type="button" onclick="window.location = visbrugereUrl" value="Vis brugere"><input type="button" onclick="window.location = logudUrl" value="Logud">';
}
elseif(!$_GET['login'] && !$session && !$_GET['registrer'] && !$_GET['visbrugere']) // Men hvis ikke så hvis ham/hende den startside.
{
echo '
<h1>Login</h1>
<form action="?login=ja" name="loginform" method="POST" onsubmit="if(checkLogin()){return true}else{return false}">
Brugernavn: <input type="text" name="brugernavn">
<br>
Password: <input type="password" name="password">
<br>
<input type="submit" name="submit" value="Login"><input type="button" onclick="window.location = registrerUrl" name="submit" value="Registrer">
</form>Der er oprettet '.$antal_brugere.' <a style="color:black;" href="?visbrugere=ja">'.$enden.'</a>';
}
/*
LOGIN
*/
if($_GET['login'] == 'ja' && !$session && isset($_POST['submit'])) /* Hvis den skal logge ind og brugeren ikke i forvejen er logget ind
og der er trykket på login knappen så: */
{
$brugernavn = $_POST['brugernavn']; // Hent det indskrevne brugernavn.
$password = $_POST['password']; // Hent det indskrevne password.
$linjer = file("$bruger_filen"); // Læg alle linjerne i $bruger_filen ind i et array.
// Hvis filen med brugerne ikke er der så opret den
if(!file_exists("$bruger_filen")){$fext = fopen("$bruger_filen","w+");fclose($fext);}
// Start med at tjekke om brugeroplysningerne passer
foreach($linjer as $linje) // Tager hver linje en ad gangen
{
$linjetrim = rtrim($linje); // Trimmer slutningen for mærkelige tegn og ting :)
$side = explode("|",$linjetrim); // Deler linjen op i brugernavn|password
if($brugernavn == $side[0] && md5($password) == $side[1]) /* Hvis $brugernavn == brugernavnet i filen
OG $password == passwordet i filen så: */
{
if($side[2] == 'ja'){$_SESSION['admin'] = 'ja';} /* Læg en tredje del ind i brugerfilen hvor der står admin, så kan du bruge
sessionen admin til at filtrere med. */
$valid = true; // Laver vaiablen valid som siger at det hele er gået godt.
break; // Hvis de hele er gået godt så spring lige ud.
}
}
// Hvis nu de passer :)
if($valid == true) // Hvis $valid = true så:
{
$_SESSION['li'] = $brugernavn; // Lav sessionen li, med brugernavnet i.
echo '<meta http-equiv="refresh" content="0;url=login.php">'; // Send brugeren til forsiden med meta tagget.
}else{ // Hvis $valid ikke er true
echo 'Forkert brugernavn eller password.<br><input type="button" onclick="window.location = tilbageUrl" value="Tilbage">'; // Så skriv dette
}
}
/*
LOGUD
*/
if($_GET['logud'] == 'ja') // Hvis det er logud tid så:
{
session_destroy(); // Slet alle sessioner
echo '<meta http-equiv="refresh" content="0;url=login.php">'; // Og send brugeren tilbage til forsiden.
}
/*
REGISTRER BRUGER
*/
if($_GET['registrer'] == 'ja') // Hvis det er tid til at oprette en bruger så:
{
// Skriv dette html stykke:
echo '
<h1>Registrer</h1>
<form action="?registrer=gem" method="POST" name="regform" onsubmit="if(checkReg()){return true}else{return false}">
Dit ønskede brugernavn: <input type="text" name="brugernavn">
<br>
Dit ønskede password: <input type="password" name="password">
<br>
<input type="submit" name="submit" value="Registrer"><input type="button" onclick="window.location = tilbageUrl" value="Tilbage">
</form>
';
}
if($_GET['registrer'] == 'gem') // Hvis det er tid til at gemme brugeren så:
{
$brugernavn = trim($_POST['brugernavn']); // trim brugernavnet for mærkelige tegn og derefter læg det ind i vaiablen $brugernavn
$password = trim(md5($_POST['password'])); // så trim passwordet og md5 krypter det og læg det ind i vaiablen password.
$linjer = file("$bruger_filen"); // Så læg alle linjerne i bruger_filen over i et array IGEN :)
$valid = true; // Laver variablen valid til true
if(!empty($brugernavn) && !empty($password)) // Hvis $brugernavn ikke er tomt og det samme med passwordet så:
{
foreach($linjer as $linje) // For hver bruger dvs linje:
{
$trimlinje = ltrim($linje); // Fjerner mærkelige tegn i slutningen af linjen
$side = explode("|", $trimlinje); // Deler linjen op i brugernavn|password
// Hvis brugernavn == brugernavnet i filen på linjen den tjekker så hop ud og sig der er en fejl
if($brugernavn == $side[0]){$valid = false;}
}
if($valid == true) // Hvis der ikke er sket en fejl så:
{
$nybruger = "\n$brugernavn|$password"; // Lav konstrukturen af brugernavn/password forhold som i filen
$fil = fopen("$bruger_filen","a+"); // åben $bruger_filen til læsning og skrivning i slutningen af filen
if(fwrite($fil, $nybruger)) // Hvis det lykkes at putte konstrukturen $nybruger ind i filen så:
{
//Skriv dette:
echo 'Brugernavnet er oprettet.<br><input type="button" onclick="window.location = tilbageUrl" value="Login">';
}
else // Ellers hvis der er sket en fejl så skriv det:
{
echo 'Der skete en fejl.<br><input type="button" onclick="window.location = regtilbageUrl" value="Prøv igen">';
}
fclose($fil); // Luk filen igen.
}
else // Hvis brugernavnet er taget så skriv det, med en tilbage knap.
{echo 'Brugernavnet er taget.<br><input type="button" onclick="window.location = regtilbageUrl" value="Tilbage">';}
}else{echo 'Du skal udfylde det hele.<br><input type="button" onclick="window.location = regtilbageUrl" value="Tilbage">';}
}
/*
VIS ALLE BRUGERE
*/
if($_GET['visbrugere'] == 'ja') // Hvis den har fået besked på at vise brugerne så:
{
echo '<h1>Brugere:</h1>'; // Skriv en overskrift
$brugere = file("$bruger_filen"); // Læg brugerne ind i et array
echo '<h4><u>'; // Skriv nogle simple html tags
if(count($brugere) > 0) // Hvis der er mere end 0 brugere så:
{
foreach($brugere as $linje) // Kør en linje igennem en adgangen
{
$trimlinje = ltrim($linje); // Fjern mærkelige tegn i numsen på strengen
$side = explode("|", $trimlinje); // Del linjen op i brugernavn|password
echo ucfirst($side[0]); // Skriv brugerne ud med stort for bogstav
echo '<br>';// Laver linjeskift
}
}else{echo 'Ingen brugere.';} // Hvis der ingen brugere er så skriv det.
echo '</h4></u>'; // Slut de simple html tags af.
echo '<input type="button" onclick="window.location = tilbageUrl" value="Tilbage">'; // Lav en tilbage knap.
}
echo "\n<center/>"; // Laver et simpelt slut html tag for ovenstående center
?>
Også er jeg heller ikke helt så sikker på om det script man skal sætte på de beskyttet sider der skal tjekke om man er logget ind virker helt vil i ikke også tjekke det ?
<?php
ob_start();
session_start();
if(!$SESSION['li']){header("Location: http://www.daap.wep.dk/login/login.php");}
ob_end_flush();
?>
Jeg giver 120 point når begge ting er løst :)