registratie form werkt niet goed
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("socialprojects");
?>
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("socialprojects");
?>
de database ziet eruit als: id:autoincrement, naam, gebruikersnaam, geboortedatum, email, password alles met varchar ( 20 ) uiteraard.
de code + de rest van de code van de register pagina hieronder.
<html>
<head>
<title>SocialProjects | Registratie</title>
</head>
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 ("connect.php");
if(isset($_GET["register"])){
$gebruikersnaam = $_POST['gebruikersnaam'];
$email = $_POST['email'];
$password = $_POST['password'];
$naam = $_POST['naam'];
$geboortedatum = $_POST['geboortedatum'];
if($username != "" && $email != "" && $password != "" && $gebruikersnaam != "" && $geboortedatum != ""){
if(strstr($email, "@") && strstr($email, ".")){
$query = mysql_query ("SELECT * FROM users WHERE naam='".$username."'");
$numrows = mysql_num_rows($query);
if ($numrows == 0){
$password = md5 ($password);
$registratie = mysql_query ("INSERT INTO users (naam, password, email, geboortedatum, gebruikersnaam) VALUES ('".$naam."', '".$wachtwoord."', '".$email."','".$gebruikersnaam."','".$geboortedatum."')");
echo "u bent succesvol geregistreerd";
}
else{
echo"deze gebruikersnaam is reeds in gebruik!";
}
}
else{
echo " geen geldig emailadres ";
}
}
else{
echo "u heeft niet alle velden ingevuld";
}
}
?>
include ("connect.php");
if(isset($_GET["register"])){
$gebruikersnaam = $_POST['gebruikersnaam'];
$email = $_POST['email'];
$password = $_POST['password'];
$naam = $_POST['naam'];
$geboortedatum = $_POST['geboortedatum'];
if($username != "" && $email != "" && $password != "" && $gebruikersnaam != "" && $geboortedatum != ""){
if(strstr($email, "@") && strstr($email, ".")){
$query = mysql_query ("SELECT * FROM users WHERE naam='".$username."'");
$numrows = mysql_num_rows($query);
if ($numrows == 0){
$password = md5 ($password);
$registratie = mysql_query ("INSERT INTO users (naam, password, email, geboortedatum, gebruikersnaam) VALUES ('".$naam."', '".$wachtwoord."', '".$email."','".$gebruikersnaam."','".$geboortedatum."')");
echo "u bent succesvol geregistreerd";
}
else{
echo"deze gebruikersnaam is reeds in gebruik!";
}
}
else{
echo " geen geldig emailadres ";
}
}
else{
echo "u heeft niet alle velden ingevuld";
}
}
?>
<body>
<center><div align="center"; style="background-color:#069; width:500px; height:auto; color:#FFF; border-style:solid; border-width:1px; border-color:#FFF;">
<form name="registratie" action="registratie.php?registratie" method="post" ><br />
<p><label>Gebruiksnaam:</label><br /><input type="text" name="gebruikersnaam" size="30" /></p>
<p><label>Naam:</label><br /><input type="text" name="naam" size="30" /></p>
<p><label>Geboortedatum:</label><br /><input type="text" name="geboortedatum" size="30" /></p>
<p><label>Emailadres:</label><br /><input type="text" name="email" size="30" /></p>
<p><label>Wachtwoord:</label><br /><input type="password" name="wachtwoord" size="30" /></p>
<p><input type="submit" name="registratie" value="Registreren" id="registratie"/></p>
</form>
</center>
</div>
</body>
</html>
Error_reporting ?
Wat werkt er niet aan?
mysql_connect, mysql_select_db, mysql_query teruggeven, gebruik dit voor foutafhandeling met if, geen 'die'.
- Een md5 string is langer dan 20 tekens. 20 tekens is weinig. Geboortedatum hoort bijvoorbeeld ook geen varchar te zijn.
- Gebruik [code] en [/code] tags hier op het forum om code te plaatsen.
- Waarvoor dient te $_GET['register']? Je hebt toch gewoon een pagina voor het registreren?
- Controleer of een formulier is gepost doe je mte if($_SERVER['REQUEST_METHOD'] == 'POST').
- Niet onnodig variabelen kopieren.
- Zie trim, isset, empty en operators.
- Selecteer wat je wilt hebben, gebruik geen *.
- sql injections mogelijk, gebruik mysql_real_escape_string.
- Gebruik een salt voor passwords.
- Zie wat functies als - Een md5 string is langer dan 20 tekens. 20 tekens is weinig. Geboortedatum hoort bijvoorbeeld ook geen varchar te zijn.
- Gebruik [code] en [/code] tags hier op het forum om code te plaatsen.
- Waarvoor dient te $_GET['register']? Je hebt toch gewoon een pagina voor het registreren?
- Controleer of een formulier is gepost doe je mte if($_SERVER['REQUEST_METHOD'] == 'POST').
- Niet onnodig variabelen kopieren.
- Zie trim, isset, empty en operators.
- Selecteer wat je wilt hebben, gebruik geen *.
- sql injections mogelijk, gebruik mysql_real_escape_string.
- Gebruik een salt voor passwords.
ik krijg overigens geen foutmeldingen
Gewijzigd op 15/04/2011 09:51:25 door Reshad F