inlog script

Status
Niet open voor verdere reacties.

ecross

Gebruiker
Lid geworden
4 mrt 2009
Berichten
638
hallo ,
eerst: ik ben niet goed in php, dit script snap ik net

ik heb een inlogscript (niet zelf gemaakt) voor 1 gebruikers naam en wachtwoord, waarmee je als je op een beveiligde pagina komt en nog niet inlgelogd bent doorgestuurd word naar de inlog pagina.
maar hoe kan je uitloggen, kan dat ook automatisch?

dit is het script:
inlogpagina: (login.php)
PHP:
<?php
if(isset($_POST["username"])&&isset($_POST["password"])) {
$user = $_POST["username"];
$pass = $_POST["password"];
$validated = false;
//Begin validation code
if($user=="User1"&&$pass=="password1") $validated = true;
if($user=="User2"&&$pass=="password2") $validated = true;
//End validation code
//Begin login code
if($validated) {
setcookie("username", $user); //Sets a cookie storing the username
setcookie("password", MD5($pass)); //Sets a cookie storing the encrypted value of the password
echo "Logged in as $user.";
} else {
echo "Invalid username/password combination.";
}
//End login code
}
?>
<form action=login.php method=post>
Username: <input type="text" name="username"><br>
Password: <input type="password" name="password"><br>
<input type="submit" value="Login">
</form>

en de beveiligde pagina (protect.php)
PHP:
<?php
$validated = false;

//Use $_COOKIE to get the cookie data – same usage as $_POST
if(isset($_COOKIE["username"])&&isset($_COOKIE["password"])) {
echo 'hallo';
$user = $_COOKIE["username"];
$pass = $_COOKIE["password"];

//Begin validation code
if($user=="User1"&&$pass==MD5("password1")) $validated = true;
if($user=="User2"&&$pass==MD5("password2")) $validated = true;
//End validation code
}

if($validated) {
//Ok; don’t need to do anything
} else {
//Make user go to login page
header("Location: login.php");
exit;
}
?>

ik weet het, het is niet veilig maar goed genoeg voor mij
 
Laatst bewerkt:
Sessie destroyen:
PHP:
<?
session_start();
session_destroy();
header ("Location: index.php");
?>


Cookies inactief maken:
PHP:
setcookie("username","",time()-3600);
setcookie("password","",time()-3600);
header ("Location: login.php");
Hiermee zet je de geldigheidsduur van de cookies naar een tijdstip in het verleden en kunnen ze dus niet meer gebruikt worden. Zet dit in een logout.php en link daar naartoe.

Gr,
Leon
 
dankje

2e lukt maar waar voor is de 1e?
en als je de link niet gebruikt blijf je ingelogd, wat kan ik hier tegen doen?
 
De eerste is voor als je geen cookies gebruikt, maar sessies.
Sessies stoppen automatisch na het sluiten van de browser. Dan is de gebruiker automatisch uitgelogd, maar met dit stukje kun je de sessie eerder stoppen.

Als je cookies gebruikt blijft de gebruiker ingelogd, zolang als jij ingesteld hebt in de cookie.
Code:
setcookie("password","",time()[B]3600[/B]);

Als je wilt dat de gebruikers uitgelogd zijn na het sluiten van de browser moet je geen cookies gebruiken, maar sessies.
 
Geen cookies gebruiken om ingelogd te blijven, dat is niet veilig. Als iemand je cookies kopieert kan hij zo, zonder je wachtwoord te weten, inloggen op je site :)
 
Dat klopt.

Wat je kunt doen is een inlog tabel maken. Daarin zijn ipadres wegschrijven, zijn cookie id en een versleutelde id deze ook controleren nadat zijn cookies gecontroleerd zijn.
Maar aangezien je ze niet ingelogd wilt houden moet je gewoon sessies gebruiken.
PHP:
session_start();
 
Sessie destroyen:
PHP:
<?
session_start();
session_destroy();
header ("Location: index.php");
?>


Cookies inactief maken:
PHP:
setcookie("username","",time()-3600);
setcookie("password","",time()-3600);
header ("Location: login.php");
Hiermee zet je de geldigheidsduur van de cookies naar een tijdstip in het verleden en kunnen ze dus niet meer gebruikt worden. Zet dit in een logout.php en link daar naartoe.

Gr,
Leon


Even een kleine tussen opmerking geven op deze post.
Gelieve Nooit maar dan ook Nooit paswoorden in een cookie te plaatsen toch zeker niet in plain text als het geincrypteerd is is het eventueel mogelijk maar zelfs dan nog is het best om dit niet te doen.
 
dankje allemaal

het is me gelukt dankje allemaal
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan