Mysql fout
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php
session_start();
include('config.php');
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST['username'];
$pass = $_POST['password'];
$pass2 = $_POST['check_password'];
$email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$now = time();
$date = date('YmdHis',$now);
/*Check of geen enkele variabelen leeg is, is er wel een leeg.
*Dan krijg je een foutmelding.*/
if (empty($user) || empty($pass) || empty($pass2) || empty($email)) {
die ('FOUT');
/*Check of ingevoerde wachtwoorden hetzelfde zijn.*/
} elseif ($pass != $pass2) {
die ('FOUT');
/*Als magic_quotes uitstaat zet dan addslashes bij de variabelen neer.*/
} elseif (!get_magic_quotes_gpc()) {
$user = addslashes($user);
$pass = addslashes($pass);
}
/*Codeer de variabelen.*/
/*Database contacten wordt verder op uitgelegt.*/
$check_sql = "SELECT username FROM users WHERE id = '" . $user . "'";
$sql = "INSERT INTO users (username, password, email, ip, laatstont, gold, mannen, soldaten, tanks, goldfabrieken, status, land, verdedigers) VALUES ('" . $user . "','" . $pass . "','" . $email . "','" . $ip . "','" . $date . "','5000','20','5','1','5','0','50','10'')";
$check_result = mysql_query($check_sql)
or die ('Could not check up user account; ' . mysql_error());
/*De eerste database contact wordt hier gebruikt om te checken of jou
*ingevoerde username nog niet bestaat. Bestaat het wel foutmelding.*/
if ((mysql_fetch_array($check_result)) >= 1) {
header ('refresh: 3; url=register.php');
die ('FOUT usrnaam ebstaat al');
}
/*Alles is gedaan en goedbevonden, dus voeg de account maar toe.*/
mysql_query($sql)
or die ('MISLUKT; ' . mysql_error());
echo 'U kunt spelen!';
?>
session_start();
include('config.php');
/*Alles naar makkelijke variabelen omzetten.*/
$user = $_POST['username'];
$pass = $_POST['password'];
$pass2 = $_POST['check_password'];
$email = $_POST['email'];
$ip = $_SERVER['REMOTE_ADDR'];
$now = time();
$date = date('YmdHis',$now);
/*Check of geen enkele variabelen leeg is, is er wel een leeg.
*Dan krijg je een foutmelding.*/
if (empty($user) || empty($pass) || empty($pass2) || empty($email)) {
die ('FOUT');
/*Check of ingevoerde wachtwoorden hetzelfde zijn.*/
} elseif ($pass != $pass2) {
die ('FOUT');
/*Als magic_quotes uitstaat zet dan addslashes bij de variabelen neer.*/
} elseif (!get_magic_quotes_gpc()) {
$user = addslashes($user);
$pass = addslashes($pass);
}
/*Codeer de variabelen.*/
/*Database contacten wordt verder op uitgelegt.*/
$check_sql = "SELECT username FROM users WHERE id = '" . $user . "'";
$sql = "INSERT INTO users (username, password, email, ip, laatstont, gold, mannen, soldaten, tanks, goldfabrieken, status, land, verdedigers) VALUES ('" . $user . "','" . $pass . "','" . $email . "','" . $ip . "','" . $date . "','5000','20','5','1','5','0','50','10'')";
$check_result = mysql_query($check_sql)
or die ('Could not check up user account; ' . mysql_error());
/*De eerste database contact wordt hier gebruikt om te checken of jou
*ingevoerde username nog niet bestaat. Bestaat het wel foutmelding.*/
if ((mysql_fetch_array($check_result)) >= 1) {
header ('refresh: 3; url=register.php');
die ('FOUT usrnaam ebstaat al');
}
/*Alles is gedaan en goedbevonden, dus voeg de account maar toe.*/
mysql_query($sql)
or die ('MISLUKT; ' . mysql_error());
echo 'U kunt spelen!';
?>
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = "INSERT INTO
users
(username, password, email, ip, laatstont, gold, mannen, soldaten, tanks, goldfabrieken, status, land, verdedigers)
VALUES ('" . $user . "','" . $pass . "','" . $email . "','" . $ip . "','" . $date . "','5000','20','5','1','5','0','50','10')";
?>
$sql = "INSERT INTO
users
(username, password, email, ip, laatstont, gold, mannen, soldaten, tanks, goldfabrieken, status, land, verdedigers)
VALUES ('" . $user . "','" . $pass . "','" . $email . "','" . $ip . "','" . $date . "','5000','20','5','1','5','0','50','10')";
?>
Zo denk ik
Gewijzigd op 01/01/1970 01:00:00 door Klaasjan Boven
$date = date('YmdHis',$now);
levert geen datum op die je in een DATE of DATETIME kunt wegschrijven. Gooi dit stukje weg en gebruik de MySQL-functie NOW() om de datum/tijd van het heden in de database te schrijven.
En om nog even een open deur in te trappen: Je slaat de boel uiteraard op in een kolom van het type DATETIME.
WHERE id = '" . $user . "'"
is dat niet per ongeluk een foutje? lijkt mij niet echt logisch iig.
De tabel hoort een UNIQUE te hebben op de kolommen die uniek moeten zijn. Je kunt dan heel simpel nieuwe gegevens in de database wegschrijven. Het gaat vanzelf fout wanneer de gegevens niet uniek zijn. Je kunt dit controleren door met de functie mysql_errno() het foutnummer op te vragen, wanneer dit nummer 1062 is, weet je genoeg...
@Manaus:
De fout wordt veroorzaakt door de extra quote achter '10''. Eigenlijk horen er om getallen, integers, helemaal geen quotes te staan. Dan heb je dit probleem ook niet meer.