Error bij afsluiting query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicolas Pierre

Nicolas Pierre

26/11/2010 12:46:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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">&#8226; 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">&#8226; Deze gebruikersnaam is al bezet.</b><br>';
        $username = ""; $formulier = true;
    }


    if(empty($_POST["pass"])) {
        echo '<b style="color:#FDB839">&#8226; 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">&#8226; 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 ?
 
PHP hulp

PHP hulp

05/11/2024 07:44:38
 
Bas Cost Budde

Bas Cost Budde

26/11/2010 12:57:11
Quote Anchor link
parse error betekent: er zit een schrijffout in je PHP. Aan jou dan de vraag: wat klopt er niet op regel 35?
 
Nicolas Pierre

Nicolas Pierre

26/11/2010 12:58:44
Quote Anchor link
Ik zie toch niet direct een fout op regel 35
 
Bas Cost Budde

Bas Cost Budde

26/11/2010 13:02:50
Quote Anchor link
1) is "parse error" echt de hele melding?
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?
 
Nicolas Pierre

Nicolas Pierre

26/11/2010 13:04:37
Quote Anchor link
dit is register_do.php ja

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
 
- Dave -

- Dave -

26/11/2010 13:06:53
Quote Anchor link
Waar komt dat laatste haakje vandaan, of ben ik verkeerd aan het kijken.
 
Nicolas Pierre

Nicolas Pierre

26/11/2010 13:08:31
Quote Anchor link
Afsluiting van de volledige functie dacht ik. Men PHP editor ze die automatisch
 
Jel le

Jel le

26/11/2010 13:11:06
Quote Anchor link
Je mist hier een ")":
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
'".$mysql->real_escape_string(sha1(htmlspecialchars($password))."',


En die laatste "}" moet volgens mij ook weg, zoals dave al zei.
Gewijzigd op 26/11/2010 13:20:18 door Jel le
 
Gerhard l

gerhard l

26/11/2010 13:19:45
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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
//}    

?>
Gewijzigd op 26/11/2010 13:25:26 door gerhard l
 
- Raoul -

- Raoul -

26/11/2010 13:43:18
Quote Anchor link
Gerhard, waarom een mysql_real_escape_string over een IP adres?

Toevoeging op 26/11/2010 13:45:00:

IP Injection lol
 
Nicolas Pierre

Nicolas Pierre

26/11/2010 14:07:14
Quote Anchor link
lol :)
 

26/11/2010 14:32:03
Quote Anchor link
Regel 5,6 en 7 zijn onzin. Je zit niet eens binnen je if controle structuur, en je kopiëert variabele onnodig.
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.
 
Gerhard l

gerhard l

26/11/2010 14:48:16
Quote Anchor link
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


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
 
- Ariën  -
Beheerder

- Ariën -

26/11/2010 15:15:11
Quote Anchor link
Volgens mij kan je i.c.m Proxies ook IP-adressen faken.
Zeker weten doe ik niet, maar ik haal ook altijd mysql_real_escape_string() over IP-adressen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.