Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   [PHP]Scripje voor kiezen siteheader? (https://forum.scholieren.com/showthread.php?t=555176)

Vinzz 31-07-2003 16:50

[PHP]Scripje voor kiezen siteheader (plaatje)?
 
Weet iemand misschien waar ik een scripje kan vinden? of kent iemand misschien een scriptje dat..:

Dat je in een PHP pagina .. ergens in een tabelletje bijv ... 1 2 3 en heb staan (als "links") .. en als je dan op de 2 klikt dat de siteheader boven veranderd :) .. en bij 3 weer een andere.. en dat standaard de 1e siteheader tevoorschijnkomt .. deze zijn gewoon in .jpg formaat

ik ben benieuwd :o

Enlightenment 31-07-2003 16:55

Siteheader?

Vinzz 31-07-2003 17:32

uhm ja ..misschien niet helemaal de juiste benaming.. ik bedoel gewoon een plaatje bovenaan website met titel :o

Enlightenment 31-07-2003 17:42

Nou als ie al verder in de HTML is kan hij niets meer veranderen, dat is logisch natuurlijk.

Wat jij wilt kan niet serverside, maar wel clientside. Javascript imageflip bijvoorbeeld.

Of wil je gewoon een nieuwe pagina openen? Dan kun je dat simpel met een variabele doen natuurlijk. Link 1 = index.php?id=1 en dan id uitlezen en aan de hand daarvan de juiste image geven.

-niels- 31-07-2003 17:58

Nah je koppelt de headers aan je onderdelen (in de database)
en als je dan een onderdeel inlaad... (select * from onderdeel where id=1 ofzo) dan lees je dan ook die header uit, en zorg je dat die tussen de img tags wordt ingeladen...

je zou evt ook per onderdeel een andere stylesheet aan kunnen maken, dan hoef je ze ook niet in de DB te zetten... alleen een style te koppelen..

Enlightenment 31-07-2003 18:04

Als je met sessions werkt kun je die info ook in $_SESSION opslaan, houd je de URL vrij van vars, vind ik wel zo netjes.

Bobpje 31-07-2003 19:24

Met PHP wordt het idd serverside, dus zoiets:
PHP-code:

<?php
$header 
$_GET['id'];
$query "SELECT title, image FROM table WHERE id = '" $header "'";
$result mysql_query($query);
$row mysql_fetch_array($result);
echo 
"<html><head><title>" $row['title'] . "</title></head><body>";
echo 
"<img src=\"" $row['image'] . "\">";
echo 
"</body></html>";
?>

oid :)

-niels- 31-07-2003 20:02

Citaat:

Bobpje schreef op 31-07-2003 @ 20:24:
Met PHP wordt het idd serverside, dus zoiets:
PHP-code:

<?php
$header 
$_GET['id'];
$query "SELECT title, image FROM table WHERE id = '" $header "'";
$result mysql_query($query);
$row mysql_fetch_array($result);
echo 
"<html><head><title>" $row['title'] . "</title></head><body>";
echo 
"<img src=\"" $row['image'] . "\">";
echo 
"</body></html>";
?>

oid :)

netjes :)

Enlightenment 31-07-2003 23:14

Wat nou netjes!

Kijk eens goed:


$header = $_GET['id'];

$query = "SELECT title, image FROM table WHERE id = '" . $header . "'";

Noem je dat netjes? De ruwe user input in een query stoppen?! Hierdoor kun je keihard een DB exploiten.

$header = (int)$_GET['id']; gebruiken, of:
$header = mysql_escape_string($_GET['id']);
als het om een string gaat.

-niels- 31-07-2003 23:18

Citaat:

Enlightenment schreef op 01-08-2003 @ 00:14:
Wat nou netjes!

Kijk eens goed:


$header = $_GET['id'];

$query = "SELECT title, image FROM table WHERE id = '" . $header . "'";

Noem je dat netjes? De ruwe user input in een query stoppen?! Hierdoor kun je keihard een DB exploiten.

$header = (int)$_GET['id']; gebruiken, of:
$header = mysql_escape_string($_GET['id']);
als het om een string gaat.

als voorbeeld... tjeas... :rolleyes:

Enlightenment 31-07-2003 23:20

En als je maar 3 siteheaders hebt, gewoon:

URL = /index.php?header=1

PHP-code:

if ($_GET['header'] == 1)
{
 
$title 'BLah';
 
$img '/images/header1.jpg';
}
elseif (
$_GET['header'] == 2)
{
 
$title 'Puuh';
 
$img '/images/header2.jpg';
}
elseif (
$_GET['header'] == 3)
{
 
$title 'Boooh!';
 
$img '/images/header3.jpg';
}
else
 
// geen header
 
echo('geen header');

echo(
'<html><head><title>'.$title.'</title></head><body>');
echo(
'<img src="'.$img.'" alt="">'); 

Zoiets, heb je geen DB voor nodig.

Enlightenment 31-07-2003 23:21

Citaat:

-niels- schreef op 01-08-2003 @ 00:18:
als voorbeeld... tjeas... :rolleyes:
Slecht voorbeeld dan, want hij zou het zo kunnen gebruiken.

Het overtreedt de nummer 1 regel die je als PHP coder moet onthouden:

Do not trust user input

-niels- 31-07-2003 23:38

Citaat:

Enlightenment schreef op 01-08-2003 @ 00:21:
Slecht voorbeeld dan, want hij zou het zo kunnen gebruiken.

Het overtreedt de nummer 1 regel die je als PHP coder moet onthouden:

Do not trust user input

Zo... en sinds wanneer worden voorbeelden die niet voldoen afgekeurd?
Bij bijna elke PHP vraag wordt doorverwezen naar andere site, en als die dan met vragen over die scripts komen krijg je, zoek een beter script...

nou helpt iemand een keer... geeft een VOORBEELD (niet, "gebruik dit letterlijk") en dan is 't ook niet goed...
zullen we voortaan de PHP vragen maar verbieden.... tjeas... zeikert (n) :rolleyes:

Enlightenment 01-08-2003 06:15

Omdat ik een voorbeeld korrigeer, waarbij anders iemand full access tot de database kan krijgen (een 100% lek dus) en ik code geef hoe het dan wel veilig kan (en zelfs zonder database at all), ben ik een zeikerd?

:o

shao-kahn 01-08-2003 11:44

ja:)

Dr HenDre 01-08-2003 12:20

jzs, Enlightenment vult gewoon de script aan, ik bedoel als ik zon vraag stel, en iemand komt met een antwoord, dan zou ik m bijna zeker zo gebruiken en er verder niet bij nadenken. Ze wijst de topicstarter erop dat hij dat neit moet doen, en dan wordt ze nog afgezeken als zeikerd :rolleyes: .

@niels: stel dat jij de topicstarter was, en je kreeg zoiets onder je neus gedrukt, zou jij het dan niet bijna (zoniet helemaal) letterlijk gebruiken. *neeeeeeeeeeuh, zal wel niet he*

Bobpje 01-08-2003 16:21

Dude, ik geef toch alleen ff aan hoe het systeempje opgebouwd kan worden...

Naja kzeg al nix meer hoor :P

Enlightenment 01-08-2003 16:30

Citaat:

Bobpje schreef op 01-08-2003 @ 17:21:
Dude, ik geef toch alleen ff aan hoe het systeempje opgebouwd kan worden...

Naja kzeg al nix meer hoor :P

Ik heb niks tegen jou hoor. :)

Als ik een voorbeeld post, waarin toch een pikant foutje zit, vind ik het goed als anderen de topicstarter daarop wijzen.

Niemand weet alles namelijk, daarom is het fijn dat mensen op een fora elkaar kunnen aanvullen. :)

TouchOfDarkness 01-08-2003 19:25

Citaat:

Enlightenment schreef op 01-08-2003 @ 00:14:
Wat nou netjes!

Kijk eens goed:


$header = $_GET['id'];

$query = "SELECT title, image FROM table WHERE id = '" . $header . "'";

Noem je dat netjes? De ruwe user input in een query stoppen?! Hierdoor kun je keihard een DB exploiten.

$header = (int)$_GET['id']; gebruiken, of:
$header = mysql_escape_string($_GET['id']);
als het om een string gaat.

Je hebt wel gelijk, maar in een standaard PHP distributie staat de magic_quotes_gpc directive op On, dus daarmee worden GET variabelen ook al ge-escaped.

Enlightenment 01-08-2003 20:58

Daar heb ik ook wat over gelezen ja. Maar al weet je zeker dat die optie aanstaat, stel je zet hem op de site van je provider of ergens anders, kun je niet van uit gaan dat die optie daar ook aanstaat.

Ik vind het een goede gewoonte dat je die jezelf altijd aanleert, net zoals je je gordel altijd omdoet.

Het is een manier van denken, waardoor je veel veiligere scripts maakt.


Alle tijden zijn GMT +1. Het is nu 01:47.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.