Registreren lukt niet...-.-

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark Markson

Mark Markson

09/10/2011 17:15:53
Quote Anchor link
Hoi, ik ben nieuw hier en ben aan het klooien met PHP. Ik heb weleens eerder een registratiescript gemaakt, meestal werkt het. Dit is dus een van de gevallen waarin het maar niet wil lukken.

Ik heb dus een database gemaakt die "multimarkt" heet. Ik heb een "connection.php" en ik gebruik USB-webserver. Dit is de code van mijn connection.php:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
$host
= "localhost"; //database location
$user = "root"; //database username
$pass = "usbw"; //database password
$db_name = "multimarkt"; //database name
//database connection

$link = mysql_connect($host, $user, $pass);
mysql_select_db($db_name);
//sets encoding to utf8
mysql_query("SET NAMES utf8");
?>
.

Ik heb een formulier en die ziet er zo uit:

<div id="inhoud">
<form id="form1" name="form1" method="post" action="registreren.php">
<p></p>
<table width="268" border="0" align="center">
<tr>
<th width="117" scope="col">Gebruikersnaam:</th>
<th width="141" scope="col"><label for="GebruikersNaam2"></label>
<input type="text" name="GebruikersNaam" id="GebruikersNaam2" /></th>
</tr>
<tr>
<td>Wachtwoord:</td>
<td><label for="WachtWoord1"></label>
<input type="text" name="WachtWoord1" id="WachtWoord1" /></td>
</tr>
<tr>
<td>Wachtwoord herhalen:</td>
<td><label for="WachtWoord2"></label>
<input type="text" name="WachtWoord2" id="WachtWoord2" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" name="button" id="button" value="Submit" /></td>
</tr>
</table>
</form>
<p>

</div>

Als laatst heb ik een PHP code, die blijkbaar niet werkt. Ik snap er echt niks van, naar mijn mening zou hij gewoon moeten werken...


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
<?php
include("connection.php");
if(isset($_REQUEST['button']))
{

    $gb= $_POST['GebruikersNaam'];
    $ww1= $_POST['WachtWoord1'];
    $ww2 = $_POST['WachtWoord2'];
    
    if($ww1 == $ww2)
    {

        $opdracht = "INSERT INTO leden (Gebruikersnaam, Wachtwoord1, Wachtwoord2) VALUES ('$gb', '$ww1', '$ww2')";
    }

    
    if($gb == "" AND $ww1 == "" AND $ww2 == "")
    {

        echo "U heeft geen gegevens ingevuld.";
    }

    
    if(mysql_query($opdracht))
    {

        echo "U bent geregistreerd!";
    }

    
    else
    {
        echo "De gegevens zijn niet naar de database gestuurd.";
    }
    
}

?>


Dit zou toch gewoon moeten werken<
 
PHP hulp

PHP hulp

14/03/2025 06:19:51
 
- SanThe -

- SanThe -

09/10/2011 17:24:49
Quote Anchor link
SQL-Injection is mogelijk.
Ook al is er niks ingevuld, de query wordt toch uitgevoerd.
Wat werkt er niet?
 
Mark Markson

Mark Markson

09/10/2011 17:31:30
Quote Anchor link
De gegevens worden niet naar de database verstuurd. Informatie uit het formulier wordt er wel uitgehaald. Als ik echo $gb; echo $ww1; echo $ww2; doe, dan laat het gewoon netjes zien wat er werd ingevuld.

Wat is SQL-injection?
 
- SanThe -

- SanThe -

09/10/2011 17:44:54
Quote Anchor link
Bouw foutafhandeling in en gebruik mysql_real_escape_string() om je te beveiligen tegen sql-injection.
 
Mark Markson

Mark Markson

09/10/2011 17:57:46
Quote Anchor link
Eerst wil ik dat hij het doet...Ik snap niet waarom hij het niet doet :S
 
Jacco Brandt

Jacco Brandt

09/10/2011 18:01:14
Quote Anchor link
Door een goede foutafhandeling krijg je vanzelf te zien waarom hij het niet doet.
 
Mark Markson

Mark Markson

09/10/2011 18:07:42
Quote Anchor link
Dankje, heb ik veel aan.
 
Php knipper

php knipper

09/10/2011 18:08:34
Quote Anchor link
foutafhandeling
plaats na lijn 11 van het verwerkgedeelte
dit stukje ( laat de php tags weg )
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
            if (!$opdracht) {
            (
'SQL error: ' . mysql_error());
            }

?>

doe nog eens een registratie en dan krijg je normaal gezien een foutcode ( post deze hier eens )
Gewijzigd op 09/10/2011 18:08:58 door php knipper
 
- SanThe -

- SanThe -

09/10/2011 18:12:44
Quote Anchor link
Mark Markson op 09/10/2011 18:07:42:
Dankje, heb ik veel aan.


Je kan ook wachten totdat je een glazen bol krijgt.
Foutafhandeling is de enige juiste manier om fouten op te sporen.
 
Php knipper

php knipper

09/10/2011 18:15:06
Quote Anchor link
- SanThe - op 09/10/2011 18:12:44:
Mark Markson op 09/10/2011 18:07:42:
Dankje, heb ik veel aan.


Je kan ook wachten totdat je een glazen bol krijgt.
Foutafhandeling is de enige juiste manier om fouten op te sporen.


het is toch de snelste manier om dat te doen!
als je liever heel je code na gaat trekken waar de fout zit.
3 regels en je probleem is al gedeeltelijk opgelost!
 
Mark Markson

Mark Markson

09/10/2011 20:54:09
Quote Anchor link
Ik heb de regelel toegevoegd, maar hij doet nog niks:

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
<?php
include("connection.php");
if(isset($_REQUEST['button']))
{

    $gb= $_POST['GebruikersNaam'];
    $ww1= $_POST['WachtWoord1'];
    $ww2 = $_POST['WachtWoord2'];
    
    if($ww1 == $ww2)
    {

        $opdracht = "INSERT INTO leden (Gebruikersnaam, Wachtwoord1, Wachtwoord2) VALUES ('$gb', '$ww1', '$ww2')";
                     if (!$opdracht) {
            (
'SQL error: ' . mysql_error());
            }
    }

    
    
    if($gb == "" AND $ww1 == "" AND $ww2 == "")
    {

        echo "U heeft geen gegevens ingevuld.";
    }

    
    if(mysql_query($opdracht))
    {

        echo "U bent geregistreerd!";
    }

    
    else
    {
        echo "De gegevens zijn niet naar de database gestuurd.";
    }
    
}

?>


geen foutmelding
 
Jacco Brandt

Jacco Brandt

09/10/2011 21:09:43
Quote Anchor link
zet eens onder elk statement een echo, en zeg eens waar hij stopt?
En je kunt if (!opdracht) weglaten. Die staat op de verkeerde pleke n moet achter een query staan.
 
- SanThe -

- SanThe -

09/10/2011 21:12:14
Quote Anchor link
Regel 12 en 13 kunnen weg.

Zet tusen regel 29 en 30 dit:
echo 'SQL error: ' . mysql_error();
 
Mark Markson

Mark Markson

09/10/2011 21:16:42
Quote Anchor link
Parse error: syntax error, unexpected '{', expecting ',' or ';' in H:\usbwebserver\root\OPDRACHT5\check.php on line 31

Toevoeging op 09/10/2011 21:17:27:

Duplicate entry '0' for key 'PRIMARY'
Sorry was een puntkomma vergeten/

Toevoeging op 09/10/2011 21:18:07:

AAAH! IK SNAP HEM AL! Ik heb een veld met "id" en die heb ik een primary key gemaakt! Kijken of het lukt! DANKJULLIE!
 
- SanThe -

- SanThe -

09/10/2011 21:25:20
Quote Anchor link
Auto_increment.
 



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.