Beste PHP'ers,
Ik heb hetvolgende script:
<?php
function login($naam, $wachtwoord, $action) {
$output = '';
if ($action == "inloggen") {
if (isset($_COOKIE["hash"])) {
$_COOKIE["hash"]=mysql_real_escape_string($_COOKIE["hash"]);
$qry = 'SELECT * FROM gebruikers WHERE hash = "'.$_COOKIE['hash'].'" AND ip = "'.$_SERVER['REMOTE_ADDR'].'"';
if ( !($result=mysql_query($qry)) ) {
$output .= '<br />Error: '.mysql_error();
}
else {
if (mysql_num_rows($result) == 1) {
$output .= '<br />U bent reeds ingelogd.';
$niet_ingelogd=0;
}
else {
$niet_ingelogd=1;
}
}
}
else {
$niet_ingelogd=1;
}
if (isset($naam) && isset($wachtwoord) && $niet_ingelogd == 1) {
$naam=mysql_real_escape_string($naam);
$wachtwoord=mysql_real_escape_string($wachtwoord);
$hash=md5(time());
$sql = 'SELECT * FROM gebruikers WHERE gebruikersnaam = "'.$naam.'" AND wachtwoord = "'.md5($wachtwoord).'"';
if ( !($result = mysql_query($sql)) ) {
$output .= '<br />Error: '.mysql_error();
}
else {
if (mysql_num_rows($result) == 0) {
$output .= '<br />U heeft een verkeerde naam en/of wachtwoord ingevuld.';
}
else {
$output .= '<br />U bent succesvol ingelogd!';
if ( !(mysql_query('UPDATE gebruikers SET hash = "'.$hash.'", ip = "'.$_SERVER['REMOTE_ADDR'].'" WHERE gebruikersnaam = "'.$naam.'" AND wachtwoord = "'.md5($wachtwoord).'"')) ) {
$output .= '<br />Error: '.mysql_error();
}
else {
setcookie('hash', $hash);
}
}
}
}
elseif ($niet_ingelogd == 1) {
$output .= '<br />Error, u heeft geen naam en of wachtwoord ingevuld!';
}
}
$output = preg_replace('(<br />)', '', $output, 1);
return $output;
}
function check($hash, $ip) {
$output = '';
if (isset($hash)) {
$hash=mysql_real_escape_string($hash);
$ip=mysql_real_escape_string($ip);
$qry = 'SELECT * FROM gebruikers WHERE hash = "'.$hash.'" AND ip = "'.$ip.'"';
if ( !($result=mysql_query($qry)) ) {
$output .= '<br />Error: '.mysql_error();
}
else {
if (mysql_num_rows($result) == 1) {
while ($row = mysql_fetch_assoc($result)) {
$output .= 'Welkom op uw eigen gedeelte '.$row["gebruikersnaam"].'!';
}
}
else {
$output .= 'U bent niet ingelogd, klik <a href="index.php?action=inloggen">hier</a> om in te loggen of <a href="index.php?page=registreer">hier</a> om gratis een account aan te maken';
}
}
}
else {
$output .= 'U bent niet ingelogd, klik <a href="index.php?action=inloggen">hier</a> om in te loggen of <a href="index.php?page=registreer">hier</a> om gratis een account aan te maken';
}
$output = preg_replace('(<br />)', '', $output, 1);
return $output;
}
function uitloggen($hash, $ip) {
$output = '';
if (isset($hash)) {
$hash=mysql_real_escape_string($hash);
$ip=mysql_real_escape_string($ip);
$qry = 'SELECT * FROM gebruikers WHERE hash = "'.$hash.'" AND ip = "'.$_SERVER['REMOTE_ADDR'].'"';
if ( !($result = mysql_query($qry)) ) {
$output .= '<br />Error: '.mysql_error();
}
else {
if (mysql_num_rows($result) == 1) {
$output .= '<br />U bent succesvol uitgelogd!';
setcookie('hash', '', time() - 3600);
}
else {
$output .= 'U bent niet ingelogd, en kan dus ook niet uitloggen...';
}
}
}
else {
$output .= 'U bent niet ingelogd, en kan dus ook niet uitloggen...';
}
$output = preg_replace('(<br />)', '', $output, 1);
return $output;
}
?>
En:
<?php
include("pages/check_login.php");
if (isset($_GET["action"])) {
if ($_GET["action"] == "inloggen" || $_GET["action"] == "checken" || $_GET["action"] == "uitloggen") {
if ($_GET["action"] == "inloggen") {
if (isset($_POST["name"]) && isset($_POST["pass"])) {
if (isset($_GET["action"])) {
$action=$_GET["action"];
}
else {
$action='inloggen';
}
$user = login($_POST["name"], $_POST["pass"], $action);
echo $user;
}
else {
echo '<form name="form" method="post" action="?action=inloggen">';
echo 'Name <input type="text" name="name"> ';
echo 'Pass <input type="password" name="pass"><input type="submit" value="submit" alt="login" name="login">';
echo '</form>';
}
}
if ($_GET["action"] == 'checken') {
$checken = check($_COOKIE["hash"], $_SERVER['REMOTE_ADDR']);
echo $checken;
}
if ($_GET["action"] == 'uitloggen') {
if (isset($_COOKIE["hash"])) {
$uitloggen = uitloggen($_COOKIE["hash"], $_SERVER['REMOTE_ADDR']);
echo $uitloggen;
}
else {
echo 'U bent niet ingelogd, en kan dus ook niet uitloggen... ';
}
}
}
else {
echo 'Er is een onbekende actie meegegeven!';
}
}
?>
Is het idee veilig genoeg ??
2.415 views