Facebook button aanpassen
Bij Facebook kun je een code krijgen en die op je website zetten. Nu vroeg ik me af of je hier php in kunt gebruiken zodat de url in deze code zich aanpast aan de pagina waar de bezoeker zicht bevind op dat moment.
Ik heb het zo gedaan:
Ik heb het zo gedaan:
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
<?php
//laat de url zien van de pagina
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ".$_GET['subrubriek_id']."
";
$result = mysql_query($query);
if(!$result)
{
trigger_error(mysql_error().' ('.$query.')');
}
else{
$row = mysql_fetch_assoc($result);
?>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fotoalbum-maken.nl/<?php echo $row['facebook_url'];?>&layout=standard&show_faces=false&width=450&action=like&font=verdana&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
<?php
}
?>
//laat de url zien van de pagina
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ".$_GET['subrubriek_id']."
";
$result = mysql_query($query);
if(!$result)
{
trigger_error(mysql_error().' ('.$query.')');
}
else{
$row = mysql_fetch_assoc($result);
?>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fotoalbum-maken.nl/<?php echo $row['facebook_url'];?>&layout=standard&show_faces=false&width=450&action=like&font=verdana&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
<?php
}
?>
Denk aan SQL-Injection.
@SanThe
Op deze manier?
Op deze manier?
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
<?php
//laat de url zien van de pagina
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ".mysql_real_escape_string($_GET['subrubriek_id'])."
";
$result = mysql_query($query);
if(!$result)
{
trigger_error(mysql_error().' ('.$query.')');
}
else{
$row = mysql_fetch_assoc($result);
?>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fotoalbum-maken.nl/<?php echo $row['facebook_url'];?>&layout=standard&show_faces=false&width=450&action=like&font=verdana&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
<?php
}
?>
//laat de url zien van de pagina
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ".mysql_real_escape_string($_GET['subrubriek_id'])."
";
$result = mysql_query($query);
if(!$result)
{
trigger_error(mysql_error().' ('.$query.')');
}
else{
$row = mysql_fetch_assoc($result);
?>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fotoalbum-maken.nl/<?php echo $row['facebook_url'];?>&layout=standard&show_faces=false&width=450&action=like&font=verdana&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
<?php
}
?>
mysql_real_escape_string gebruik je alleen bij handmatige invoer
Oké dan weet ik (weer) niet wat er bedoelt wordt......
Hangt er vanaf waar die $_GET['subrubriek_id'] vandaan komt. Als ie uit de url komt dan is ie manipuleerbaar. Je kunt voordat je de facebook url selecteert controleren of de ingegeven id geldig is, bijvoorbeeld door te kijken of deze volledig numeriek is.
Gewijzigd op 08/02/2011 14:04:11 door Ozzie PHP
@Ozzie
Het wordt inderdaad uit de url gehaald.
Is dit beter?
Het wordt inderdaad uit de url gehaald.
Is dit beter?
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
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
<?php
//controleer of het wel om een nummeriek getal gaat
if(isset ($_GET['subrubriek_id'] && is_numeric ($_GET['subrubriek_id']) )
{
$facebook_url = $_GET['subrubriek_id'];
}else{
$facebook_url = 1;
}
//laat de url zien van de pagina
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ".$facebook_url."
";
$result = mysql_query($query);
if(!$result)
{
trigger_error(mysql_error().' ('.$query.')');
}
else{
$row = mysql_fetch_assoc($result);
?>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fotoalbum-maken.nl/<?php echo $row['facebook_url'];?>&layout=standard&show_faces=false&width=450&action=like&font=verdana&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
<?php
}
?>
//controleer of het wel om een nummeriek getal gaat
if(isset ($_GET['subrubriek_id'] && is_numeric ($_GET['subrubriek_id']) )
{
$facebook_url = $_GET['subrubriek_id'];
}else{
$facebook_url = 1;
}
//laat de url zien van de pagina
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ".$facebook_url."
";
$result = mysql_query($query);
if(!$result)
{
trigger_error(mysql_error().' ('.$query.')');
}
else{
$row = mysql_fetch_assoc($result);
?>
<iframe src="http://www.facebook.com/plugins/like.php?href=http://www.fotoalbum-maken.nl/<?php echo $row['facebook_url'];?>&layout=standard&show_faces=false&width=450&action=like&font=verdana&colorscheme=light&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:35px;" allowTransparency="true"></iframe>
<?php
}
?>
Gebruik even de code tags rond heel je code.. [code.] [/code.] (zonder de puntjes)
Check even je eigen vorige bericht en zie wat ik daar tegen je heb gezegd:
http://www.phphulp.nl/php/forum/topic/doe-ik-anti-sqlinjection-zo-op-de-juiste-manier/76091/
http://www.phphulp.nl/php/forum/topic/doe-ik-anti-sqlinjection-zo-op-de-juiste-manier/76091/
@Ozzie
Tja, alweer vergeten....
Ik weet ook echt niet meer wat ik moet doen.
Nu moet ik geloof ik PDO weer gaan leren.
Nou ik heb het doorgenomen en het is zo anders dat ik hier vast weer jaren over doe om het een beetje te begrijpen.
Klopt het dat deze nieuwe manier het gaat overnemen? En ik het dus wel móet leren?
Tja, alweer vergeten....
Ik weet ook echt niet meer wat ik moet doen.
Nu moet ik geloof ik PDO weer gaan leren.
Nou ik heb het doorgenomen en het is zo anders dat ik hier vast weer jaren over doe om het een beetje te begrijpen.
Klopt het dat deze nieuwe manier het gaat overnemen? En ik het dus wel móet leren?
Elsy Vriens op 08/02/2011 13:52:21:
@SanThe
Op deze manier?
Op deze manier?
Helemaal perfect.
Is die id een geheel getal?
Dan volstaat dit:
Indien het geen geheel getal is, doe je dit:
Op php.net staat, onder de uitleg, ook meestal een waslijst aan reacties met volledig uitgewerkte voorbeelden.
Je moet wat wennen aan de stijl van de uitleg, maar eens je die door hebt, kijk je altijd eerst daar. Daarna pas elders.
Dan volstaat dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
...
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ". (int) $facebook_url ."
";
...
?>
...
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ". (int) $facebook_url ."
";
...
?>
Indien het geen geheel getal is, doe je dit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
...
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ". mysql_real_escape_string( $facebook_url ) ."
";
...
?>
...
$query = "
SELECT
facebook_url
FROM
subrubriek
WHERE
id = ". mysql_real_escape_string( $facebook_url ) ."
";
...
?>
Op php.net staat, onder de uitleg, ook meestal een waslijst aan reacties met volledig uitgewerkte voorbeelden.
Je moet wat wennen aan de stijl van de uitleg, maar eens je die door hebt, kijk je altijd eerst daar. Daarna pas elders.
Je moet niks hoor.. het is je eigen keuze.
@Ozzie
Nee ik snap dat ik niets moet. Maar mijn website loopt op dit moment best aardig en het zou jammer zijn als dat door verouderde code straks niet meer het geval is.
Zal ik de code van @Kris maar aanhouden op dit moment?
Oh, ja en natuurlijk nog de vraag of deze code wel werkt hoe ik het graag wil :)
Nee ik snap dat ik niets moet. Maar mijn website loopt op dit moment best aardig en het zou jammer zijn als dat door verouderde code straks niet meer het geval is.
Zal ik de code van @Kris maar aanhouden op dit moment?
Oh, ja en natuurlijk nog de vraag of deze code wel werkt hoe ik het graag wil :)
Je kunt dus beste de manier volgen die ik in je andere bericht laat zien. Vantevoren controleren of je ID geldig is en pas daarna de query uitvoeren (i.t.t. de voorbeelden hierboven)
@Ozzie
Oké, ik zal het nog eens doorlezen en het op jou manier doen.
Oké, ik zal het nog eens doorlezen en het op jou manier doen.
Is goed (en als ik jou was zou ik wel voor PDO gaan).
@Ozzie
Valt niet mee om op mijn leeftijd nog iets nieuws te leren maar ik vind het al knap, al zeg ik het zelf, dat ik het al zover heb gebracht :)
Dus ik geef niet op en ga ervoor.
Ik heb al 2 websites gekregen om door te lezen maar is er ook een boek of zijn deze 2 tips voldoende:
http://www.phphulp.nl/php/tutorial/overig/pdo-verbinden-met-verschillende-databases/534/prepared-statements/1368/
http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html#1
Valt niet mee om op mijn leeftijd nog iets nieuws te leren maar ik vind het al knap, al zeg ik het zelf, dat ik het al zover heb gebracht :)
Dus ik geef niet op en ga ervoor.
Ik heb al 2 websites gekregen om door te lezen maar is er ook een boek of zijn deze 2 tips voldoende:
http://www.phphulp.nl/php/tutorial/overig/pdo-verbinden-met-verschillende-databases/534/prepared-statements/1368/
http://www.phpro.org/tutorials/Introduction-to-PHP-PDO.html#1
Dat zijn toch die linkjes die ik je gegeven heb? Dan zal het wel goed zijn.
Elsy Vriens op 08/02/2011 15:02:50:
Dus ik geef niet op en ga ervoor.
That's the spirit.
Precies! :)




