Inlog systeem
Ik ben sinds gisteren bezig met het maken van een inlogsysteem die ik van hier af heb gehaald.
Ik kan registreren maar hij zegt e-mailadres ongeldig.
Hier is de code. Ik heb bij $formulier tijdelijk false gezet anders kan ik helemaal niet registreren
Quote:
if(empty($_POST["email"]) || preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $_POST["email"])) {
echo '<b style="color:#FDB839">• Uw emailadres is ongeldig.</b><br>';
$_POST["email"] = ""; $formulier = false;
if(empty($_POST["email"]) || preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $_POST["email"])) {
echo '<b style="color:#FDB839">• Uw emailadres is ongeldig.</b><br>';
$_POST["email"] = ""; $formulier = false;
Iemand enig idee wat ik moet veranderen?
En ik heb nog een probleem, de secured page..
Er staat je moet ingelogd zijn om deze pagina te zien maar hij laat de pagina wel zien..
Hier het voorbeeld www.usergames.nl/test/donate.php
Dit is de code wat ik gebruik om het te beveiligen en ja hij staat helemaal boven aan:
Quote:
include('config.inc.php');
if(!isingelogd())
{
echo "Je moet eerst inloggen om deze pagina te zien!";
}
if(!isingelogd())
{
echo "Je moet eerst inloggen om deze pagina te zien!";
}
En dit is de functie:
Quote:
function isingelogd(){
global $settings, $mysqli;
// Kijken of er cookies zijn gezet, en controleren of ze valid zijn
if(isset($_COOKIE['user_id']) && ctype_digit($_COOKIE['user_id']) && isset($_COOKIE['user_hash']) && ctype_alnum($_COOKIE['user_hash'])) {
$query = " SELECT
gebruikerID, hash_key
FROM
".$settings['db_sessions_table']."
WHERE
gebruikerID = '".$mysqli->real_escape_string($_COOKIE['user_id'])."'
AND
hash = '".$mysqli->real_escape_string($_COOKIE['user_hash'])."'
AND
ipadres = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'";
// Query uitvoeren
if ($result = $mysqli->query($query)) {
$userId = $result->fetch_assoc();
if(ctype_digit($userId['gebruikerID'])) {
// Controleren of de hash ook klopt (browsercheck)
if(sha1($_COOKIE['user_id'] . $_SERVER['HTTP_USER_AGENT'] . $userId['hash_key']) == $_COOKIE['user_hash']) {
return true;
} else { // Browser is veranderd
// Niet ingelogd
$query = " UPDATE
".$settings['db_sessions_table']."
SET
hash = NULL,
hash_key = NULL,
ip = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'
WHERE
gebruikerID = '".$mysqli->real_escape_string($_COOKIE['user_id'])."'";
$mysqli->query($query);
// Cookies verwijderen
setcookie('user_id', 0, time() - 3600, '/');
setcookie('user_hash', '', time() - 3600, '/');
return false;
}
}
}
} else {
// Geen geldige cookies gezet
// Niet ingelogd
return false;
}
}
global $settings, $mysqli;
// Kijken of er cookies zijn gezet, en controleren of ze valid zijn
if(isset($_COOKIE['user_id']) && ctype_digit($_COOKIE['user_id']) && isset($_COOKIE['user_hash']) && ctype_alnum($_COOKIE['user_hash'])) {
$query = " SELECT
gebruikerID, hash_key
FROM
".$settings['db_sessions_table']."
WHERE
gebruikerID = '".$mysqli->real_escape_string($_COOKIE['user_id'])."'
AND
hash = '".$mysqli->real_escape_string($_COOKIE['user_hash'])."'
AND
ipadres = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'";
// Query uitvoeren
if ($result = $mysqli->query($query)) {
$userId = $result->fetch_assoc();
if(ctype_digit($userId['gebruikerID'])) {
// Controleren of de hash ook klopt (browsercheck)
if(sha1($_COOKIE['user_id'] . $_SERVER['HTTP_USER_AGENT'] . $userId['hash_key']) == $_COOKIE['user_hash']) {
return true;
} else { // Browser is veranderd
// Niet ingelogd
$query = " UPDATE
".$settings['db_sessions_table']."
SET
hash = NULL,
hash_key = NULL,
ip = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'
WHERE
gebruikerID = '".$mysqli->real_escape_string($_COOKIE['user_id'])."'";
$mysqli->query($query);
// Cookies verwijderen
setcookie('user_id', 0, time() - 3600, '/');
setcookie('user_hash', '', time() - 3600, '/');
return false;
}
}
}
} else {
// Geen geldige cookies gezet
// Niet ingelogd
return false;
}
}
Dat zijn mijn 2 kleine problemen iemand enige raad?
Alvast bedankt
Gewijzigd op 09/08/2010 13:21:21 door Bart Laan
Moet worden
if(empty($_POST["email"]) || !preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $_POST["email"])) {
Let wel op dat die regex niet alle geldige e-mailadressen toe laat.