Registreren lukt niet...-.-
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)
1
2
3
4
5
6
7
8
9
10
11
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");
?>
$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> </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)
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
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.";
}
}
?>
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<
Ook al is er niks ingevuld, de query wordt toch uitgevoerd.
Wat werkt er niet?
Wat is SQL-injection?
foutafhandeling in en gebruik mysql_real_escape_string() om je te beveiligen tegen sql-injection.
Bouw Eerst wil ik dat hij het doet...Ik snap niet waarom hij het niet doet :S
Door een goede foutafhandeling krijg je vanzelf te zien waarom hij het niet doet.
Dankje, heb ik veel aan.
plaats na lijn 11 van het verwerkgedeelte
dit stukje ( laat de php tags weg )
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
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.
- SanThe - op 09/10/2011 18:12:44:
Je kan ook wachten totdat je een glazen bol krijgt.
Foutafhandeling is de enige juiste manier om fouten op te sporen.
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!
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
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.";
}
}
?>
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
En je kunt if (!opdracht) weglaten. Die staat op de verkeerde pleke n moet achter een query staan.
Zet tusen regel 29 en 30 dit:
echo 'SQL error: ' . mysql_error();
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!
Auto_increment.