$_POST Email wilt niet opslaan in database
Hey guys.
Ik heb nu dat mijn email niet wil opslaan
Dit staat in mijn code.
Toevoeging op 08/03/2014 20:40:20:
En hij geeft aan dat bij $sql = mysqli_query($connection.....
lijkt uninitialized te zijn ofzo weet niet wat dat betekent!?
Ik heb nu dat mijn email niet wil opslaan
Dit staat in mijn code.
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
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
<?php
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_POST['username'] == "" or $_POST['password'] == "" or $_POST['re_password'] == "" or $_POST['email'] == "" or $_POST['re_email'] == ""){
echo '<div class="errorbox">Please fill in all fields!</div>';
}else{
if($_POST['password'] != $_POST['re_password']){
echo '<div class="errorbox">Password is is not equal!</div>';
}else{
if($_POST['email'] != $_POST['re_email']){
echo '<div class="errorbox">Email is not equal!</div>';
}else{
$sql = mysqli_query($connection, "
INSERT INTO accounts(
username,
password,
email
) VALUES (
'".mysqli_real_escape_string($_POST[username])."',
'".md5(mysqli_real_escape_string($_POST[password]))."',
'".mysqli_real_escape_string($_POST[email])."'
)");
}
}
}
}else{
$con = mysqli_close($connection);
}
?>
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_POST['username'] == "" or $_POST['password'] == "" or $_POST['re_password'] == "" or $_POST['email'] == "" or $_POST['re_email'] == ""){
echo '<div class="errorbox">Please fill in all fields!</div>';
}else{
if($_POST['password'] != $_POST['re_password']){
echo '<div class="errorbox">Password is is not equal!</div>';
}else{
if($_POST['email'] != $_POST['re_email']){
echo '<div class="errorbox">Email is not equal!</div>';
}else{
$sql = mysqli_query($connection, "
INSERT INTO accounts(
username,
password,
) VALUES (
'".mysqli_real_escape_string($_POST[username])."',
'".md5(mysqli_real_escape_string($_POST[password]))."',
'".mysqli_real_escape_string($_POST[email])."'
)");
}
}
}
}else{
$con = mysqli_close($connection);
}
?>
Toevoeging op 08/03/2014 20:40:20:
En hij geeft aan dat bij $sql = mysqli_query($connection.....
lijkt uninitialized te zijn ofzo weet niet wat dat betekent!?
Gewijzigd op 08/03/2014 20:38:29 door Mathieu Posthumus
Dat lijkt dan te duiden op het feit dat $connection niet bestaat. Wat staat er in config.php?
Verder, weet wat je doet:
Dit is nergens voor nodig. Door het gebruik van een hashing algoritme kan er geen sql injectie plaatsvinden omdat de uitkomst van een hashing geen karakters zal bevatten die gevaarlijk kunnen zijn (tenzij je zelf een hashing gaat schrijven die dat wel doet).
Verder, weet wat je doet:
Dit is nergens voor nodig. Door het gebruik van een hashing algoritme kan er geen sql injectie plaatsvinden omdat de uitkomst van een hashing geen karakters zal bevatten die gevaarlijk kunnen zijn (tenzij je zelf een hashing gaat schrijven die dat wel doet).
erwin dit staat in mijn config.php
En werkt het niet dat voor het password?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
En werkt het niet dat voor het password?
Zet password ook tussen singlequotes omdat het een string is.
Dus: $_POST['password']
mysqli_real_escape_string() kent als functie twee argumenten. En voor de database connectie, en de andere voor de data die je wilt escapen. Kijk maar op php.net.
Dus: $_POST['password']
mysqli_real_escape_string() kent als functie twee argumenten. En voor de database connectie, en de andere voor de data die je wilt escapen. Kijk maar op php.net.
Gewijzigd op 08/03/2014 20:54:55 door - Ariën -
- Aar - op 08/03/2014 20:50:42:
Zet password ook tussen singlequotes omdat het een string is.
Dus: $_POST['password']
Dus: $_POST['password']
Krijgen de quiotes daar omheen geen last van dan?
Zolang je de variabelen buiten quotes houdt niet. Experimenteer er maar eens mee.
Gewijzigd op 08/03/2014 20:55:31 door - Ariën -
Nu geeft hij deze errors aan en nu slaat ie de username ook niet meer op.
Quote:
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\Login\register.php on line 20
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\Login\register.php on line 21
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\Login\register.php on line 22
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\Login\register.php on line 21
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given in C:\xampp\htdocs\Login\register.php on line 22
Gewijzigd op 08/03/2014 21:12:11 door Mathieu Posthumus
1) ga a.u.b. over op een ander hashing algoritme. Leesvoer: http://www.phphulp.nl/php/forum/topic/wachtwoorden-opslaan-anno-2014/94159/last/
2) de output van md5(password) is een 32 tekens lange string waar elk tegen voorkomt in het alfabet '01234566789abcdef', md5(mysqli_real_escape_string(password)) is dus overbodig omdat md5() de nieuwe toegevoegde tekens niet meer bevat. Plus dat je de altijd de zelfde connectie settings zal moeten hebben, anders wijzig je het algoritme. Wat GIGANTISCH STOM IS, NIET GEDOCUMENTEERD EN HEEEEEL MOEILIJK OM ACHTER TE KOMEN mocht het jou overkomen. Het is een slecht ontwerp. Denk dus a.u.b. niet "het is overbodig, maar het kan geen kwaad, dus ik laat het zo."
"nu slaat ie de username ook niet meer op"
Dat komt door die fouten, de eerste parameter voor mysqli_real_escape_string moet een database link zijn. In jouw code schijnt $connection die link te zijn.
2) de output van md5(password) is een 32 tekens lange string waar elk tegen voorkomt in het alfabet '01234566789abcdef', md5(mysqli_real_escape_string(password)) is dus overbodig omdat md5() de nieuwe toegevoegde tekens niet meer bevat. Plus dat je de altijd de zelfde connectie settings zal moeten hebben, anders wijzig je het algoritme. Wat GIGANTISCH STOM IS, NIET GEDOCUMENTEERD EN HEEEEEL MOEILIJK OM ACHTER TE KOMEN mocht het jou overkomen. Het is een slecht ontwerp. Denk dus a.u.b. niet "het is overbodig, maar het kan geen kwaad, dus ik laat het zo."
"nu slaat ie de username ook niet meer op"
Dat komt door die fouten, de eerste parameter voor mysqli_real_escape_string moet een database link zijn. In jouw code schijnt $connection die link te zijn.
Gewijzigd op 08/03/2014 21:32:49 door Dos Moonen
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
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
<?php
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_POST['username'] == "" or $_POST['password'] == "" or $_POST['re_password'] == "" or $_POST['email'] == "" or $_POST['re_email'] == ""){
echo '<div class="errorbox">Please fill in all fields!</div>';
}else{
if($_POST['password'] != $_POST['re_password']){
echo '<div class="errorbox">Password is is not equal!</div>';
}else{
if($_POST['email'] != $_POST['re_email']){
echo '<div class="errorbox">Email is not equal!</div>';
}else{
$naam = mysqli_real_escape_string($connection, $_POST['username']);
$ww = md5($_POST['password']);
$email = mysqli_real_escape_string($_POST['email']);
$sql = mysqli_query($connection, "
INSERT INTO accounts(
username,
password,
email
) VALUES (
'".$naam."',
'"$ww."',
'".$email."'
)");
}
}
}
}else{
$con = mysqli_close($connection);
}
?>
include 'config.php';
if($_SERVER['REQUEST_METHOD'] == "POST"){
if($_POST['username'] == "" or $_POST['password'] == "" or $_POST['re_password'] == "" or $_POST['email'] == "" or $_POST['re_email'] == ""){
echo '<div class="errorbox">Please fill in all fields!</div>';
}else{
if($_POST['password'] != $_POST['re_password']){
echo '<div class="errorbox">Password is is not equal!</div>';
}else{
if($_POST['email'] != $_POST['re_email']){
echo '<div class="errorbox">Email is not equal!</div>';
}else{
$naam = mysqli_real_escape_string($connection, $_POST['username']);
$ww = md5($_POST['password']);
$email = mysqli_real_escape_string($_POST['email']);
$sql = mysqli_query($connection, "
INSERT INTO accounts(
username,
password,
) VALUES (
'".$naam."',
'"$ww."',
'".$email."'
)");
}
}
}
}else{
$con = mysqli_close($connection);
}
?>
Dit is wat ik zou doen...
Ik heb de $_POST in een variable gezet en bij elke mysqli_real_escape_string een verplichte connectie met de database gemaakt.
Gewijzigd op 08/03/2014 22:24:06 door nick kuijpers
Nick kuijpers op 08/03/2014 22:22:36:
Ik heb de $_POST in een variable gezet en bij elke mysqli_real_escape_string een verplichte connectie met de database gemaakt.
Waarom die variabelen?
Regel 25 mist een . Na "
Nick je was ook nog vergeten een var connection bij email te zzetten maar hij doet het nu dakje allemaal:D
Graag gedaan.




