Goeie dag ik ben al een tijdje bezig met een registreer script waarbij het mogelijk moet zijn dat het ipadres van de member wegeschreven moet worden naar de database.

Het script zelf is klaar maar ik krijg de volgende error:

parse error, unexpected '}'in F:\Server\xampp\htdocs\testspelletje2\registreer.php on line 113

Hier onder zal het script zelf volgen hopelijk zien misschien 1 van jullie het probleem.

M.V.G.
Jacco


<?php
include("config.php");
?>

<?php
$gebruikersnaam = $_POST['login']; // Gebruikersnaam kiezen
$wachtwoord = $_POST['pass']; // Wachtwoord kiezen
$herhaalwachtwoord = $_POST['passconfirm']; // Wachtwoord herhalen
$email = $_POST['email']; // Email adres invullen
$refferal = $_POST['recruiter']; // Je refferal invullen
$type = $_POST['type']; // Je type kiezen van wat je wilt zijn
$IP = $_SERVER['REMOTE_ADDR']; // IP adres controle
${"select$type"} = "selected";

// Even je IPadres checken
$clientIP = $_SERVER['REMOTE_ADDR'];
$forwardedFor = ($_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['HTTP_CLIENT_IP'];
$forwardedFor = preg_replace('/, .+/','',$forwardedFor);
$dbres = mysql_query("SELECT * FROM `[users]` WHERE `IP`='$clientIP' AND (`IP`='$clientIP' OR `IP`='$forwardedFor') AND `activated`='1'");
if(mysql_num_rows($dbres) != 0); {
?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<table width="100%" height="100%">
<tr><td>
<p align="center">Er mag maar 1 account gemaakt worden per IP Adres.
&nbsp;</b></p></td></tr>
</table>
</body>
</html>
<?php
if(isset($_POST['submit']))
$message = Array(
"Je login mag alleen A-Z, a-z, 0-9, _ en - hebben",
"De wachtwoorden die je gaf zijn niet identiek",
"Vul een geldig e-mail adres in",
"Selecteer een type crimineel",
"Er bestaat al iemand met die login",
"Er is al iemand met die e-mail");

$msgnum = -1;
if(preg_match('/^[a-zA-Z0-9_\-]+$/',$login) == 0)
$msgnum = 0;
if($pass == "" || $pass != $passconfirm)
$msgnum = 1;
if(preg_match('/^.+@.+\..+$/',$email) == 0)
$msgnum = 2;
if($type != 1 && $type != 2 && $type != 3)
$msgnum = 3;
else {
$dbres = mysql_query("SELECT `id` FROM `[users]` WHERE `login`='$login'");
if(mysql_num_rows($dbres) > 0)
$msgnum = 4;
$dbres = mysql_query("SELECT `id` FROM `[users]` WHERE `email`='$email'");
if(mysql_num_rows($dbres) > 0)
$msgnum = 5;

if($msgnum == -1)
$code = rand(100000,999999);
mysql_query("UPDATE `[users]` SET `recruits`=`recruits`+'1' WHERE `login`='{$refferal}'");
mysql_query("UPDATE `[users]` SET `bank`=`bank`+'250000' WHERE `login`='{$refferal}'");
mysql_query("INSERT INTO `[users]`(signup,login,pass,IP,email,type) values(NOW(),'$gebruikersnaam',MD5('$wachtwoord'),'$IP','$email',$type)");
mysql_query("INSERT INTO `[temp]`(login,IP,code,area,time) values('$gebruikersnaam','$IP',$code,'signup',NOW())");
$id = mysql_insert_id();
$dbres = mysql_query("SELECT `login` FROM `[temp]` WHERE `area`='signup' AND `id`='$id' AND `code`='$code'");

if($data = mysql_fetch_object($dbres))
mysql_query("UPDATE `[users]` SET `activated`=1,`signup`=NOW() WHERE `login`='{$data->login}'");
mysql_query("DELETE FROM `[temp]` WHERE `id`='$id'");
echo " <tr><td class=\"mainTxt\">Activatie voltooid, je kunt nu inloggen</td></tr>\n";
}
array($email,"maffiacrime activatie-code","Klik op de volgende link om je account te activeren:\nhttp://83.81.115.114/testspelletje2/signup.php?id=$id&code=$code","From: maffiacrime <[email protected]>\n");
}

?>

<html>

<head>
<title>Arenawar</title>
<link rel="stylesheet" type="text/css" href="css.css" />
</head>
<body style="background: #000000; margin: 0px;">
<table align="center" width=100%>
<?php /* ------------------------- */

if(isset($_GET['id'],$_GET['code']))
echo " <tr><td class=\"subTitle\"><b>Activatie</b></td></tr>\n";

$id = $_GET['id'];
$code = $_GET['code'];
$dbres = mysql_query("SELECT `login` FROM `[temp]` WHERE `area`='signup' AND `id`='$id' AND `code`='$code'");

if($data = mysql_fetch_object($dbres)) {
mysql_query("UPDATE `[users]` SET `activated`=1,`signup`=NOW() WHERE `login`='{$data->login}'");
mysql_query("DELETE FROM `[temp]` WHERE `id`='$id'");
echo " <tr><td class=\"mainTxt\"></td></tr>\n";
}
else {
echo " <tr><td class=\"mainTxt\">Incorrecte activatie-code...</td></tr>\n";


if($msgnum != -1)
echo " <tr><td class=\"subTitle\"><b>Aanmelden</b></td></tr>\n";
if(isset($msgnum) && $msgnum != -1)
echo " <tr><td class=\"mainTxt\">\n {$message[$msgnum]}\n </td></tr>\n";
$rec = $_GET['rec'];

if($rec == "")

} else {
echo " <tr><td class=\"mainTxt\">Je bent geregistreerd. Je kunt nu inloggen.</td></tr>\n";
}
?>

<b> Welkom bij Arenawar meld je hier snel aan!</b>
<form method="post"><table align="center">
<tr><td width=100>Login:</td> <td><input type="text"Style="Color: white" name="login" maxlength=16 style="width: 150;" value="<? echo $login ?>"><b>Min. 3 tekens</b></td></tr>
<tr><td width=100>Wachtwoord:</td> <td><input type="password" Style="Color: white" name="pass" maxlength=16 style="width: 150;"></td></tr>
<tr><td width=100>Herhaal:</td> <td><input type="password" Style="Color: white"name="passconfirm" maxlength=16 style="width: 150;"></td></tr>
<tr><td width=100>E-Mail:</td> <td><input type="text" Style="Color: white"name="email" maxlength=64 style="width: 150;" value="<? echo $emaill ?>"></td></tr>
<tr><td width=100>Type:</td> <td><select name="type" style="width: 150;">
<option value="1" $select1>Drugsdealer</option>
<option value="2" $select2>Moordenaar</option>
<option value="3" selected $select3>Politie</option>
</select> <a href="javascript: //" onClick="window.open('help.php#types')">[?]</a></td></tr>




<tr><td width=100>Referal:</td> <td><input type="text" Style="Color: white" name="recruiter" maxlength=64 style="width: 150;" value="<? echo $rec; ?>"></td></tr>
<tr><td widrh=100>Referal:</td> <td><?php echo $rec; ?>
<input name="recruiter" type="hidden" value="<?php echo $rec; ?>"></td></tr>
<tr><td></td><td align="right"><input type="submit" name="submit" style="width: 100;" Style="Color: white" value="Aanmelden"></td></tr>
</table></form><br>
*Als u niet weet wat Referal is, laat het vak dan leeg
</td></tr>


</table>
<?php
mysql_close();
?>
</body>
</html>


<?php
if($rec == "")

} else {
?>
Hier gaat het fout, je mist de { na het if statement...

Verder is het met dit soort problemen echt niet nodig om de hele code te posten. Regels 5-15 waren in dit geval bijvoorbeeld meer dan voldoende geweest...

ps. Verder zou het ook geen gek idee zijn om eens wat netter te gaan scripten. Dus toepassen van foutafhandeling, netjes inspringen, controleren of variabelen wel bestaan voordat je ze gebruikt, input in queries beveiligen, etc, etc.
En dan heb ik nog even de vraag wat je hier mee wil bereiken:

<?php
$gebruikersnaam = $_POST['login']; // Gebruikersnaam kiezen
$wachtwoord = $_POST['pass']; // Wachtwoord kiezen
$herhaalwachtwoord = $_POST['passconfirm']; // Wachtwoord herhalen
$email = $_POST['email']; // Email adres invullen
$refferal = $_POST['recruiter']; // Je refferal invullen
$type = $_POST['type']; // Je type kiezen van wat je wilt zijn
?>
@ blance bedankt ik heb dat missende ding erin gezet en krijg alleen nog de volgende error:

unespectend $end in line 151 terwijl die bij mij helemaal leeg is.

dit is het laatste stukje:
</table>
<?php
mysql_close();
?>
</body>
</html>

@php newbie

Wat ik daarmee berijjken wil is dat het systeem die gegevens opslaat in mn database zodat ik ze in mijn adminpanel weer kan opvragen.
Ik had oowk sown probleem, eerst.

Weet alleen niet meer waaraan het lag xD

Vraagje, wat moet die mysql_close() sluiten?

Bij mij was er iets met $db = weet ik niet meer wat..
en ik moest gebruike: mysql_close($db)..

Maar.. << Ik heb zelf ook nog niet zoveel ervaring met PHP/Mysql dus miss heb ik eht verkeerd.
unespectend $end in line 151 terwijl die bij mij helemaal leeg is.
Dat houdt in de meeste gevallen in dat het aantal { niet overeen komt met het aantal }. Even tellen dus...

Tip: netjes inspringen wil daar ook altijd bij helpen.
Dan ga ik dat idd even na tellen en misschien dat er iemand een klein voorbeeldje kan plaatsen hoe je het beste in kan springen want dat snap ik beter van wat je daarmee bedoeld.

M.V.G.
Jacco
Persoonlijk kies ik altijd de volgende manier:
<?php
if(statement)
{
// Doe iets
while(loop)
{
// Nog meer doen
}
}
else
{
// Doe iets anders
}
?>
Nog een algemene codeer-tip: er zijn van die tekens die altijd uitgebalanceerd moeten zijn, zoals (), {} en []. Ook enkele en dubbele quotes moeten bijna altijd met zijn tweeën zijn. Ik typ die tekens dus ook meteen dubbel en zet de cursor daarna 1 positie terug.

Ik doe dus niet:

1) if (
2) inhoud van de if typen
3) )

maar:

1) if ()
2) 1 positie terug
3) inhoud van die if typen

Zo krijg je bijna nooit dit soort problemen.
Ik typ die tekens dus ook meteen dubbel en zet de cursor daarna 1 positie terug.
Veel editors kennen deze functionaliteit en doet dit al automatisch voor je. Onder andere de gratis editor Eclipse is er zo een.

Een goede editor is belangrijk om mee te werken, het helpt je heel erg bij het debuggen van je code.
Ik zelf gebruik dreamweaver.

het probleempje $end is opgelost ik had idd een } te weinig en die staat er inmiddels.

Ik vind het alleen wel knap om daarna dit te zien in mn scherm:

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in F:\Server\xampp\htdocs\testspelletje2\registreer.php on line 19

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in F:\Server\xampp\htdocs\testspelletje2\registreer.php on line 19

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in F:\Server\xampp\htdocs\testspelletje2\registreer.php on line 20


dat gaat om dit stukje:

// Even je IPadres checken
$clientIP = $_SERVER['REMOTE_ADDR'];
$forwardedFor = ($_SERVER['HTTP_X_FORWARDED_FOR'] != "") ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['HTTP_CLIENT_IP'];
$forwardedFor = preg_replace('/, .+/','',$forwardedFor);
$dbres = mysql_query("SELECT * FROM `[users]` WHERE `IP`='$clientIP' AND (`IP`='$clientIP' OR `IP`='$forwardedFor') AND `activated`='1'");
if(mysql_num_rows($dbres) != 0); { // check ip
?>

ik vraag me af wat daar mis mee is...

Reageren