Error bij afsluiting query
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
require_once("functions.php");
require_once("dbcon.php");
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
if ($_SERVER['REQUEST_METHOD'] != 'POST')
{
$formulier = true;
}
else {
$formulier = false;
}
if(!ereg("^[A-Za-z0-9]+$",$username) || strlen($username) < 3) {
echo '<b style="color:#FDB839">• Uw gebruikersnaam is ongeldig.</b><br>';
$_POST["Gebruikersnaam"] = ""; $formulier = true;
}
$result = $mysql->query("SELECT ID FROM ".$tbl_name." WHERE username LIKE '".$mysqli->real_escape_string($username)."'");
if(!empty($username) && $result->num_rows > 0) {
echo '<b style="color:#FDB839">• Deze gebruikersnaam is al bezet.</b><br>';
$username = ""; $formulier = true;
}
if(empty($_POST["pass"])) {
echo '<b style="color:#FDB839">• Uw password is ongeldig.</b><br>';
$password = ""; $formulier = true;
}
if(empty($email) || preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $email)) {
echo '<b style="color:#FDB839">• Uw emailadres is ongeldig.</b><br>';
$email = ""; $formulier = true;
}
if($formulier) {
echo '<br>';
$_POST["pass"] = "";
} else {
$sql = "
INSERT INTO ".$tbl_name." (
username,
password,
email,
ipadres
)
VALUES (
'".$mysql->real_escape_string(htmlspecialchars($username))."',
'".$mysql->real_escape_string(sha1(htmlspecialchars($password))."',
'".$mysql->real_escape_string($email)."',
'".$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])."'
)";
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.';
}
}
}
?>
require_once("functions.php");
require_once("dbcon.php");
$username=$_POST['username'];
$password=$_POST['password'];
$email=$_POST['email'];
if ($_SERVER['REQUEST_METHOD'] != 'POST')
{
$formulier = true;
}
else {
$formulier = false;
}
if(!ereg("^[A-Za-z0-9]+$",$username) || strlen($username) < 3) {
echo '<b style="color:#FDB839">• Uw gebruikersnaam is ongeldig.</b><br>';
$_POST["Gebruikersnaam"] = ""; $formulier = true;
}
$result = $mysql->query("SELECT ID FROM ".$tbl_name." WHERE username LIKE '".$mysqli->real_escape_string($username)."'");
if(!empty($username) && $result->num_rows > 0) {
echo '<b style="color:#FDB839">• Deze gebruikersnaam is al bezet.</b><br>';
$username = ""; $formulier = true;
}
if(empty($_POST["pass"])) {
echo '<b style="color:#FDB839">• Uw password is ongeldig.</b><br>';
$password = ""; $formulier = true;
}
if(empty($email) || preg_match("/^[A-Za-z0-9._\-]+\@[A-Za-z0-9._\-]+\.[A-Za-z]{2,4}$/", $email)) {
echo '<b style="color:#FDB839">• Uw emailadres is ongeldig.</b><br>';
$email = ""; $formulier = true;
}
if($formulier) {
echo '<br>';
$_POST["pass"] = "";
} else {
$sql = "
INSERT INTO ".$tbl_name." (
username,
password,
email,
ipadres
)
VALUES (
'".$mysql->real_escape_string(htmlspecialchars($username))."',
'".$mysql->real_escape_string(sha1(htmlspecialchars($password))."',
'".$mysql->real_escape_string($email)."',
'".$mysql->real_escape_string($_SERVER['REMOTE_ADDR'])."'
)";
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.';
}
}
}
?>
Parse error: parse error in C:\wamp\www\register_do.php on line 55
Deze error krijg ik maar naar mijn weten is de query toch juist ?
parse error betekent: er zit een schrijffout in je PHP. Aan jou dan de vraag: wat klopt er niet op regel 35?
Ik zie toch niet direct een fout op regel 35
2) de fout zit in of voor de aangegeven regel. Eerder geopende haakjes of andere gepaarde tekens kunnen ook een parse-fout veroorzaken; de parser komt er op regel 35 dan pas achter.
Ik heb nog geen fout gevonden overigens. Kijken we naar register_do.php?
Dat is de enigste error die ik krijg ja
En ja ik weet het dat het daar in de geburen zit maar ik zie toch nie direct iets dat kan fout lopen
Waar komt dat laatste haakje vandaan, of ben ik verkeerd aan het kijken.
Afsluiting van de volledige functie dacht ik. Men PHP editor ze die automatisch
En die laatste "}" moet volgens mij ook weg, zoals dave al zei.
Gewijzigd op 26/11/2010 13:20:18 door Jel le
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
mysql_query ("INSERT INTO ".$tbl_name." (username,
password,
email,
ipadres)
VALUES ('".mysql_real_escape_string(htmlspecialchars($username))."',
'".mysql_real_escape_string(sha1(htmlspecialchars($password)))."',
'".mysql_real_escape_string($email)."',
'".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")
or die (mysql_error());
//laatste haakje weg
//}
?>
mysql_query ("INSERT INTO ".$tbl_name." (username,
password,
email,
ipadres)
VALUES ('".mysql_real_escape_string(htmlspecialchars($username))."',
'".mysql_real_escape_string(sha1(htmlspecialchars($password)))."',
'".mysql_real_escape_string($email)."',
'".mysql_real_escape_string($_SERVER['REMOTE_ADDR'])."')")
or die (mysql_error());
//laatste haakje weg
//}
?>
Gewijzigd op 26/11/2010 13:25:26 door gerhard l
Toevoeging op 26/11/2010 13:45:00:
IP Injection lol
lol :)
De if is ook maar raar. Stop binnen je if je controle van het formulier.
Ereg is oud, gebruik preg_match, maar nog beter is gewoon string functions en/of ctype functions.
Ik weet niet welke html je doet, maar tegenwoordig word <b> niet meer gebruikt, want het geeft alleen aan hoe iets eruit moet zien. Het geeft geen nadruk zoals <strong> wel doet, wat jij ook waarschijnlijk wilt.
Gebruik geen inline css, moeilijk te onderhouden.
Spring netjes in, alle statements hun eigen regel. Wat is het nut van wat je doet po regel 19? Niks lijkt mij. Zeker niet als je naar regel 22 kijkt.
If van regel 24 is niet logisch, stel dat er geen username is opgegeven... Wordt wel doorlopen.
Wat doe je nu dan weer in de if van regel 29? Dat je kijkt of ie niet leeg is, is correct, maar regel 31...
Regex voor controleren van geldigheid van e-mailadres is incorrect. Logische opperator klopt ook niet.
Regel 36, wtf is dat nou...
Je if van regel 38 is niet logisch. Ook niet wat je erin doet.
Je doet pas htmlspecialchars als je je data uit de database haalt. Niet als je het erin stopt. Verder is die htmlspecialchars ook niet nodig bij die sha1, want dat is een hashing functie. Daar komt geen html uit.
Laat NOOIT de error zien die php of mysql genereerd. Het is niet vriendelijk voor je gebruiker, en hackers kunnen die informatie misbruiken.
Internet Verslaafde op 26/11/2010 13:43:18:
Gerhard, waarom een mysql_real_escape_string over een IP adres?
Toevoeging op 26/11/2010 13:45:00:
IP Injection lol
Toevoeging op 26/11/2010 13:45:00:
IP Injection lol
haha ja ;) ik had alleen de code van de poster gekopieerd heb er verder niets aan veranderd behalve de dingen die ik fout zag, maar nee die real escape string was niet nodig geweest ;) scherp bezig
Zeker weten doe ik niet, maar ik haal ook altijd mysql_real_escape_string() over IP-adressen.