Webstatt.org - Community seit 2006 - 2012 (2024?)

problem mit url überprüfungsscript

user-139
28.08.2006 15:57

so hab auf meiner hp en script weleches dann unkontrollierte aufuren von seioten verhindert bzw nich existierende bzw seiten die nich in der liste stehen nich zulässt, jetzt hab ich aber das problem das wenn ich einfach meine url aufrufe www.xyz.de ja keine seite übergeben wird wie z.B. ?page=news , wie kann ich jetzt meine news seite trotzdem aufrufen, als default wert z.B. ?

hier mal der COde
<? 


// hier müssen Anpassungen bei neuen Seiten vorgenommen werden:
$erlaubt = array(
'index' => './pages/home.php',
'news' => './pages/news.php',
'bilder' => './pages/bilder.php',
'kerwered' => './pages/kerwered.php',
'guest' => './pages/guest.php',
'links' => './pages/links.php',
'impressum' => './pages/impressum.php'
);
$seite = 'index'; // initialisiert $seite mit einem Default-Wert
// prüft, ob die GET-Variable "seite" gesetzt ist
// und weist bei Erfolg den Wert der Variable $seite
if (isset($_GET['page'])) {
$page = $_GET['page'];
}
// hier kommt der wichtige Check, der prüft ob die Usereingabe gültig ist
if (isset($erlaubt[$page])) {
include $erlaubt[$page];
} else {
// Fehlerbehandlung
print '<b>Fehler</b>: Die angeforderte Seite konnte nicht gefunden werden.';
}
?>j


kann jede idee gebrauchen da mir dazu nichts einfällt,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-317
28.08.2006 15:59

Den ersten Teil hab ich zwar nicht verstanden, aber ok.....

<?php
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 'news';
}
?>

user-303
28.08.2006 16:00

naja sven, sein script sieht das ja schon vor, nur hat er wohl beim bearbeiten ein fehler gemacht...?
mach aus
$seite = 'index'; // initialisiert $seite mit einem Default-Wert
ein
$page = 'index'; // initialisiert $seite mit einem Default-Wert

user-265
28.08.2006 16:01

Ok, da waren andere schneller Fettes Grinsen

user-139
28.08.2006 16:03

stimmt scheiss anpassungs fehler ,also
habs jetzt geändert das er mir als default wert die news.php nimmt
$page = 'news'; // initialisiert $seite mit einem Default-Wert


allerdings müsste ich noch ein paar variablen übergeben !
geht das ohne probleme?
&news=show

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-253
28.08.2006 16:52

Ja müsste gehen.
Alternativ kannst du es eventuell auch einfach in $_GET schreiben also $_GET['news'] = 'show'; Man hat doch auch schreibenden Zugriff oder?

Alternativ und besser: du baust in deinem Newsscript eine Abfrage ein ob array_key_exists('news',$_GET) und wenn nicht nimmst du den Defaultwert 'show'.

Erstere Vorschlöge sind keine Lösung sondern ein hässliches Workaround. Letzteres die korrekte Vorgehensweise

// edit

Verwechselt. Mit include geht es wohl nicht. Ich dachte irgendwie an file_get_contents... sry

user-139
28.08.2006 17:04

jo also includiert wird meine datei aber die variablen und die darauf folgende abfrage funktioniert nich ,.
da in meiner news.php steht
if($_GET['news'] == 'show'zwinkern
{



muss ich ja dieses show übergeben , leider ka wo,
habs zar ausprobiert jeder bekomme ich dann immer nen fehler,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
Avatar user-253
28.08.2006 17:07

if(($_GET['news']=='show'zwinkern || (!array_key_exists('news',$_GET)))

// edit

@Sven: genau deine Lösung hatte ich in ICQ auch vorgeschlagen *gg*

Avatar user-317
28.08.2006 17:17

Argh, war vorhin zu schnell frech

user-139
28.08.2006 20:04

mhh funktioniert nich , ich muss glaube ich die news.php umschreiben ,. hat da jemand ne idee dazu ? oder soll ich lieber das seite erluaben script umschreiben?

wie macht ihr das denn normalerweise?

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe
user-139
29.08.2006 13:59

so, habs.. mit artemias viorschlag gehts ,. und der $seite zu page ,.

OS: Windows XP CPU: AMD Athlon XP 3200+ RAM: 512MB DDR PC3200 (Dual Channel) Mainboard: MSI K7n2 Delta-L HDD: 80GB WD Graka:Radeon 9600 Pro =>Alekeijer Straussbuwe