Volledige versie bekijken : [PHP MYSQL] Password beveiliging
Jordy
%Europe/Berlin %541 %2005, 13:59
He all,
Ik ben laatste dagen bezig met mysql en php, het lukt aardig. Alleen ik weet niet hoe je een goede beveiliging maakt op je admin gedeelte. Het lijkt mij het best om de username en password uit een database te halen, dat gaat zelf wel lukken. Maar die beveiliging moet op ELKE pagina van de admin gedeelte komen. Kan dit gewoon dmv include('beveiliging.php'); ?
Aangezien het irritant is om iedere keer weer in te loggen bij elke pagina moeten er dus cookies worden geplaatst, zodat je inlog sessie bewaardt blijft. Dit snap ik niet echt. Zou iemand mij een zetje in de goede richting kunnen geven?
Alvast bedankt
TheDutch
%Europe/Berlin %543 %2005, 14:02
session.start (http://www.php.net/function.session-start)
Jordy
%Europe/Berlin %581 %2005, 14:56
Die had ik ook al gevonden, maar ik zoek hulp, hoe moet ik het gebruiken. Gewoon een klein voorbeeldje in het nederlands :) forum uitleg is meestal de beste uitleg
Edwin
%Europe/Berlin %760 %2005, 19:14
ik ga je zometeen na het eten helpen ;) Op een volle maag kan ik beter werken
Edwin
%Europe/Berlin %833 %2005, 20:59
Uit m'n hoofd even dit verzonnen, opslaan en includen. Pas wel even de namen aan zodat ze overeen komen met de tabelnamen.
<?
session_start();
if(!isset($_SESSION['ingelogged'])){
if($_POST){
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = $_POST['wachtwoord'];
$query = "SELECT * FROM $tabel WHERE gebruikersnaam='$gebruikersnaam' AND wachtwoord = '$wachtwoord'";
$result = mysql_num_rows(mysql_query($query));
if($result==1){
$_SESSION['ingelogged'] = TRUE;
}
header("location: " . $_SERVER['PHP_SELF']);
exit();
}else{
echo "<form action=\"".$_SERVER['PHPSELF']."\" method=\"POST\">";
echo "Gebruikersnaam: <input type=text name=gebruikersnaam><BR>";
echo "Wachtwoord: <input type=password name=wachtwoord><BR>";
echo "<input type=submit name=Login></form>";
exit();
}
}
?>
Jordy
%Europe/Berlin %842 %2005, 21:13
Oke, zo haal je gegevens uit de database en kijk je of ze kloppen :) wat heeft die session voor nut ? (niet dom bedoeld hoor :P). Ik herinner me dat je met setcookie dus een cookie zet, aangezien ik iedere admin pagina wil beveiligen :).
Dauntless
%Europe/Berlin %843 %2005, 21:14
Een session kan er voor zorgen dat jij dus doorheen heel flashfocus hier toegang hebt tot het member deel. Mijn session zorgt ervoor dat ik ook in het ZMOF kan. Je kan er dus voor zorgen dat je op elke pagina de session checkt. Als die goed is (je moet zelf maar een variabele meegeven), kan hij de pagina bezoeken. Anders moet je hem naar de login pagina sturen (als de session dus niet bestaande is).
Edwin
%Europe/Berlin %849 %2005, 21:23
Probeer anders maar dit te lezen: http://www.php.net/manual/nl/ref.session.php
Het is wel engels, maar ik weet geen nederlandse versie. Er staat vooral in het begin globaal wat het is en hoe het werkt.
Het is dus dat je variabelen over het hele domein kan gebruiken. Idd zoals dauntless zegt, stel je hebt een variabele $status. En die geef je een waarde "member" mee. Dan kan je op een pagina kijken wat die waarde is en wat men wel en niet mag zien. Zoals bij dauntless staat er bijvoorbeeld $status = "ZM" ofzo, hij kan dus meer zien dan wij omdat het script de variabele leest en zodoende dus kan bepalen wat er moet gebeuren.
Ik hoop dat je het een beetje snapt, anders horen we het wel.
Jordy
%Europe/Berlin %850 %2005, 21:24
ahh kijk :) tnx dauntless !! :)
Hoe kun je dan de bestaande session in een andere pagina ophalen ?
if ($_SESSION['ingelogged'] == true) {
//Hier een deel waarvoor je ingelogd moet zijn
} else {
//hier een inlog formulier
}
Zit ik zo een beetje in de juiste richting ? :)
btw: Edwin, jij ook hartstikke bedankt :D
Edwin
%Europe/Berlin %851 %2005, 21:25
Als je gewoon dat script in een bestand zet en include dan is dat genoeg om te kijken of je het wel mag zien of niet.
Maar je hebt het zelf goed hoor, ga zo door!
Vergeet niet dat je op elke pagina moet beginnen met session_start() Let er wel op dat als je include dat je er rekening mee houd dat het in de andere file al staat.
latino
%Europe/Berlin %857 %2005, 21:35
misshien kun je er beter een functie van maken:
bv:
// Retourneerd TRUE als user is ingelogd
function is_logged_in()
{
global $_SESSION;
if (!isset($_SESSION['userid']))
{
return (0);
}
return (1);
}
in je inlog formulier: nog even if elsen
$CombiCheckQ = mysql_query("SELECT username,userid,email
FROM iets
WHERE username = '".addslashes($_POST['username'])."'
AND password = '".md5($_POST['password'])."'
AND actief = 1
");
// Kijken of er resultaten zijn, zoja, is de user ingelogd
if (mysql_num_rows($CombiCheckQ) == 0)
{
exit("Een ongeldige user/pass combinatie is ingevoerd.");
}
// Sessie registreren
$gegevens = mysql_fetch_array($CombiCheckQ);
$_SESSION['userid'] = $gegevens['userid'];
in je paganias kun je dan zo checken:
if(is_logged_in())
{
je mag dit zien
}
else
{
scheer je weg!
}
Jordy
%Europe/Berlin %858 %2005, 21:36
Het werkt :D allevier heel erg bedankt :D. Dit is iets wat vaak terug komt. Goede uitleg was het !! :D
latino
%Europe/Berlin %863 %2005, 21:43
alle vier ;)
Jordy
%Europe/Berlin %865 %2005, 21:46
Latino,
Hoe kan ik jouw methode gebruiken ? Moet ik telkens dit script includen ?
function is_logged_in()
{
global $_SESSION;
if (!isset($_SESSION['userid']))
{
return (0);
}
return (1);
}
latino
%Europe/Berlin %876 %2005, 22:02
nee deze gooi je gewoon in een configuratie.php
deze include je eenmalig in pagina
ik heb als voorbeeld deze tut gebruikt:
volg tut (http://www.jacqieline.com/tutorials.php?action=show&id=105)
je moet alleen even aanpassen naar huidige phpversie zoals $_POST ipv $_HTTP_POST_VARS
en zelde met sesie
harderstyles
%Europe/Berlin %714 %2005, 17:09
[ZF edit]heel nare aandoening[/ZF Edit]
Van dit soort taalgebruik zijn we hier niet gediend, bij deze een eerste officieële waarschuwing.
Dauntless
%Europe/Berlin %771 %2005, 18:30
Harderstyles, op wat slaat dat ?
josko
%Europe/Berlin %889 %2005, 21:20
session kan je ook gebruiken op een forum ofzo :0 ook wel veilig, of niet?
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.