Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

PHP. Include Variabler dateinamen

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Tracker
PostRank 3
PostRank 3
Beiträge: 68
Registriert: 13.04.2010, 21:46

Beitrag von Tracker » 18.04.2010, 13:16

Hallo,

und sorry das ich nerve.

Ich würde gerne Dateien in eine Seite per include laden.
Welche datei es sein soll, soll mittel variabler übergeben werden.

Also domain.de/?a=x&b=y&c=z&d=a

Code sieht so aus

Code: Alles auswählen


<?php include '/secure/include/titel/$a-$b/$c-$d.php';?>

Tut sich aber nix.

Mittels "echo" aber getestet das die Variablen richtig übergeben werden.

Könnte wetten das es wieder nur ein "Kommafehler" ist und ich aufm schlauch steh ...
Ich darf das fragen ich bin ein DAU
https://fast-food.blog.de

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


TBT
PostRank 5
PostRank 5
Beiträge: 306
Registriert: 13.02.2008, 16:11

Beitrag von TBT » 18.04.2010, 13:27

bei ' werden die Variablen nicht ersetzt, nimm "

Tracker
PostRank 3
PostRank 3
Beiträge: 68
Registriert: 13.04.2010, 21:46

Beitrag von Tracker » 18.04.2010, 13:41

oh mann ... wieviel man in 5 jahren doch vergisst.

Danke
Ich darf das fragen ich bin ein DAU
https://fast-food.blog.de

PHPSchmied
PostRank 3
PostRank 3
Beiträge: 79
Registriert: 20.11.2008, 15:53

Beitrag von PHPSchmied » 18.04.2010, 13:43

Warum sollte er " nehmen wenn er den trick schon raus hat wie PHP schneller wird.
Wenn dann erkläre ihm das auch richtig und führe ihn nicht wieder auf ein schlechten Programmierstil.

Code: Alles auswählen

<?php 

$a = $_GET&#91;'a'&#93;;
$b = $_GET&#91;'b'&#93;;
$c = $_GET&#91;'c'&#93;;
$d = $_GET&#91;'d'&#93;;
$file =  '/secure/include/titel/'.$a.'-'.$b.'/'.$c.'-'.$d.'.php';

if &#40;file_exist&#40;$file&#41;&#41; &#123;
   include $file; 
&#125;

?>
Zuletzt geändert von PHPSchmied am 18.04.2010, 13:46, insgesamt 3-mal geändert.

Mork vom Ork
PostRank 9
PostRank 9
Beiträge: 2557
Registriert: 08.07.2008, 11:07
Wohnort: Aufm Friedhof.

Beitrag von Mork vom Ork » 18.04.2010, 13:43

Tracker hat geschrieben:Ich würde gerne Dateien in eine Seite per include laden. Welche datei es sein soll, soll mittel variabler übergeben werden. Also domain.de/?a=x&b=y&c=z&d=a
Oha. Du bist dir hoffentlich im Klaren darüber, dass du gerade bei solchen Aktionen den Inhalt der Parameter strikt prüfen musst.

Code: Alles auswählen

<?php include '/secure/include/titel/$a-$b/$c-$d.php';?>
1. In Zeichenketten, die von einfachen Anführungszeichen umklammert werden, funktioniert die PHP-Unart, Variablen zu ersetzen, nicht.

2. Ich mag nicht so recht glauben, dass die einzufügenden Dateien in einem Verzeichnis mit dem Pfad /secure liegen sollen – dieses würde im Wurzelverzeichnis des Servers liegen und da gibt es nur ein Dutzend fest definierter Systemverzeichnisse, zu denen /secure nicht gehört, das da nicht hinpasst und wo du normalerweise auch keinen Zugriff drauf hättest.
Du meinst vermutlich eher das Basisverzeichnis, das du auch per FTP siehst. Dieses findest du in $_SERVER["DOCUMENT_ROOT"].

Ergo:

Code: Alles auswählen

<?php 
pruefen_ob_a_b_c_und_d_sich_im_bereich_gueltiger_werte_befinden_oder_irgendein_boeser_bube_unfug_zu_versuchen_treibt&#40;&#41;;
if &#40;ist_zieldatei_vorhanden&#40;&#41;&#41; &#123;
   include $_SERVER&#91;"DOCUMENT_ROOT"&#93; . 'secure/include/titel/' . $a . '-' . $b . '/' . $c . '-' . $d . '.php';?>
&#125;
else &#123;
    fehler_da_ziel_nicht_vorhanden&#40;&#41;
&#125;
\

heino
PostRank 8
PostRank 8
Beiträge: 833
Registriert: 21.09.2006, 13:42

Beitrag von heino » 18.04.2010, 15:03

Mork vom Ork hat geschrieben:
Tracker hat geschrieben:Ich würde gerne Dateien in eine Seite per include laden. Welche datei es sein soll, soll mittel variabler übergeben werden. Also domain.de/?a=x&b=y&c=z&d=a
Oha. Du bist dir hoffentlich im Klaren darüber, dass du gerade bei solchen Aktionen den Inhalt der Parameter strikt prüfen musst.
Na ja. Er hat irgendwie eine düstere Ahnung. Aber nur sehr düster.
... 3. Was passiert wenn man die Url mit Variablen aufruf die keine "Bedutung" haben ? kann man das Irgendwie abfangen ?

Tracker
PostRank 3
PostRank 3
Beiträge: 68
Registriert: 13.04.2010, 21:46

Beitrag von Tracker » 18.04.2010, 16:12

PHPSchmied hat geschrieben:Warum sollte er " nehmen wenn er den trick schon raus hat wie PHP schneller wird.
Wenn dann erkläre ihm das auch richtig und führe ihn nicht wieder auf ein schlechten Programmierstil.

Code: Alles auswählen

<?php 

$a = $_GET&#91;'a'&#93;;
$b = $_GET&#91;'b'&#93;;
$c = $_GET&#91;'c'&#93;;
$d = $_GET&#91;'d'&#93;;
$file =  '/secure/include/titel/'.$a.'-'.$b.'/'.$c.'-'.$d.'.php';

if &#40;file_exist&#40;$file&#41;&#41; &#123;
   include $file; 
&#125;

?>
funktioniert prima und auch das mit der else hab ich allein hinbekommen :)

Noch eine kurze frage.

Ich kann funktionen ja in eine INC packen. diesen includen und dann die einzelnen funktionen aufrufen.

Funzt das auch mit HTML elementen.

Also mit z.B. Metas, Body ?
Ich darf das fragen ich bin ein DAU
https://fast-food.blog.de

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 18.04.2010, 21:30

PHPSchmied hat geschrieben:Warum sollte er " nehmen wenn er den trick schon raus hat wie PHP schneller wird.
Wenn dann erkläre ihm das auch richtig und führe ihn nicht wieder auf ein schlechten Programmierstil.

Code: Alles auswählen

<?php 

$a = $_GET&#91;'a'&#93;;
$b = $_GET&#91;'b'&#93;;
$c = $_GET&#91;'c'&#93;;
$d = $_GET&#91;'d'&#93;;

?>
Völlig sinnloses Umkopieren von Variablen ist also guter Programmierstil?
Tracker hat geschrieben: Noch eine kurze frage.

Ich kann funktionen ja in eine INC packen. diesen includen und dann die einzelnen funktionen aufrufen.

Funzt das auch mit HTML elementen.

Also mit z.B. Metas, Body ?
Eine Gegenfrage, warum findest Du es nicht heraus?

Tracker
PostRank 3
PostRank 3
Beiträge: 68
Registriert: 13.04.2010, 21:46

Beitrag von Tracker » 19.04.2010, 10:25

Hasenhuf hat geschrieben: Eine Gegenfrage, warum findest Du es nicht heraus?

OK...hat auch jemand nen Tipp oder nen Link zur selbsthilfe
Ich darf das fragen ich bin ein DAU
https://fast-food.blog.de

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 19.04.2010, 11:01

PHPSchmied hat geschrieben:Warum sollte er " nehmen wenn er den trick schon raus hat wie PHP schneller wird.
In diesem Fall würde ich Lesbarkeit wesentlich wichtiger einschätzen, als einen zusätzlichen Prozentpunkt Geschwindigkeit einer einmalig ausgeführten Code-Zeile.

Ansonsten würde ich empfehlen, die ganze Site per C-Code erzeugen zu lassen. Scheiß auf PHP wenn es um Performance geht! ;)

Hasenhuf
PostRank 9
PostRank 9
Beiträge: 2840
Registriert: 26.12.2005, 22:22

Beitrag von Hasenhuf » 20.04.2010, 14:29

Tracker hat geschrieben:
Hasenhuf hat geschrieben: Eine Gegenfrage, warum findest Du es nicht heraus?

OK...hat auch jemand nen Tipp oder nen Link zur selbsthilfe
Ich dachte an ausprobieren, schließlich verwendest Du den Befehl schon und solltest wissen was er macht. Wenn Du weiß welche Bedingungen erfüllt sein müssen, wenn Du PHP-Code ausführbar einbinden willst, dann sollte auch klar sein, was passiert, wenn die Bedingungen dafür nicht erfüllt sind.

Ansonsten, RTFM oder ein Tutorial.
https://de.php.net/manual/de/function.include.php
https://tut.php-q.net/de/

Tracker
PostRank 3
PostRank 3
Beiträge: 68
Registriert: 13.04.2010, 21:46

Beitrag von Tracker » 23.04.2010, 12:43

Da es ja mitlerweile um ein neues thema geht

https://www.abakus-internet-marketing.d ... tml#702110
Ich darf das fragen ich bin ein DAU
https://fast-food.blog.de

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 23.04.2010, 12:48

hallo? includes und requires werden doch eingebunden BEVOR irgendwelcher php-code ausgefuehrt wird!

DanielS
PostRank 9
PostRank 9
Beiträge: 1179
Registriert: 03.08.2008, 08:45

Beitrag von DanielS » 23.04.2010, 14:03

nerd hat geschrieben:includes und requires werden doch eingebunden BEVOR irgendwelcher php-code ausgefuehrt wird!
Ich weiß zwar nicht, auf was für einen Code Du Dich beziehst, aber so wie die Aussage da steht, stimmt das nicht.

nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 23.04.2010, 15:29

hu? gerade ausprobiert, seit wann funktioniert das denn? hatte das mal in so einem dicken php buch gelesen. sah von aussen jedenfalls voll legit aus und war auch richtig teuer...

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag