Query gaat niet in DB

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

Nicolas Pierre

Nicolas Pierre

04/06/2010 15:55:19
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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 :)
 
PHP hulp

PHP hulp

06/08/2020 00:45:51
 
Karl Karl

Karl Karl

04/06/2010 15:57:32
Quote Anchor link
Echo de query eens. En kijk eens op php.net naar de foutafhandeling van mysql_query.
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 15:59:08
Quote Anchor link
hij echot het zelfs niet -_-
 
Karl Karl

Karl Karl

04/06/2010 16:01:16
Quote Anchor link
Waar heb je de echo geplaatst?
En plaats is helemaal bovenaan, onder <?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
Gewijzigd op 04/06/2010 16:03:42 door Karl Karl
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 16:04:30
Quote Anchor link
Hij doet gewoon niks , geeft geen errors weer geen echo ( staat onder de query zelf) en doet ook niks richting DB :S
 
TJVB tvb

TJVB tvb

04/06/2010 16:13:10
Quote Anchor link
niet toevallig een parse fout waardoor die ini_set('display_errors', 1); en error_reporting(E_ALL); van Karl niet opgepakt worden?
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)
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 16:16:21
Quote Anchor link
ik ontwikkel niet live nee :D Wamp local server , nog steeds heb onderstussen gedaan wat je zei maar het probleem blijft het zelfde
 
Karl Karl

Karl Karl

04/06/2010 16:20:01
Quote Anchor link
Kijk ook eens in de logs van apache.
 
Joakim Broden

Joakim Broden

04/06/2010 16:25:42
Quote Anchor link
Probeer dit eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
 
Karl Karl

Karl Karl

04/06/2010 16:27:01
Quote Anchor link
Oetzie en mijn achternaam op 04/06/2010 16:25:42:
Probeer dit eens:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
mysql_query("INSERT INTO users SET email = '".$_POST['email']."', ccountry = '".$_POST['ccountry']."', username = '".$_POST['username']."', password = '".md5($_POST['pwd1'])."', rang = '1'");

Maak de boel maar weer onveilig...
 
Synaps Framework

Synaps Framework

04/06/2010 16:27:52
Quote Anchor link
Ja, pleur meteen je POST in je db, hoef je niet te checken ofzo :D
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 16:28:01
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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
 
Joakim Broden

Joakim Broden

04/06/2010 16:28:44
Quote Anchor link
Karl, hoezo is dit onveilig?
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 16:30:13
Quote Anchor link
Trouwens ik wil eerst dat het werkt zonder de checks . Als ze werken ga ik de checks maken :D
 
Karl Karl

Karl Karl

04/06/2010 16:43:43
Quote Anchor link
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'.
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 16:45:33
Quote Anchor link
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
 
Karl Karl

Karl Karl

04/06/2010 16:51:34
Quote Anchor link
Het kan, maar is niet handig. Verder is het beter om die echo voor de query te zetten en nog eens kijken hoe ze mysql_query op php.net gebruiken: mysql_query.
 
Yea Rupie

Yea Rupie

04/06/2010 16:56:20
Quote Anchor link
Wat heb je aan regel 14 t/m 17 als je ze niet eens gebruikt?
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)
PHP script in nieuw venster Selecteer het PHP script
1
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);
}

?>
 
Nicolas Pierre

Nicolas Pierre

04/06/2010 17:02:53
Quote Anchor link
ik heb nu dit gemaakt

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?
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
 
K i p

K i p

04/06/2010 17:15:29
Quote Anchor link
Karl Karl op 04/06/2010 16:43:43:
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'.
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

Nicolas Pierre

04/06/2010 17:20:32
Quote Anchor link
is het nu zo moeilijk om even de code te bekijken en te verbeteren ?
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.