Hét vraag- en antwoordplatform van Nederland

Hoe kan ik checken of iemand (al) ingelogd is? (php)

Ik heb de volgende php code:

session_start();

$username = $_POST['username'];
$password = $_POST['password'];
$submit = $_POST['submit'];

if($submit){
if($username&&$password){ // Hier wordt gecontroleerd of alles klopt, wanneer dit goed is, voert hij de code hieronder uit!

$connect /* Zet variabele connect */ = mysql_connect("localhost", "root") or die ("Kan geen verbinden maken met Database") /* naar mysql_connect*/ ;
mysql_select_db("portfolio2") or die ("Database niet gevonden");

$query = mysql_query("SELECT * FROM users WHERE username='$username'");

$numrows = mysql_num_rows($query);

if($numrows !=0){

//code to login
while ($row = mysql_fetch_assoc($query)){
$dbusername = $row['username'];
$dbpassword = $row['password'];
}

//check to see if they match!
if($username==$dbusername&&$password==$dbpassword){
header('location: admin.php');
}
else
echo "Onjuist wachtwoord";
}
else
echo "Gebruiker bestaat niet!";

}
else
echo "Voer alsjeblieft het formulier in!";


}
?>

Dit is login.php en ik wil graag op beveiligde pagina's controleren of de gebruiker is ingelogd, wanneer dit niet het geval is moet hij terug naar index.php gestuurd worden. Welke code moet ik hierbij plaatsen, en wat moet ik dan plaatsen op de pagina die ik wil beveiligen?

Verwijderde gebruiker
12 jaar geleden

Heb je meer informatie nodig om de vraag te beantwoorden? Reageer dan hier.

Geef jouw antwoord

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

/
Geef Antwoord
+
Selected image

Het beste antwoord

Net zoals je $_POST gebruikt kun je $_SESSION gebruiken.
In $_SESSION kun je variabelen stoppen die bewaard moeten blijven zolang de gebruiker op jouw site zit.

Bij het inloggen kun je dus $_SESSION['loggedin'] = true zetten.
en om te kijken of een gebruiker ingelogd is kun je gewoon die variabele weer aanroepen.
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden

Andere antwoorden (1)

Je zou een cookie kunnen setten, zodra er juist ingelogd is. Vervolgens kun je op de beveiligde pagina's testen of de cookie geset is.
De cookie geef je een verlooptijd van bijvoorbeeld 20 minuten mee, zodat je na 20 minuten opnieuw moet inloggen.
Als een beveiligde pagina aangeroepen wordt, geef je de cookie weer een waarde, zodat de periode van 20 minuten weer ingaat.
Code voor het gebruik van cookies in php is simpel en op veel plaatsen te vinden.
(Lees meer...)
Verwijderde gebruiker
12 jaar geleden
Verwijderde gebruiker
12 jaar geleden
Geen goed plan. Alles wat client side gebeurt, kan aangepast worden, waardoor iedereen kan zeggen dat hij ingelogd, ook als dat niet zo is. In dit geval is een Session de juiste oplossing.
Deel jouw antwoord

Het is niet mogelijk om je eigen vraag te beantwoorden Je mag slechts 1 keer antwoord geven op een vraag Je hebt vandaag al antwoorden gegeven. Morgen mag je opnieuw maximaal antwoorden geven.

/
Geef Antwoord
+
Selected image