Lidworden data invoeren in database
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)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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')");
?>
$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
- Onnodig variabelen aanmaken
- SQL Injection
- Geen foutafhandeling
heb al boven vermeld dat ik zeer slecht(beginner) in php bent weet niet wat onnodig is :(
Ook even je database gegevens afschermen
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
nergens voor nodig, want die $_GET variabelen heb je al ;-)...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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')");
?>
// 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)
En dan, bovenaan iedere pagina:
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
<?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.';
}
?>
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)
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)
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
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']) ."'
)
";
?>
$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)
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
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 ';
}
?>
// 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
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
Ali Teker op 09/03/2011 18:50:22:
Geeft het errors?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
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
neej hij geeft geen fouten aan ben naar phpmyadmin gegaan daar stond 222 bij md5
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?
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).