hallo,
ik ben met men login script bezig en krijg volgende warning:
ter hoogte van lijn 70 staat het volgende (registratie.php):
hier door krijg ik ook altijd de melding dat ik geen geldig email adres heb opgegeven.
en in de 2 de pagina krijg ik de zelfde error op lijn 112 (login.php):
dit zijn de volledige scripts:
registratie.php
en login.php
iemand een idee wat er fout zou kunnen zijn?
ik ben met men login script bezig en krijg volgende warning:
HTML:
Strict standards: Only variables should be passed by reference in C:\wamp\www\test\register-login-logout-system\registratie.php on line 70
ter hoogte van lijn 70 staat het volgende (registratie.php):
PHP:
if($formulier) {
echo ' <form method="post" action="'.end(explode('/', $_SERVER["REQUEST_URI"])).'">
<p><label>Username:</label><input type="text" name="username" value="" /></p>
<p><label>Password:</label><input type="password" name="pass" value="" /></p>
<p></p>
<p><label>First Name:</label><input type="text" name="fname" value="" /></p>
<p><label>Last Name:</label><input type="text" name="lname" value="" /></p>
<p><label>E-mail Address:</label><input type="text" name="email" value="" /></p>
<p><input type="submit" value="Send form" /></p>
</form>
';
}
hier door krijg ik ook altijd de melding dat ik geen geldig email adres heb opgegeven.
en in de 2 de pagina krijg ik de zelfde error op lijn 112 (login.php):
PHP:
if($formulier) {
echo ' <form method="post" action="'.end(explode('/', $_SERVER["REQUEST_URI"])).'">
<p><label>Username:</label><input type="text" name="username" value="" /></p>
<p><label>Password:</label><input type="password" name="pass" value="" /></p>
<br><input type="hidden" name="form" value="'.time().'" />
<p><input type="submit" value="Inloggen" /></p>
</form>
';
}
dit zijn de volledige scripts:
registratie.php
PHP:
<?php
include('config.inc.php');
if ($_SERVER['REQUEST_METHOD'] != 'POST') {
$formulier = true;
} else {
$formulier = false;
//controles uitvoeren
if(!ereg("^[A-Za-z0-9]+$",$_POST["username"]) || strlen($_POST["username"]) < 3) {
echo '<b style="color:#FDB839">• Uw gebruikersnaam is ongeldig.</b><br>';
$_POST["Gebruikersnaam"] = ""; $formulier = true;
}
$result = $mysqli->query("SELECT ID FROM ".$settings['db_gebruikers_table']." WHERE gebruikersnaam LIKE '".$mysqli->real_escape_string($_POST['username'])."'");
if(!empty($_POST["username"]) && $result->num_rows > 0) {
echo '<b style="color:#FDB839">• Deze gebruikersnaam is al bezet.</b><br>';
$_POST["Gebruikersnaam"] = ""; $formulier = true;
}
if(empty($_POST["pass"])) {
echo '<b style="color:#FDB839">• Uw password is ongeldig.</b><br>';
$_POST["pass"] = ""; $formulier = true;
}
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 = true;
}
if($formulier) { // Wel of niet verzenden
echo '<br>';
$_POST["pass"] = "";
} else { // Verzenden
$sql = "
INSERT INTO ".$settings['db_gebruikers_table']." (
gebruikersnaam,
wachtwoord,
voornaam,
achternaam,
emailadres,
ipadres,
startdatum )
VALUES (
'".$mysqli->real_escape_string(htmlspecialchars($_POST['username']))."',
'".$mysqli->real_escape_string(sha1(htmlspecialchars($_POST['username']).$_POST['pass']))."',
'".$mysqli->real_escape_string(htmlspecialchars($_POST['fname']))."',
'".$mysqli->real_escape_string(htmlspecialchars($_POST['lname']))."',
'".$mysqli->real_escape_string($_POST['email'])."',
'".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."',
NOW()
)";
if(!$result = $mysqli->query($sql)) {
trigger_error('Fout in query: '.$mysqli->error);
echo '<br />Er is een fout opgetreden, de gebruiker is niet toegevoegd.';
} else {
echo 'De gebruiker is succesvol toegevoegd.';
}
}
}
if($formulier) {
echo ' <form method="post" action="'.end(explode('/', $_SERVER["REQUEST_URI"])).'">
<p><label>Username:</label><input type="text" name="username" value="" /></p>
<p><label>Password:</label><input type="password" name="pass" value="" /></p>
<p></p>
<p><label>First Name:</label><input type="text" name="fname" value="" /></p>
<p><label>Last Name:</label><input type="text" name="lname" value="" /></p>
<p><label>E-mail Address:</label><input type="text" name="email" value="" /></p>
<p><input type="submit" value="Send form" /></p>
</form>
';
}
?>
en login.php
PHP:
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
include('config.inc.php');
/* ----------------------------------------------------------------------------------------------- */
if(!isingelogd()) {
// Anti-flood, na 5 keer verkeerd inloggen wordt je IP adres 24 uur geband
$query = " SELECT
COUNT(id) AS attempts
FROM
".$settings['db_login_attempts_table']."
WHERE
date_time > (NOW() - INTERVAL 24 HOUR)
AND
ip = '".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'
AND
sys_info = '".$mysqli->real_escape_string($_SERVER['HTTP_USER_AGENT'])."'";
if ($result = $mysqli->query($query)) {
$login_attempt = $result->fetch_assoc();
if($login_attempt['attempts'] > $settings['max_login_pogingen']) { // Controleren of je bent geband
echo 'U bent tijdelijk geband<br>';
} else {
if (mb_strtoupper($_SERVER['REQUEST_METHOD']) != 'POST') {
$formulier = true;
} else {
$formulier = false;
if(ctype_digit($_POST['form']) && time() < strtotime("+1 minute", $_POST['form'])) {
$username = htmlspecialchars($_POST['username']);
$hashedPass = sha1($username.$_POST['pass']);
$query = " SELECT
ID
FROM
".$settings['db_gebruikers_table']."
WHERE
gebruikersnaam = '".$mysqli->real_escape_string($username)."'
AND
wachtwoord = '".$mysqli->real_escape_string($hashedPass)."'";
if ($result = $mysqli->query($query)) {
$userId = $result->fetch_assoc();
if(ctype_digit($userId['ID'])) {
$hash_key = uniqid(mt_rand(), true);
$hash = sha1($userId['ID'] . $_SERVER['HTTP_USER_AGENT'] . $hash_key);
// Cookies maken
setcookie('user_id', $userId['ID'], time() + 60*60*24*365, '/');
setcookie('user_hash', $hash, time() + 60*60*24*365, '/');
// Update query samenstellen, ip en hash updaten
$sql = " INSERT INTO
".$settings['db_sessions_table']."
(
gebruikerID,
hash,
hash_key,
datum,
ip
)
VALUES (
'".$mysqli->real_escape_string($userId['ID'])."',
'".$hash."',
'".$hash_key."',
NOW(),
'".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."'
)";
// Query uitvoeren
if(!$result = $mysqli->query($sql)) {
trigger_error('Fout in query: '.$mysqli->error);
} else {
if($mysqli->affected_rows > 0) {
echo 'Je bent ingelogd!';
}
}
} else {
$sql = " INSERT INTO
".$settings['db_login_attempts_table']."
(
date_time,
ip,
sys_info
)
VALUES (
NOW(),
'".$mysqli->real_escape_string($_SERVER['REMOTE_ADDR'])."',
'".$mysqli->real_escape_string($_SERVER['HTTP_USER_AGENT'])."'
)";
if(!$result = $mysqli->query($sql)) {
trigger_error('Fout in query: '.$mysqli->error);
}/*else {
if($mysqli->affected_rows > 0) {
echo 'Attempt ingevoerd<br>';
}
}
*/
echo 'Het wachtwoord of gebruikersnaam was incorrect';
$formulier = true;
}
}
} else {
echo 'Fout bij inloggen. Probeer het opnieuw.';
}
}
if($formulier) {
echo ' <form method="post" action="'.end(explode('/', $_SERVER["REQUEST_URI"])).'">
<p><label>Username:</label><input type="text" name="username" value="" /></p>
<p><label>Password:</label><input type="password" name="pass" value="" /></p>
<br><input type="hidden" name="form" value="'.time().'" />
<p><input type="submit" value="Inloggen" /></p>
</form>
';
}
}
} else {
trigger_error('Fout in query: '.$mysqli->error);
}
} else {
echo 'U bent al ingelogd.';
}
?>
iemand een idee wat er fout zou kunnen zijn?
Laatst bewerkt: