Query gaat niet in DB
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?
include("config.php");
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$ccountry = clean($_POST['ccountry']);
$username = clean($_POST['username']);
$pwd1 = clean($_POST['pwd1']);
$insert_query = 'insert into users (email,ccountry,username,password,rang)
values
("' . $_POST['email'] . '","' . $_POST['ccountry'] . '",
"' . $_POST['username'] . '","' . md5($_POST['pwd1']) . '","1")';
mysql_query($insert_query);
?>
include("config.php");
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$ccountry = clean($_POST['ccountry']);
$username = clean($_POST['username']);
$pwd1 = clean($_POST['pwd1']);
$insert_query = 'insert into users (email,ccountry,username,password,rang)
values
("' . $_POST['email'] . '","' . $_POST['ccountry'] . '",
"' . $_POST['username'] . '","' . md5($_POST['pwd1']) . '","1")';
mysql_query($insert_query);
?>
Hij verwerkt de query niet in de database -_- , heb al vanalles geprobeert maar tot zo ver niks. kan iemand dit eens bekijken en verbeteren indien mogelijk :)
hij echot het zelfs niet -_-
En plaats is helemaal bovenaan, onder <?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
Hij doet gewoon niks , geeft geen errors weer geen echo ( staat onder de query zelf) en doet ook niks richting DB :S
Zet anders eens een echo aan het begin van je script om te controleren of er wel wat gebeurt?
En zet die gegevens van karl in de php.ini van je ontwikkel omgeving goed (je ontwikkelt toch niet live hoop ik)
ik ontwikkel niet live nee :D Wamp local server , nog steeds heb onderstussen gedaan wat je zei maar het probleem blijft het zelfde
Kijk ook eens in de logs van apache.
Code (php)
1
mysql_query("INSERT INTO users SET email = '".$_POST['email']."', ccountry = '".$_POST['ccountry']."', username = '".$_POST['username']."', password = '".md5($_POST['pwd1'])."', rang = '1'");
En wat ik ook niet snap (of ik zie het verkeerd) 'clean' je eerst alle $_POST's... En vervolgens doe je er niks mee? Want je gebruikt in je query niet de 'gecleande' $_POST's.. Of zie ik dit nu helemaal verkeerd?
Gewijzigd op 04/06/2010 16:27:50 door Joakim Broden
Oetzie en mijn achternaam op 04/06/2010 16:25:42:
Maak de boel maar weer onveilig...
Ja, pleur meteen je POST in je db, hoef je niet te checken ofzo :D
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
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
<?
include("config.php");
if(isset($_POST['submit'])) {
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$ccountry = clean($_POST['ccountry']);
$username = clean($_POST['username']);
$pwd1 = clean($_POST['pwd1']);
$insert_query = 'insert into users (email,ccountry,username,password,rang)
values
("' . $_POST['email'] . '","' . $_POST['ccountry'] . '",
"' . $_POST['username'] . '","' . md5($_POST['pwd1']) . '","1")';
mysql_query($insert_query);
}
echo "$insert_query";
?>
include("config.php");
if(isset($_POST['submit'])) {
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$ccountry = clean($_POST['ccountry']);
$username = clean($_POST['username']);
$pwd1 = clean($_POST['pwd1']);
$insert_query = 'insert into users (email,ccountry,username,password,rang)
values
("' . $_POST['email'] . '","' . $_POST['ccountry'] . '",
"' . $_POST['username'] . '","' . md5($_POST['pwd1']) . '","1")';
mysql_query($insert_query);
}
echo "$insert_query";
?>
dit heb ik nu gedaan maar nog steeds niks
Clean functie is tegen Mysql injectie
Gewijzigd op 04/06/2010 16:29:00 door Nicolas Pierre
Karl, hoezo is dit onveilig?
Trouwens ik wil eerst dat het werkt zonder de checks . Als ze werken ga ik de checks maken :D
Oetzie en mijn achternaam op 04/06/2010 16:28:44:
Karl, hoezo is dit onveilig?
Want dan kan iemand ' in de naam ofzo stoppen en dan heb je een sql injection.
Nicolas Pierre op 04/06/2010 16:30:13:
Trouwens ik wil eerst dat het werkt zonder de checks . Als ze werken ga ik de checks maken :D
Bad practise. Dat wat jij nu zegt kan je vergelijken met: 'ik wil fietsen, maar of er lucht in m'n banden zit boeit me niet, komt later wel'.
wat maakt het nu uit of ik check nu maak of later als de query werk ? het probleem ligt aan de query volgens mij en niet aan de code
mysql_query op php.net gebruiken: mysql_query.
Het kan, maar is niet handig. Verder is het beter om die echo voor de query te zetten en nog eens kijken hoe ze Voor de rest hoort een integer niet tussen quotes (rang), een variabel niet tussen quotes.
Ook moet je eens naar je foutafhandeling gaan kijken..
Voorbeeldje:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
require_once 'db_config.php';
$voornaam = mysql_real_escape_string($_POST['voornaam']);
$achternaam = mysql_real_escape_string($_POST['achternaam']);
$sql = "
INSERT INTO fictieve_tabel
(
voornaam,
achternaam
)
VALUES
(
'".$voornaam."',
'".$achternaam."'
)
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
?>
require_once 'db_config.php';
$voornaam = mysql_real_escape_string($_POST['voornaam']);
$achternaam = mysql_real_escape_string($_POST['achternaam']);
$sql = "
INSERT INTO fictieve_tabel
(
voornaam,
achternaam
)
VALUES
(
'".$voornaam."',
'".$achternaam."'
)
";
if(!$res = mysql_query($sql))
{
trigger_error(mysql_error().'<br />In query: '.$sql);
}
?>
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
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
<?
include("config.php");
if(isset($_POST['submit'])) {
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$ccountry = clean($_POST['ccountry']);
$username = clean($_POST['username']);
$pwd1 = clean($_POST['pwd1']);
$error = array();
if(!check_email($_POST['email'])) {
echo "submit Valid email ! .";
}
if($_POST['username'] == "") {
echo "Submit username";
}
if(!preg_match("/^[-_0-9a-z]{2,}$/i", $_POST['username'])) { // Thx to FangorN for this check :]
echo " A Username can contain (a-z, 0-9), (_) or (-).";
}
if($_POST['pwd1'] == "" || $_POST['pwd1'] != $_POST['pwd2']) {
echo " Er is geen wachtwoord ingevuld of de 2 wachtwoorden komen niet overeen.";
}
if($_POST['ccountry'] == "") {
echo "Select an option";
}
else{
$insert_query = 'insert into users (email,ccountry,username,password,rang)
values
("' . $_POST['email'] . '","' . $_POST['ccountry'] . '",
"' . $_POST['username'] . '","' . md5($_POST['pwd1']) . '","1")';
mysql_query($insert_query);
}
}
?>
include("config.php");
if(isset($_POST['submit'])) {
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return mysql_real_escape_string($str);
}
$email = clean($_POST['email']);
$ccountry = clean($_POST['ccountry']);
$username = clean($_POST['username']);
$pwd1 = clean($_POST['pwd1']);
$error = array();
if(!check_email($_POST['email'])) {
echo "submit Valid email ! .";
}
if($_POST['username'] == "") {
echo "Submit username";
}
if(!preg_match("/^[-_0-9a-z]{2,}$/i", $_POST['username'])) { // Thx to FangorN for this check :]
echo " A Username can contain (a-z, 0-9), (_) or (-).";
}
if($_POST['pwd1'] == "" || $_POST['pwd1'] != $_POST['pwd2']) {
echo " Er is geen wachtwoord ingevuld of de 2 wachtwoorden komen niet overeen.";
}
if($_POST['ccountry'] == "") {
echo "Select an option";
}
else{
$insert_query = 'insert into users (email,ccountry,username,password,rang)
values
("' . $_POST['email'] . '","' . $_POST['ccountry'] . '",
"' . $_POST['username'] . '","' . md5($_POST['pwd1']) . '","1")';
mysql_query($insert_query);
}
}
?>
Hij laat geen errors zien , maar nog steeds niks in DB :(
Gewijzigd op 04/06/2010 17:06:01 door Nicolas Pierre
Karl Karl op 04/06/2010 16:43:43:
Bad practise. Dat wat jij nu zegt kan je vergelijken met: 'ik wil fietsen, maar of er lucht in m'n banden zit boeit me niet, komt later wel'.
Ik vind dat je het beter kan vergelijken met: 'ik wil fietsen, maar of ik een helm op heb en een voor- en achterlicht heb boeit me niet, komt later wel'.Nicolas Pierre op 04/06/2010 16:30:13:
Trouwens ik wil eerst dat het werkt zonder de checks . Als ze werken ga ik de checks maken :D
Bad practise. Dat wat jij nu zegt kan je vergelijken met: 'ik wil fietsen, maar of er lucht in m'n banden zit boeit me niet, komt later wel'.
is het nu zo moeilijk om even de code te bekijken en te verbeteren ?