Beste leden,
Ik heb een probleem met mijn aanmeld bestand.
Elke keer als iemand registreerd met: http:/site.nl/aanmelden/gebruikersnaam
Zou Gebruikersnaam dan elke keer een refferal punt moeten hebben. Maar dat gebeurd juist niet in de database...
Kunnen jullie me ermee helpen?
Hier is de code:
PHP
<?php
require_once 'classes/captcha.class.php';
require_once 'classes/mail/Rmail.php';
$recced = false;
if($is_user)
{
message('warning','Uhm?','Je bent al ingelogt! <a href="/leden/uitloggen/">Uitloggen?</a>');
}
else {
# Array Definieren voor de errors
$error = array();
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
/** Safety Inputs :D **/
$post_name = filter_escape($_POST['username']);
$post_email = filter_escape($_POST['email']);
$post_password = filter_escape($_POST['password']);
$post_controle = filter_escape($_POST['controle']);
$post_country = filter_escape($_POST['country']);
// Geboorte Datum
$post_born_day = filter_escape($_POST['born_day']);
$post_born_month = filter_escape($_POST['born_month']);
$post_born_year = filter_escape($_POST['born_year']);
// Geboorte Datum Unix Time
$post_borndate = mktime(0, 0, 0, $post_born_month, $post_born_day, $post_born_year);
// Cypted Wachtwoord
$cr_pass = crypt_password($post_password);
// Random Strin Genereren
/** Captcha **/
$captcha_control = recaptcha_check_answer ($privatekey,
$CUR_IP,
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
# Querys Username | Email Exists?
$exName = mysql_query("SELECT id FROM user_accounts WHERE username = '".$post_name ."' LIMIT 1");
$exMail = mysql_query("SELECT id FROM user_accounts WHERE email = '".$post_email ."' LIMIT 1");
# Errors?
if(!$exName || !$exMail)
{
database_error();
}
/** Alle Velden controleren op de input! **/
# Lengte gebruikersnaam
if(strlen($post_name) < 4 || strlen($post_name) > 14 || !preg_match('/^[\w\d\s]*$/',$post_name))
{
$error['1'] = 'Je Gebruikersnaam moet Min. 4 en mag Max 14. letters en/of cijfers bevatten.';
}
# Gebruikersnaam al in gebruik?
if(mysql_num_rows($exName) > 0 && empty($error['1']))
{
$error['2'] = 'Deze Gebruikersnaam is al in gebruik.';
}
# Email value controleren
if(!validate_email($post_email))
{
$error['3'] = 'Je Email moet eruit zien als [email protected].';
}
# Email al in gebruik?
if(mysql_num_rows($exMail) > 0 && empty($error['3']))
{
$error['4'] = 'Dit Email is al in gebruik.';
}
# Wachtwoord controleren
if(strlen($post_password) < 6)
{
$error['5'] = 'Je Wachtwoord moet Min. 6 Characters bevatten.';
}
# Wachtwoorden komen overeen?
if($post_password !== $post_controle && $error['5'])
{
$error['6'] = 'Je Wachtwoord komt niet overeen met de controle.';
}
# Controleren of de Geboortedatum wel een geldige input heeft.
if(!is_numeric($post_born_day) || !is_numeric($post_born_month) || !is_numeric($post_born_year))
{
$error['7'] = 'Je Geboorte datum mag alleen uit cijfers bestaan, bijvoorbeeld 11/06/1990.';
}
# Captcha Controleren
if(!$captcha_control -> is_valid)
{
$error[''] = 'De Captcha komt niet overeen met die op de afbeelding.';
}
/** Geen errors gevonden? invoegen dan maar!? **/
if(!count($error) > 0)
{
$RandomString = randomString();
if(isset($_POST['rec']) && ctype_digit($_POST['rec']))
{
$recID = $_POST['rec'];
$recced = true;
}
if(!isset($error))
{
if(isset($_POST['rec']) && ctype_digit($_POST['rec']))
{
mysql_query("UPDATE `user_accounts` SET `refs`=`refs`+1 WHERE `id`=".$_POST['rec']) or die(mysql_error());
}
}
# SQL insert Query
$sql_insert_user = "INSERT INTO user_accounts
(id,username,email,password,usergroup,country,avatar,registerdate,borndate,activated)
VALUES
('0',
'".$post_name."',
'".$post_email."',
'".$cr_pass."',
'1',
'".$post_country."',
'/images/avatars/no_avatar.png',
'".time()."',
'".$post_borndate."',
'".$RandomString."')
";
# Is er een Error onstaan?
if(!$qInsert = mysql_query($sql_insert_user))
{
database_error();
}
else {
$mail = new Rmail();
$mail->setFrom($SITE_NAAM.' <'.$MAIL_SYSTEEM.'>');
$mail->setSubject('Account Activeren');
$mail->setPriority('normal');
$mail->setText('
Beste '.$post_name.'!
Dankje voor het registreren op '.$SITE_NAAM.'.
Je ontvangt deze email omdat je jouw account moet
activeren om toegang te krijgen op de site.
Dit kun je doen door op de volgende url te klikken:
'.$SITE_URL.'/leden/activeren/'.$RandomString.'/
Werkt dit niet?
Ga dan naar '.$SITE_URL.'/leden/activeren/
en vul de volgende code in: '.$RandomString.'
Account gegevens:
Gebruikersnaam: '.$post_name.'
Wachtwoord: '.$post_password.'
Andere Instellingen kun je op de site instellen.
(Verwijder deze mail na de Activatie voor je eigen veiligheid!)
Met Vriendelijke Groet,
Team MultiHacks');
$send_mail = $mail->send(array(''.$post_email.''));
while($row = mysql_fetch_assoc($qCode))
{
insertEvent($row['id'],'heeft zich aangemeld','/profiel/'.$row['id'].'/');
}
message('succes','Je account is aangemaakt','Je account is aangemaakt, je kan nu inlogge op de site '.$post_name.' .');
}
}
}
/** Als er Geen veld is verstuurt of er een error is dan het veld laten zien! **/
if(count($error) > 0 || $_SERVER['REQUEST_METHOD'] !== 'POST')
{
?>
<h1>Aanmelden op <?php echo $SITE_NAAM; ?></h1>
<div class="cwrap">
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST' && count($error) > 0)
{
echo '<div class="errorbox">';
echo '<p style="font-weight:bold;">Er zijn een aantal fouten opgetreden:</p><ol>';
foreach($error as $errors)
{
echo '<li>'.$errors.'</li>';
}
echo '<ol></div>';
}
?>
<div style="float:left; width:55%;">
<div id="stylized" class="cform">
<form id="form" name="form" method="post" action="">
<label>Gebruikersnaam<em>*</em>
<span class="small">Word vertoont</span>
</label>
<input type="text" name="username" id="username" tabindex="1" />
<label>Email<em>*</em>
<span class="small">Een geldig Email adres</span>
</label>
<input type="text" name="email" id="email" tabindex="2" />
<label>Wachtwoord<em>*</em>
<span class="small">Jouw Wachtwoord</span>
</label>
<input type="password" name="password" id="password" tabindex="3" />
<label>Controle<em>*</em>
<span class="small">Herhaal je Wachtwoord</span>
</label>
<input type="password" name="controle" id="controle" tabindex="4" />
<?php
if($recced)
{
$sql = mysql_query("SELECT `id` FROM `users` WHERE `id`=".$recID." LIMIT 1") or die(mysql_error());
if(mysql_num_rows($sql) == 1)
{
$r = mysql_fetch_assoc($sql);
echo "<input type='hidden' name='rec' value='".$r['id']."'>";
}
}
if(isset($_GET['rec']))
{
$sql = mysql_query("SELECT `id` FROM `users` WHERE `username`='".trim(mysql_real_escape_string($_GET['rec']))."' LIMIT 1") or die(mysql_error());
if(mysql_num_rows($sql) == 1)
{
$r = mysql_fetch_assoc($sql);
echo "<input type='hidden' name='rec' value='".$r['id']."'>";
}
}
?>
<label>Land
<span class="small">Waar woon je?</span>
</label>
<select name="country" tabindex="5">
<option value="nl">Nederland</option>
<option value="be">België</option>
<option value="na">Niet aangeven</option>
</select>
<label>Geboorte datum<em>*</em>
<span class="small">DD/MM/JJ</span>
</label>
<select style="width:50px;" name="born_day" tabindex="5">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select style="width:53px;" name="born_month" tabindex="5">
<option value="1">Januari</option>
<option value="2">Februari</option>
<option value="3">Maart</option>
<option value="4">April</option>
<option value="5">Mei</option>
<option value="6">Juni</option>
<option value="7">Juli</option>
<option value="8">Augustus</option>
<option value="9">September</option>
<option value="10">Oktober</option>
<option value="11">November</option>
<option value="12">December</option>
</select>
<select style="width:84px;" name="born_year" tabindex="5">
<?php
for ($y = 1975; $y <= 2000; $y++)
{
echo '<option value="'. $y .'">'. $y .'</option>';
}
?>
</select>
<div style="float:right; margin:2px 0 6px 15px;" id="captcha">
<?php echo recaptcha_get_html($publickey); ?>
</div>
<p>
Door je te aanmelden ga je automatisch akkoord met de <a style="text-decoration:underline;" tagret="_blank" href="/pagina-algemene-voorwaarden/">Algemene voorwaarden</a></p>
<button type="submit">Aanmelden</button>
<div class="spacer"></div>
</form>
</div>
</div>
<div style="float:right; width:40%; padding:14px;">
Velden met een <em>*</em> zijn verplicht <br /><br />
<b style="font-size: 14px;">Gebruikersnaam</b><br />
<p>
<i>Je Gebruikersnaam word vertoont op de site Dit veld Moet <ins>Min. 4</ins> en mag <br />
<ins>Max. 14</ins> letters en/of cijfers bevatten</i> <br /><br />
</p>
<p>
<b style="font-size: 14px;">Email</b><br />
<i>Met je Email Valideer je jouw account, door mate van een Bevestigings email, Je email moet eruit zien als <ins>[email protected]</ins></i> <br /><br />
</p>
<p>
<b style="font-size: 14px;"> Wachtwoord</b><br />
<i>Je wachtwoord moet <ins>Min. 6 </ins>en mag <ins>Max 30 letters</ins> en/of cijfers bevatten. Hiermee log je dus in!</i> <br /><br />
</p>
</div>
</div>
<?php
}
}
?>
Toon Meer
Wat doe ik nou fout?
Alvast bedankt.