pagina systeem
ik wil alleen nog even weten of het wel veilig is:
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
if ( isset($_GET['id']) )
{
$id = mysql_real_escape_string($_GET['id']);
$sql = 'select * from tekst where id = "'.mysql_real_escape_string($id).'"';
$tmp = mysql_query($sql);
while ( $list = mysql_fetch_array($tmp) )
{
$content = $list['tekst'];
echo $content;
}
}
else
{
$sql = 'select * from tekst where id = "1"';
$tmp = mysql_query($sql);
while ( $list = mysql_fetch_array($tmp) )
{
$content = $list['tekst'];
echo $content;
}
}
?>
if ( isset($_GET['id']) )
{
$id = mysql_real_escape_string($_GET['id']);
$sql = 'select * from tekst where id = "'.mysql_real_escape_string($id).'"';
$tmp = mysql_query($sql);
while ( $list = mysql_fetch_array($tmp) )
{
$content = $list['tekst'];
echo $content;
}
}
else
{
$sql = 'select * from tekst where id = "1"';
$tmp = mysql_query($sql);
while ( $list = mysql_fetch_array($tmp) )
{
$content = $list['tekst'];
echo $content;
}
}
?>
en de tabel:
CREATE TABLE `tekst` (
`id` int(11) NOT NULL auto_increment,
`tekst` longtext NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;
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
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
<?php
if( isset($_GET['id']) && !empty($_GET['id']) ) {
$aID = mysql_real_escape_string($_GET['id']);
} else {
$aID = 1;
}
$aSql = "SELECT * FROM tabelnaam WHERE id = '" . $aID . "'";
if(!$aRes = mysql_query($aSql))
{
trigger_error(mysql_error().'<br />In query: '.$aSql);
} else {
if(mysql_num_rows($aRes) == 1)
{
while($aRij = mysql_fetch_assoc($aRes))
{
// content kan hier
}
} else {
echo 'Er ging iets mis met het selecteren van de pagina.';
}
}
?>
if( isset($_GET['id']) && !empty($_GET['id']) ) {
$aID = mysql_real_escape_string($_GET['id']);
} else {
$aID = 1;
}
$aSql = "SELECT * FROM tabelnaam WHERE id = '" . $aID . "'";
if(!$aRes = mysql_query($aSql))
{
trigger_error(mysql_error().'<br />In query: '.$aSql);
} else {
if(mysql_num_rows($aRes) == 1)
{
while($aRij = mysql_fetch_assoc($aRes))
{
// content kan hier
}
} else {
echo 'Er ging iets mis met het selecteren van de pagina.';
}
}
?>
Maak dan wel gebruik van het script van Bart, want dat is net iets beter (overzichtelijker/netter/veiliger).
Redenen:
* jij gaf $_GET['id'] 2x een mysql_real_escape, waar 1x echt wel genoeg is.
* jij geeft geen standaard-getal op voor $id, wat Bart wel doet (jij hebt dan 2 losse queries, waardoor je wel iets 'standaards' hebt.
* je controleert niet of de query gelukt is (Bart wel)
* je kopieert onnodig variabelen >> $content = $list['tekst'] >> echo $content;
ik zal het proberen
WaaroM?
ja dat kan ook