Hallo cp'ers,
Ik ben momenteel php aan het leren en ik zat net wat te scripten namelijk register.php en de functies ervan.
Nu krijg ik in het script van de functies(register_funcs.ins) een fout?
Fout:
PHP
Parse error: syntax error, unexpected T_STRING, expecting ']' in C:\xampp\htdocs\indcludes\register_funcs.inc on line 70
Script:
PHP
<?php
// Een string met de databasehost, -gebruiker, -wachtwoord en de
// geselecteerde database
include_once('db_vars.inc');
// Een string die wordt gebruikt voor md5-encryptie. U kunt deze
// voor de veiligheid verplaatsen naar een bestand buiten de
// webboomstructuur.
$supersecret_hash_padding = 'A string that is used to pad out
short strings for md5 encryption.';
function user_register() {
// Deze functie werkt alleen met superglobale arrays, omdat
// omdat hierin geen waarden of declarerende globals worden
// doorgegeven
global $supersecret_hash_padding;
// Zijn alle vars aanwezig en matchen alle wachtwoorden?
if (strlen($_POST['user_name']) <= 25 &&
strlen($_POST['password1']) <= 25 && ($_POST['password1'] ==
$_POST['password2']) && strlen($_POST['email']) <= 50 &&
validate_email($_POST['email'])) {
// Valideer gebruikersnaam en wachtwoord
if (account_namevalid($_POST['user_name']) ||
strlen($_POST['password1'] >= 6)) {
$user_name = strtolower($_POST['user_name']);
$user_name = trim($user_name);
// Escapen is niet nodig, aangezienenkelvoudige
// aanhalingstekens niet zijn toegestaan.
$email = $_POST['email'];
// Dupliceren van gebruikersnaam of e-mails is niet
// toegestaan
$query = "SELECT user_id
FROM user
WHERE user_name = '$user_name'
AND email = '$email'";
$result = mysql_query($query);
if ($result && mysql_num_rows($result) > 0) {
$feedback = 'ERROR-Gebruikersnaam of email adress is al geregistreert
of bestaat niet';
return $feedback;
} else {
$password = md5($_POST['password1']);
$user_ip = $_SERVER['REMOTE_ADDR'];
// Maak een nieuwe hash om in de db en de
// bevestigings-e-mail te plaatsen
$hash = md5($email.$supersecret_hash_padding);
$query = "INSERT INTO user (user_name, password,
email, remote_addr, confirm_hash, is_confirmed, date_created)
VALEUS ('$user_name', '$password', '$email',
'$user_ip', '$hash', '0',
NOW())";
$result = mysql_query($query);
if (!$result) {
$feedback = 'ERROR-Datbase error';
return $feedback;
} else {
// Verzend de bevestigigns-e-mail
$encoded_email = urlencode($_POST['email']);
$mail_body = <<< EOMAILBODY
Dank u voor het registreren op example.com. Click op deze link
voor het activeren van je account:
http://localhost/confirm.php?hash=$hash&email=$encoded_email
Als je de activatiesite bekijkt wordt je ingelogd.
EOMAILBODY;
mail ($email, 'Example Registration Confirmation',
$mail_body, 'From: [email protected]');
// Geef een bericht bij een geslaagd registratie
$feedback = 'Jij bent succesvol geregistreerd.
Jij zult binnen een ogeblik een registratie mail ontvangen.';
return $feedback;
}
}
} else {
$feedback = 'ERROR-Gebruikersnaam of wachtwoord klopt niet';
return $feedback
}
} else {
$feedback = 'ERROR-Vul alstublieft al de velden (correct) in';
return $feedback;
}
}
function account_namevalid() {
// parameter voor gebruik met strspan
$span_str = "abcdefghijklmnopqrstuvwxyz" .
"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-";
// moet tenminste één teken bevatten
if (strspn($_POST['user_name'],$span_str) == 0) {
return false;
}
// meot alle toegestane tekens bevatten
if (strspn($_POST['user_name'],$span_str) != strlen($name)) {
return false;
}
// minimale en maximale lengte
if (strlen($_POST['user_name']) <5) {
return false
}
if (strlen($_POST['user_name']) <25) {
return false
}
// niet-toegestane namen
if
(eregi("^((root)|(bin)|(daemon)|(adm)|(lp)|(sync)|(shutdown)|
(halt)|(mail)|(news)|(uucp)|(operator)|(games)|(mysql)|
(httpd)|(nobody)|(dummy)|(www)|(cvs)|(shell)|(ftp)|(irc)|
(debian)|(ns)|(download))$", $_POST['user_name'])) {
return false
}
if (eregi("^(anoncvs_)", $_POST['user_name'])) {
return false
}
return true;
}
function validate_email () {
return (ereg('^[-!#$%&\\'*+\\./0-9=?A-Z^_`a-z{|}~]+'. '@'. '[-
!#$%&\\'*+\\/0-9=?A-Z^_`a-z{|}~]+\\.' . '[-!#$%&\\'*+\\./0-9=?A-
Z^_`a-z{|}~]+$', $_POST['email']));
}
function user_confirm() {
// Deze functie werkt alleen met superglobale arrays, omdat
// omdat hierin geen waarden of declarerende globals worden
// doorgegeven
global $supersecret_hash_padding;
// Verifieer of ze het e-mailadres niet vervalsen
$new_hash = md5($_GET['email'].$supersecret_hash_padding);
if ($new_hash && ($new_hash == $_GET['hash'])) {
$query = "SELECT user_name
FROM user
WHERE confirm_hash = '$new_hash'";
$result = mysql_query($query);
if (!$result || mysql_num_rows($result) < 1) {
$feedback = 'ERROR-Hash not found';
return $feedback
} else {
// Bevestig de e-mail en maak de account actief
$email = $_GET['email'];
$hash = $_GET['hash'];
$query = "UPDATE user SET email='$email',
is_confirmed='1' WHERE confirm_hash='$hash'";
$result = mysql_query($query);
return 1;
}
} else {
$feedback = 'ERROR-valeus do not match';
return $feedback;
}
}
?>
Toon Meer
Ps: de map naam indcludes klopt :p