Ik ben bezig met een site(anders zou ik hier denk ik niet komen). En ik wil nu graag een login-script met sessions. Waarbij je in moet vullen:
Echte naam
Gebruikersnaam
Wachtwoord
Nog een keer wachtwoord
*Onderschrift
En dat het onderschrift optioneel is. Ook zou ik erbij dan een profiel verander script willen. Heeft iemand nog zo'n scriptje "liggen" mag ik het dan gebruiken. Want als ik eenmaal een loginsysteem heb lukt het me wel(met puntensysteem, secretssyteem etc.)
als je een insert pagina hebt.
Dat kan je heel eenvoudig ombouwen naar een update querie
Sommige dingen zijn een beetje overdreven, maar het heeft uiteindelijk wel allemaal nu ;).

<?php
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_POST['naam']) && isset($_POST['wachtwoord']))
{
$naam = mysql_real_escape_string($_POST['naam']);
$wachtwoord = mysql_real_escape_string(sha1($_POST['wachtwoord']));

$query = "SELECT id, wachtwoord FROM gebruikers WHERE naam = '".$naam."' AND wachtwoord = '".$wachtwoord."'";
$resultaat = mysql_query($query);

if ($resultaat && (mysql_num_rows($resultaat) == 1))
{
$rij = mysql_fetch_array($resultaat);
$dbwachtwoord = $rij['wachtwoord'];
$dbgebruiker = $rij['id'];

if($dbwachtwoord == $wachtwoord)
{
$code = sha1(randomgenerator('12'));

$query = "UPDATE gebruikers SET inlogcode = '".$code."' WHERE id = ".$dbgebruiker."";
$resultaat = mysql_query($query);

if($resultaat && mysql_affected_rows() == 1)
{
$_SESSION['ingelogd']['id'] = $dbgebruiker;
$_SESSION['ingelogd']['code'] = $code;
}
}
}else{
echo '<p class="error">Sorry, hiermee kan ik u niet inloggen.</p>';
}
}
}
?>

Als extratje controleren we of iemand een sessie heeft, en of zijn code klopt. Zoja dan vervangen we die code gelijk...

<?php
if(isset($_SESSION['ingelogd']))
{
$code = sha1(randomgenerator('12'));

$query = "UPDATE gebruikers SET inlogcode = '".$code."' WHERE id = ".$_SESSION['ingelogd']['id']."";
$resultaat = mysql_query($query);

if($resultaat && mysql_affected_rows() == 1)
{
$_SESSION['ingelogd']['code'] = $code;
}else{
echo '<p class="error">Er gaat iets mis, u zult opnieuw moeten inloggen!</p>';
session_destroy();
}
}
?>
Je moet er wel een beetje handig mee zijn, database aanmaken met daarin een veld id, wachtwoord (sha!), naam en inlogcode (40tekens).

Randomgenerator functie aanmaken etc. Maareh, 'er gebeurd niks' is mij te vaag.

Reageren