ERLEDIGT
NEIN
NEIN
ANTWORTEN
7
7
ZUGRIFFE
742
742
EMPFEHLEN
-
29.11.09 13:41 #1Sascha1006 Tutorials.de Gastzugang
hallo,
ich habe ein problem mit einem link wie z.B. index.php?area=dbk&content=info
habe mir das tut dazu angeschaut, welches aber leider nur bis index.php?area=dbk geht.
wie gesagt würd ich aber gerne längere links haben...
nun habe ich versucht das ganze bissl umzustellen, was mir nicht ganz gelungen ist...
hier mal mein ursprünglicher code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
<?php include('linkinfo.php'); if(isset($_GET['area']) AND isset($bereich[$_GET['area']])) { if(!file_exists($bereich[$_GET['area']])) echo "Die Datei ist nicht vorhanden."; include $bereich[$_GET['area']]; } else { include $dateien['news']; } ?>
diesen code habe ich nun wie folgt geändert.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
<?php include('linkinfo.php'); if(isset($_GET['area']) AND isset($bereich[$_GET['area']])) { if(!file_exists($bereich[$_GET['area']])) echo "Die Datei ist nicht vorhanden."; include $bereich[$_GET['area']]; if(isset($_GET['content']) AND isset($dateien[$_GET['content']])) { if(!file_exists($dateien[$_GET['content']])) echo "Die Datei ist nicht vorhanden."; include $dateien[$_GET['content']]; } } else { include $dateien['news']; } ?>
und dann hier noch die linkinfo.php
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<?php $dateien = array(); //area $bereich['dbk'] = "area/dbk/"; $bereich['bsn'] = "area/bsn/"; $bereich['prg'] = "area/prg/"; $bereich['content'] = "area/content/"; //content $dateien['news'] = "area/content/news.php"; $dateien['formular'] = "formular2.php"; $dateien['info'] = "info.php"; $dateien['material'] = "material.php"; $dateien['aufgaben'] = "aufgaben.php"; ?>
hoffe irgendwer kann mir bei meinem problemchen helfen. =)
Gruss
Sascha
-
Es wäre noch sehr vorteilhaft zu wissen, was denn nicht funktioniert, bzw. was du erwartest.

Allerdings ist folgendes Käse:
Auch wenn die Datei nicht vorhanden ist, versuchst du sie mittels include() zu laden, gibst vorher jedoch aus, dass die Datei nicht existiert. Das ergibt doch keinen Sinn.PHP-Code:if(isset($_GET['area']) AND isset($bereich[$_GET['area']]))
{
if(!file_exists($bereich[$_GET['area']])) echo "Die Datei ist nicht vorhanden.";
include $bereich[$_GET['area']];
}
else
{
include $dateien['news'];
}

Was du wohl erreichen wolltest ist folgendes:
Das selbe gillt für die If-Bedingungen im zweiten Code-Ausschnitt.PHP-Code:if(isset($_GET['area']) AND isset($bereich[$_GET['area']]) and file_exists($bereich[$_GET['area']])) {
include $bereich[$_GET['area']];
}
else
{
include $dateien['news'];
}
mfg
DeluXe
-
29.11.09 15:02 #3Sascha1006 Tutorials.de Gastzugang
hmm
also der code..
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
<?php include('linkinfo.php'); if(isset($_GET['area']) AND isset($bereich[$_GET['area']])) { if(!file_exists($bereich[$_GET['area']])) echo "Die Datei ist nicht vorhanden."; include $bereich[$_GET['area']]; } else { include $dateien['news']; } ?>
hatte eig vorher schon funktioniert.
nur wenn ich versuch, dass ich den link erweitern kann, also dass ich
index.php?area=dbk&content=info
aufrufen kann funktioniert nicht.
wenn ich den code wie oben bei mir beschrieben änder kommt folgende fehlermeldung.
Code :1 2 3 4 5 6 7
Warning: include(D:\wamp\www\seite\area\dbk) [function.include]: failed to open stream: Permission denied in D:\wamp\www\seite\\index.php on line 55 Warning: include() [function.include]: Failed opening 'area/dbk/' for inclusion (include_path='.;C:\php5\pear') in D:\wamp\www\seite\\index.php on line 55 Die Datei ist nicht vorhanden. Warning: include(info.php) [function.include]: failed to open stream: No such file or directory in D:\wamp\www\seite\\index.php on line 61 Warning: include() [function.include]: Failed opening 'info.php' for inclusion (include_path='.;C:\php5\pear') in D:\wamp\www\seite\\index.php on line 61
also scheint er irgendwie nicht zu verstehen, dass er nach area/dbk/ noch weiter machen soll, dass der link dann area/dbk/info.php ergibt
-
29.11.09 20:02 #4Sascha1006 Tutorials.de Gastzugang
huhu,
erstma sorry für den doppelpost, aber hab hier grad ma bissl überlegt, ist es nicht rein theoretisch irgendwie möglich das wie folgt aussehn zu lassen...?
Code :1 2 3 4 5 6 7 8 9
<?php include('linkinfo.php'); $link = $bereich[$_GET['area']]$dateien[$_GET['content']] include $link; ?>
das is natürlich nur sehr primitiv, aber irgendwie so müsste das doch sein oder nicht?
oder ist das technisch gar nicht machbar die teile aneinander zu reihen damit sie nen vernünftigen link ergeben?
hab ja mal dein beispiel genommen, aber dabei will er ja nur den link index.php/area/dbk/ aufrufen, aber das sind ja nur ordner. da muss ja noch irgendwie die info.php dran...
hoffe mir kann jmd helfen =)
Gruss
Sascha
-
Du solltest $bereich[] und $dateien[] mit einem "." zusammensetzen. Ebenfalls währe ein ; am Ende noch nützlich.
Ansonsten sollte es schon gehen.
Dan ggf noch prüfen ob die Datei vorhanden ist..
PHP-Code:<?php
include('linkinfo.php');
$link = $bereich[$_GET['area']].$dateien[$_GET['content']];
if (file_exists($link)){
include $link;
} else {
echo "File {$link} not found";
}
?>---------------------------------------------------------------------------------------------------
item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
item: Tutorial: [PHP][MySQL] Debug Queries
item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben
-
30.11.09 17:57 #6Sascha1006 Tutorials.de Gastzugang
huhu,
vielen lieben dank, klappt nun perfekt =)
hab den code nun noch an das komplexere angepasst. poste den hier nochmal, für leute die das selbe problem haben.
[code]
<?php
include('linkinfo.php');
if(isset($_GET['area']) AND isset($bereich[$_GET['area']]) and isset($_GET['content']) AND isset($dateien[$_GET['content']]) and file_exists($bereich[$_GET['area']].$dateien[$_GET['content']])){
include $bereich[$_GET['area']].$dateien[$_GET['content']];
}
else
{
include $dateien['news'];
}
?>
[/code
-
Kleiner Sicherheitstipp. Lass keinen direktaufruf der php Dateien zu. Sonst kann ein User der weiß wie die Seite heißt, diese auch anders ansteuern.
Nur am Rande, falls es dich interessiertPHP-Code:if( $_SERVER['SCRIPT_FILENAME'] == __FILE__ )
{
echo "<div class='error'>Die Seite darf nicht direkt aufgerufen werden!</diV>";
}
-
02.12.09 17:58 #8Jeder freut sich über eine positive Bewertung oder ein Danke :)
Mein MottoWie poste ich falsch
Nachdem ich Google, die FAQ und die interne Suche erfolgreich ignoriert habe, erstelle ich zwei bis fünf neue Themen in den falschen Unterforen, mit kreativen Titel und undeutlichem Text, unter dem sich jeder etwas anderes vorstellen kann. Helfende Posts anderer Mitglieder ignoriere ich einfach und nörgle, dass mir niemand helfen kann.
Ähnliche Themen
-
Navigation über die URL "index.php?section=index"
Von M@rk im Forum PHPAntworten: 10Letzter Beitrag: 27.01.09, 19:59 -
Frage zu: "Navigation über die URL "index.php?section=index"
Von lp-chester im Forum PHPAntworten: 6Letzter Beitrag: 26.07.06, 14:12 -
Frage zu "index.php?section=index" Varianten
Von Xen2oo6 im Forum PHPAntworten: 3Letzter Beitrag: 18.02.06, 00:53 -
Navigation index.php?section=links
Von kalle01 im Forum PHPAntworten: 4Letzter Beitrag: 01.05.05, 18:39





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren