Lidworden data invoeren in database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ali Teker

Ali Teker

09/03/2011 17:59:36
Quote Anchor link
Hoi allemaal,

ben zeer slecht in php maar zal het proberen om uit te leggen

uyeol.html ziet er uit als volgt

<form action="lidworden.php" METHOD="GET">
Lid Worden...
<br>Naam<input type="text" name="ad"><br>
Achternaam<input type="text" name="soyad"><br>
Gebruikersnaam<input type="text" name="kullaniciadi"><br>
E-mail<input type="email" name="Email"><br>
Password<input type="password" name="sifre"><br>
Woonplaats<input type="text" name="il"><br>
Adres<input type="text" name="adres"><br>
Gsm Nummer<input type="text" name="ceptel"><br>
<input type="submit" name="but" value="Lid Worden">

en lidworden.php

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
<?php
$ad
=$_GET['ad'];
$soyad=$_GET['soyad'];
$kullaniciadi=$_GET['kullaniciadi'];
$Email=$_GET['email'];
$sifre=$_GET['sifre'];
$sesid=$_GET['sesid'];
$onay=$_GET['onay'];
$il=$_GET['il'];
$ilce=$_GET['ilce'];
$semt=$_GET['semt'];
$mahalle=$_GET['mahalle'];
$adres=$_GET['adres'];
$ceptel=$_GET['ceptel'];
$tarih=$_GET['tarih'];
mysql_connect("localhost","vx0011a_shop1","shop1");
mysql_select_db("vx0011a_shop1");
mysql_query("insert into uyeler (id,ad,soyad,kullaniciadi,Email,sifre,sesid,onay,il,ilce,semt,mahalle,adres,ceptel,tarih) values('$ad','$soyad','$kullaniciadi','$Email','$sifre','$sesid','$onay','$il','$ilce','$semt','$mahalle','$adres','$ceptel','$tarih')");
?>



link om het online te bekijken

www.aliteker.org/shop1/giris/uyeol.html
www.aliteker.org/shop1/giris/lidworden.php
 
PHP hulp

PHP hulp

21/12/2024 15:28:16
 
Dalando De Zuil

Dalando De Zuil

09/03/2011 18:01:19
Quote Anchor link
Zorg eerst eens voor een nette code...

- Onnodig variabelen aanmaken
- SQL Injection
- Geen foutafhandeling
 
Ali Teker

Ali Teker

09/03/2011 18:04:24
Quote Anchor link
heb al boven vermeld dat ik zeer slecht(beginner) in php bent weet niet wat onnodig is :(
 
Jordi Kroon

Jordi Kroon

09/03/2011 18:04:28
Quote Anchor link
Ook even je database gegevens afschermen
 
Noppes Homeland

Noppes Homeland

09/03/2011 18:06:47
Quote Anchor link
inloggen/registreren e.d. doe je bij voorkeur met ene post

voor de rest dien je toch echt beter te controleren en valideren en uiteraard een cordete manier van sql foutafhandeling toepassen

php variabelen buiten quotes plaatsen
 
- Ariën  -
Beheerder

- Ariën -

09/03/2011 18:22:18
Quote Anchor link
Op lijn 2 t/m 15 ben je bezig met het overkopieeren van variabelen.
nergens voor nodig, want die $_GET variabelen heb je al ;-)...
 
Dalando De Zuil

Dalando De Zuil

09/03/2011 18:29:55
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
<?php
    // Dit allemaal is onnodig.
    $ad=$_GET['ad'];
    $soyad=$_GET['soyad'];
    $kullaniciadi=$_GET['kullaniciadi'];
    $Email=$_GET['email'];
    $sifre=$_GET['sifre'];
    $sesid=$_GET['sesid'];
    $onay=$_GET['onay'];
    $il=$_GET['il'];
    $ilce=$_GET['ilce'];
    $semt=$_GET['semt'];
    $mahalle=$_GET['mahalle'];
    $adres=$_GET['adres'];
    $ceptel=$_GET['ceptel'];
    $tarih=$_GET['tarih'];
    
    // En dan dit stukje, bah bah bah!!!
    mysql_connect("localhost","vx0011a_shop1","shop1");
    mysql_select_db("vx0011a_shop1");
    mysql_query("insert into uyeler (id,ad,soyad,kullaniciadi,Email,sifre,sesid,onay,il,ilce,semt,mahalle,adres,ceptel,tarih) values('$ad','$soyad','$kullaniciadi','$Email','$sifre','$sesid','$onay','$il','$ilce','$semt','$mahalle','$adres','$ceptel','$tarih')");
?>


Maak gewoon een config.php bestand aan, en stop dit erin:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
    $settings
= array();
    
    $settings['mysqlhost'] = 'Localhost';
    $settings['mysqluser'] = 'vx0011a_shop1';
    $settings['mysqlpass'] = 'shop1';
    $settings['mysqldatb'] = 'vx0011a_shop1';
    
    define('DEBUG_MODE', true); // Dat true kun je vervangen door false wanneer het weer werkt.
?>


En dan, bovenaan iedere pagina:

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
<?php
    ini_set('display_errors',1); // 1 == aan , 0 == uit
    error_reporting(E_ALL | E_STRICT);
    
    require_once('config.php');
    
    $connection = mysql_connect($settings['mysqlhost'], $settings['mysqluser'], $settings['mysqlpass']);
    $selectdatb = mysql_select_db($settings['mysqldatb'], $connection);
    
    if($connection){
        if($selectdb){
            echo 'Connectie wel gemaakt';
        }

        else
        {
            echo 'Geen connetie gemaakt!<br>';
            echo 'Error: Geen database geselecteerd.';
        }
    }

    else
    {
        echo 'Geen connectie gemaakt!<br>';
        echo 'Error: Geen connectie met de database.';
    }

?>


Dat was slechts de connectie.
Nu de SQL query.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php     mysql_query("insert into uyeler (id,ad,soyad,kullaniciadi,Email,sifre,sesid,onay,il,ilce,semt,mahalle,adres,ceptel,tarih) values('$ad','$soyad','$kullaniciadi','$Email','$sifre','$sesid','$onay','$il','$ilce','$semt','$mahalle','$adres','$ceptel','$tarih')"); ?>


GATVERDAMME!

Eerst even de query opbouwen, niet?

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
<?php
    $query
= "
                INSERT INTO
                    uyeler
                (
                    id,
                    ad,
                    soyad,
                    kullaniciadi,
                    email,
                    sifre,
                    sesid,
                    onay,
                    il,
                    ilce,
                    semt,
                    mahalle,
                    adres,
                    ceptel,
                    tarih
                )
                VALUES
                (
                    '"
. mysql_real_escape_string($_GET['ad']) ."',
                    '"
. mysql_real_escape_string($_GET['soyad']) ."',
                    '"
. mysql_real_escape_string($_GET['kullaniciadi']) ."',
                    '"
. mysql_real_escape_string($_GET['email']) ."',
                    '"
. mysql_real_escape_string($_GET['sifre']) ."',
                    '"
. mysql_real_escape_string($_GET['sesid']) ."',
                    '"
. mysql_real_escape_string($_GET['onay']) ."',
                    '"
. mysql_real_escape_string($_GET['il']) ."',
                    '"
. mysql_real_escape_string($_GET['ilce']) ."',
                    '"
. mysql_real_escape_string($_GET['semt']) ."',
                    '"
. mysql_real_escape_string($_GET['mahalle']) ."',
                    '"
. mysql_real_escape_string($_GET['adres']) ."',
                    '"
. mysql_real_escape_string($_GET['ceptel']) ."',
                    '"
. mysql_real_escape_string($_GET['tarih']) ."'
                )
    "
;
?>


mysql_real_escape_string zorgt er voor dat je database niet gehackt wordt...

Je gebruikt $_GET, maar je kan ook $_POST gebruiken, dan zet je gewoon in je form tag method="post" en vervang je alle $_GET's in de query door $_POST.

En dan nu, de query uitvoeren:

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
<?php

    // Hierbij gebruiken we deze tutorial: http://www.phphulp.nl/php/tutorial/data-verwerking/foutafhandeling-query-sql/735/algemene-structuur/1930/
    
    // Daar staat deze funtie. Die geeft errors op een correcte manier weer, wanneer DEBUG_MODE op true staat, wat je in config.php kan veranderen.

    function showSQLError($sql,$error,$text='Error')
    {

        if (DEBUG_MODE)
        {

            return  '<pre>Error: ' . $error . '<br />' . $sql . '</pre>';
        }

        else
        {
            return $text;
        }
    }
  

    // We kijken of de query gelukt is  
    if (($result = mysql_query($query)) === false)
    {

        // Wanneer DEBUG_MODE aan staat (true) en er is een error, geeft hij iets weer, anders geeft hij weer: Fout met database.
        echo showSQLError($sql,mysql_error(),'Fout met database.');
    }

    else
    {
        // Gelukt? Dan gaan we een feestje vieren!
        echo 'Geluuuukt!! :D ';    
    }

?>


Doe er iets mee, ik heb er behoorlijk wat op getypt.

Dalando
 
Ali Teker

Ali Teker

09/03/2011 18:50:22
Quote Anchor link
hoi dalando bedankt voor je hulp

hij pakt het nu wel bij de database alleen soms pakt hij het leeg aan en soms weer niet.

en bij password(md5) gebruikt hij 222 maar dan ken je dus niet inloggen met 222
en email adres heeft die helemaal niet ingevoerd
 
Dalando De Zuil

Dalando De Zuil

09/03/2011 18:53:11
Quote Anchor link
Ali Teker op 09/03/2011 18:50:22:
hoi dalando bedankt voor je hulp

hij pakt het nu wel bij de database alleen soms pakt hij het leeg aan en soms weer niet.

en bij password(md5) gebruikt hij 222 maar dan ken je dus niet inloggen met 222
en email adres heeft die helemaal niet ingevoerd
Geeft het errors?
 
Ali Teker

Ali Teker

09/03/2011 18:54:10
Quote Anchor link
neej hij geeft geen fouten aan ben naar phpmyadmin gegaan daar stond 222 bij md5
 
Dalando De Zuil

Dalando De Zuil

09/03/2011 19:02:41
Quote Anchor link
Ali Teker op 09/03/2011 18:54:10:
neej hij geeft geen fouten aan ben naar phpmyadmin gegaan daar stond 222 bij md5


???

Waar heb je het over?
 

09/03/2011 19:08:55
Quote Anchor link
Ali Teker op 09/03/2011 18:54:10:
neej hij geeft geen fouten aan ben naar phpmyadmin gegaan daar stond 222 bij md5


Kan je wat duidelijker zijn? (Screenshots zou bijvoorbeeld ook kunnen.)

@Dalando, jammer dat je geen sprintf gebruikt bij die mysql_real_escape_string, zou mooi zijn, zie voorbeeld php.net. En mooi dat je het nu eindelijk zelf ook eens snapt (of in ieder geval de theorie kent).
 



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.