Volledige versie bekijken : Inlog-script met session



Lenny'tje
21 January 2011, 19:15
Kan iemand me helpen met een goed inlog script dat gebruik maakt van session?

Dacht dat deze manier het veiligste is voor algemeen gebruik (admin, mod, en user)

Want bij mij lukt het totaal niet.

Butterflyice
21 January 2011, 22:48
Wat heb je al gemaakt?
Want een kant en klaar script ga ik niet geven daar leer je namelijk niets van.
Kunnen je wel helpen om je script goed te maken.

Lenny'tje
22 January 2011, 19:21
<?php

//index.php

//sessie starten, in het boek stond dat dit als eerst in het script moest komen te staan.
session_start();

//Even controlleren of de gebruiker nog ingelogd is of niet.
if ( isset($_SESSION['sid']) && isset($_COOKIE['PHPSESSID']) && isset($_SESSION['logged']) && isset($_SESSION['pass']) && isset($_SESSION['nickmail'] )
{
if ( $_SESSION['sid'] == $_COOKIE['PHPSESSID'] )
{
//De gebruiker is nog ingelogd.
//Naar het profiel navigeren van deze gebruiker.
}
else
{
//Sessie id komen niet overeen, de gebruiker moet weer aanmelden.
//Al de gegevens worden vernietigd.
session_unset();
session_destroy();
setcookie("PHPSESSID", "", "time() -3600", "http://localhost/login/"); //Ik weet niet of dit goed is zo?
header("Location: index.php"); //Deze pagina vernieuwen.
}
}


if ( $_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit']) == 'Aanmelden' )
{
//Controlevelden, kijken of de wachtwoorden overeenkomen.

$sql = "SELECT
FROM
`usr_app`
WHERE
usr_pass = '".$_POST['aPass']."'
AND
usr_nick = '".$_POST['aNickMail']."' //Bij deze kan je ofwel een nieckname invullen of een e-mail adres.
OR
usr_email = '".$_POST['aNickMail']."'";
if ( ($result = mysql_query($sql)) === false )
{
echo 'Er ging iets fout met de query';
}
else
{
if ( mysql_num_rows($result) == 1 )
{
echo 'Ingelogd';
$_SESSION['sid'] = session_id();
$_SESSION['logged'] = true; //Een sessie maken waar staat dan er is ingelogd
$_SESSION['nickmail'] = $_POST['aNickMail']; //Een sessie maken waar de naam of de nickname in staat
$_SESSION['pass'] = $_POST['aPass']; //Een sessie maken waar het wachtwoord in geregistreerd staat
header("Location: profile.php");
}
else
{
echo 'De combinatie van de gebruikersnaam en wachtwoord komen niet overeen';
}
}
}

?>



<br><br>Ben je nog geen lid? klik dan <a href="register.php">hier</a><br><br>
<form action="" method="POST" >
Vul je nickname of je email in:<br>
<input type="text" name="aNickMail" /><br>
Vul je passwoord in:<br>
<input type="text" name="aPass" /><br>
Herhaal wachtwoord:<br>
<input type="text" name="bPass" /><br>
<input type="submit" name="submit" value="Aanmelden" />
</form>




<?php

mysql_close($db);

?>


Dit is men index pagina waar je kan op inloggen.

Zo had ik gedacht dat het zou kunnen werken maar blijkbaar is er meer voor nodig.

Butterflyice
23 January 2011, 00:42
Heb je ook de database tabel?

Lenny'tje
1 February 2011, 02:11
Ja, ik zal die eens geven wanneer ik weer thuis ben, sorry van de late reactie's (kan niet altijd op het internet)

Stuntman Phil
1 March 2011, 18:51
Zou ook wel willen weten hoe je zo'n fatsoenlijk scriptje maakt :p, heb het namelijk ook nodig xD

peenif
1 March 2011, 20:51
Zou ook wel willen weten hoe je zo'n fatsoenlijk scriptje maakt :p, heb het namelijk ook nodig xD Zou je dan ook een nieuw topic willen starten met uw juiste vraag, dit is het topic van iemand anders :eek:.

Stuntman Phil
2 March 2011, 18:53
Zou je dan ook een nieuw topic willen starten met uw juiste vraag, dit is het topic van iemand anders :eek:.


Owkay then, sorry hé...

Wou alleen maar aanmoedigen om dit op te lossen

Butterflyice
2 March 2011, 19:21
Dan moet je toch wachten op input van de TS want daar wacht ik ook op.