Hallo, hulp nodig met registratie van mijn site.
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
if(isset($_POST["submit"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];
$con=mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");
$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
$numrows=mysql_num_rows($query);
if($numrows==0)
{
$sql="INSERT INTO login(username,password) VALUES('$user','$pass')";
$result=mysql_query($sql);
if($result){
echo "Account Successfully Created";
} else {
echo "Failure!";
}
} else {
echo "That username already exists! Please try again with another.";
}
} else {
echo "All fields are required!";
}
}
?>
if(isset($_POST["submit"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];
$con=mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");
$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
$numrows=mysql_num_rows($query);
if($numrows==0)
{
$sql="INSERT INTO login(username,password) VALUES('$user','$pass')";
$result=mysql_query($sql);
if($result){
echo "Account Successfully Created";
} else {
echo "Failure!";
}
} else {
echo "That username already exists! Please try again with another.";
}
} else {
echo "All fields are required!";
}
}
?>
- Aar -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 20/06/2014 17:48:31 door - Ariën -
- Gebruik if($_SERVER['REQUEST_METHOD']=="POST") { om te controleren of je formulier verstuurd is.
- Pas goede foutafhandeling toe op je query, zie ook deze voorbeelden in deze 'boiler-template'
- Gebruik bij voorkeur de functies van MySQLi, omdat de MySQL-functies (niet de database) aan de kant zullen gaan in de volgende versies.
- Kopiëer geen variabelen van elkaar, zoals $user = $_POST['user'], omdat je ten allertijde al beschikt over $_POST['user'].
- Controleer de input van je query met mysqli_real_escape_string() om hacking d.m.v. SQL-injection te voorkomen.
Bij de select query is $user blauw weer gegeven, in de insert query is $user rood weer gegeven.
Hier kun je al uit op maken dat één van de twee niet goed is.
Wanneer ik het goed in schat gaar er iets niet goed met het gebruik van de (dubbel) quotes in de insert query.
Pipo Clown op 20/06/2014 18:11:56:
Bij de select query is $user blauw weer gegeven, in de insert query is $user rood weer gegeven.
Hier kun je al uit op maken dat één van de twee niet goed is.
Hier kun je al uit op maken dat één van de twee niet goed is.
En toch zijn ze beiden technisch goed.
Niet consequent dat wel.
Helaas Pipo, maar dat klopt gewoon. In de select query is de variabel buiten quotes gehaald (en dus blauw), in de insert query staat de variabele binnen quotes (en derhalve rood). Beide zijn correct.