ik had van joran de wit een leuk login formuliertje gezien.
nu wil ik meerdere gebruikersnamen en wachtwoorden toevoegen.
ik heb al de or of xor gebruik en || maar dan werkt het niet optimaal.
<?php
// We gaan sessies gebruiken
session_start();
// Doorsturen en melding geven
header('Refresh: 3; url=beveiligd.php');
echo 'Je bent succesvol ingelogd. Je wordt doorgestuurd.';
}
else
{
// Terugsturen en foutmelding geven
header('Refresh: 3; url=login_form.php');
echo 'Deze combinatie van gebruikersnaam en wachtwoord is niet juist!';
}
}
else
{
header('Refresh: 3; url=login_form.php');
echo 'Een vereist veld bestaat niet!';
}
}
else
{
// Terug naar het formulier
header('Location: login_form.php');
exit();
}
?>
Hoe kan het dat het dan niet goed gaat.
Ik gebruik het or teken of als ik xor in vul dan gaat het ook niet goed.
Dan zou het toch ook moeten werken. of zie ik dat helemaal verkeerd?
Of beter nog waarom zie ik dat verkeerd..
[size=xsmall]Toevoeging op 25/10/2014 21:42:06:[/size]
ik krijg het maar niet aan de praat...
<?php
// We gaan sessies gebruiken
session_start();
// Gebruikersnaam en wachtwoord controleren
foreach($gebruikers as $gebruiker)
{
if($gebruiker['username'] == $sGebruiker && $gebruiker['password'] == $sWachtwoord)
{
// Juiste gebruikersnaam en wachtwoord: inloggen!
$_SESSION['logged_in'] = true;
$_SESSION['gebruiker'] = $sGebruiker;
// Doorsturen en melding geven
header('Refresh: 3; url=beveiligd.php');
echo 'Je bent succesvol ingelogd. Je wordt doorgestuurd.'; }
else
{
// Terugsturen en foutmelding geven
header('Refresh: 3; url=17.php');
echo 'Deze combinatie van gebruikersnaam en wachtwoord is niet juist!';
}
}
else
{
header('Refresh: 3; url=17.php');
echo 'Een vereist veld bestaat niet!';
}
}
else
{
// Terug naar het formulier
header('Location: 17.php');
exit();
}
?>
Je gebruikt $sGebruikers als array maar je toont $gebruikers
Bij $gebruikers is de s weg en hoofdletter G word een kleine letter
Ter informatie:
$HOOFDLETTERS is niet gelijk aan $hoofdletters
// Gebruikersnaam en wachtwoord controleren
foreach($sGebruikers as $gebruiker)
{
if($sGebruikers['username'] == $sGebruikers && $sGebruikers['password'] == $sWachtwoord)
{
// Juiste gebruikersnaam en wachtwoord: inloggen!
$_SESSION['logged_in'] = true;
$_SESSION['sGebruikers'] = $sGebruikers;
// Doorsturen en melding geven
header('Refresh: 3; url=beveiligd.php');
echo 'Je bent succesvol ingelogd. Je wordt doorgestuurd.'; }
else
{
// Terugsturen en foutmelding geven
header('Refresh: 3; url=17.php');
echo 'Deze combinatie van gebruikersnaam en wachtwoord is niet juist!';
}
}
else
{
header('Refresh: 3; url=17.php');
echo 'Een vereist veld bestaat niet!';
}
}
else
{
// Terug naar het formulier
header('Location: 17.php');
exit();
}
?>
foreach($etenswaar as $fruit)
{
echo $fruit.'<br>';
}
?>
Bij jou is het echter een array in een array. Dat heb je heel goed opgemerkt.
<?php foreach($sGebruikers as $gebruiker) ?>
$gebruiker is nu telkens een element uit (de buitenste / hoofd-) array en zal dus telkens alsnog een array zijn, maar dan een gewone enkelvoudige associatieve array. associatief wil zeggen dat we namen gebruiken in plaats van nummers zoals ik hier gedaan heb met 'username' en 'password'. De opbouw van deze array is overigens exact zoals je hem uit de database zou halen met de mysqli_fetch_assoc() functie. (merk op dat assoc ook voor associatief staat). Later kun je de code dus hergebruiken als je met een database wilt gaan werken