SQL Error

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Aftertoucher

Aftertoucher

06/09/2006 23:45:00
Quote Anchor link
hallo, ik ben bezig om een soort admin voor me site te maken waar ik ook moderaters enzo kan toevoegen maar als ik me formpje verstuur krijg ik dit:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

jaja, lkkr duidelijk, dit is het stukje waar de query voor komt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
    <?php
    if(isset($_POST['Submit'])){
                    if(empty($_POST['username']) || empty($_POST['password'])){
                        echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
                    }
else{
                        mysql_query("INSERT INTO `admin` ( `id` , `username` , `password` ) VALUES ( NULL , '".$_POST['username']."', SHA1( '".$_POST['password']."' ) ") or die (mysql_error());
                        echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
                    }
                }

    ?>


zoals je ziet staan er wel meer " in line 1, weet iemand waar het probleem zit?

edit:
of moet ik eerst een variable maken en dan pas die in me query gooien?
zoiets als $query = INSERT balabl
mysql_query($query) or die (mysql_error());
?

edit 2:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
    <?php
    if(isset($_POST['Submit'])){
                    if(empty($_POST['username']) || empty($_POST['password'])){
                        echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
                    }
else{
                    $query = "INSERT INTO `admin` ( `id` , `username` , `password` ) VALUES ( NULL , '".$_POST['username']."', SHA1( '".$_POST['password']."' ) ";
                        mysql_query($query) or die (mysql_error());
                        echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
                    }
                }

    ?>

werkt ook niet :(
Gewijzigd op 01/01/1970 01:00:00 door Aftertoucher
 
PHP hulp

PHP hulp

18/04/2024 11:29:37
 
Winston Smith

Winston Smith

06/09/2006 23:53:00
Quote Anchor link
Probeer dit eens:
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
    if(isset($_POST['Submit'])){
                    if(empty($_POST['username']) || empty($_POST['password'])){
                        echo 'Je bent 1 of meerdere velden vergeten in te vullen!';
                    }
else{
                          $username = $_POST['username'];
                          $password = sha1($_POST['password'];
                        $query = mysql_query("INSERT INTO admin VALUES (NULL , '" . $username . "', '" . $password . "')");
                        if(!$query) {
                              echo mysql_error();
                        }
else {
                            echo '"'.$_POST['username'].'" is succesvol toegevoegd!';
                        }
                    }
                }

   ?>

Het is niet heel netjes ,maar wellicht werkt het en kan je het zelf opschonen.

Persoonlijk vind ik het overigens netter om eerst de query op te stellen en dan pas te versturen, zoals je zelf voorstelt. Maar in principe zou het niet uit moeten maken voor de werking van je script.
 
Aftertoucher

Aftertoucher

06/09/2006 23:55:00
Quote Anchor link
Parse error: syntax error, unexpected ';' in /home/hardcore/public_html/admin.php on line 43

lijn 43 is hier:
$password = sha1($_POST['password'];
 
- wes  -

- wes -

06/09/2006 23:58:00
Quote Anchor link
$password = sha1($_POST['password']);

doe je ogen open en zie het zelf ook , dit heeft niets met PHP SQL errors te maken, dit is gewoon dom als je zoiets niet zelf ziet
 
Winston Smith

Winston Smith

06/09/2006 23:59:00
Quote Anchor link
aah sorry, vergeten sha1 functie af te sluiten. Moet zijn:
$password = sha1($_POST['password']);
 
Aftertoucher

Aftertoucher

06/09/2006 23:59:00
Quote Anchor link
@wes: ...dat kan je ook wel wat normaliter zeggen...

@Kasper: hij werkt :) bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Aftertoucher
 
Winston Smith

Winston Smith

07/09/2006 00:03:00
Quote Anchor link
Graag gedaan :)

tip: gebruik die backtics (`) niet meer, dat zorgt voor irritatie en onduidelijkheid :) En op zich hoef je die velden ook niet aan te geven, tenzij je niet alle velden in wilt vullen (zo kan je 'id' weglaten bv.)

Edit:
En zorg er ook voor dat je input niet direct in een query invoert, maar zet het eerst om met htmlentities of een dergelijke functie. Dat zorgt er niet alleen voor dat (de meeste) schadelijke code niet meer uitgevoerd kan worden, het houdt je query ook nog eens korter :)

Dus ipv $_POST['username'] in je query, zet je het éérst om met $username = htmlentities($_POST['username']) en dan gooi je de variabele $username in de query.
Gewijzigd op 01/01/1970 01:00:00 door Winston Smith
 
- wes  -

- wes -

07/09/2006 08:38:00
Quote Anchor link
@aftertoucher , nee normaler kan ik dit niet zeggen. Is net als dat je zonder banden onder je auto probeerd weg te komen en dan zeuren hij doet het niet maarik weet niet wat het is
 



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.