Problem mit includen wenn ein Fragezeichen vorkommt
Ron
- php
Hallo,
ich will eine Datei includen und bekomme, sobald ich Variablen an diese Datei anhängen will, eine Fehlermeldung.
<?php include('reinmit.php?rubric=wasauchimmer'); ?>
Wenn ich folgenden Code benutze (ohne Fragezeichen und Variablen) funktioniert es einwandfrei.
<?php include('reinmit.php'); ?>
Sobald ich nur ein Fragezeichen anfüge kommt die Fehlermeldung.
Die Datei ist ja vorhanden.
Deshalb verstehe ich das nicht.
Die Fehlermeldung:
Warning: include(/home/xxxxx/xxxxx/xxxx/xxxxx/xxxxx/reinmit.php?rubric=wasauchimmer) [function.include]: failed to open stream: No such file or directory in /home/xxxxx/xxxxx/xxxx/xxxxx/xxxxx//_datei.php on line 36
Über Hilfe würde ich mich freuen...
Gruß Ron
Hallo Ron,
ich will eine Datei includen und bekomme, sobald ich Variablen an diese Datei anhängen will, eine Fehlermeldung.
<?php include('reinmit.php?rubric=wasauchimmer'); ?>
natürlich, PHP versucht hier die Datei "reinmit.php?rubric=wasauchimmer" einzubinden, die nicht existiert, schon deshalb nicht existieren *kann*, weil das Fragezeichen in den meisten Dateisystemen kein erlaubtes Zeichen für Dateinamen ist.
Wenn ich folgenden Code benutze (ohne Fragezeichen und Variablen) funktioniert es einwandfrei.
<?php include('reinmit.php'); ?>
Ja. Mach dir bitte klar, dass PHP hier wirklich auf Datei-Ebene arbeitet! Was du meinst, ist die Übergabe von URL-Parametern, die aber so nur im HTTP-Protokoll vorgesehen ist. Und ein include ist (normalerweise) kein HTTP-Request.
Sobald ich nur ein Fragezeichen anfüge kommt die Fehlermeldung.
Die Datei ist ja vorhanden.
Nicht die, die du angibst. ;-)
Wenn du einem includierten Script Variablen zur Verfügung stellen willst, definiere sie einfach im übergeordneten Script. Der eingefügte Code kann ganz normal auf den Variablenbestand des Gesamt-Scripts zugreifen, ohne dass man ihm diese Variablen extra "übergeben" müsste.
So long,
Martin
Hallo Martin,
danke für die Antwort.
Auch dem anderen Poster.
natürlich, PHP versucht hier die Datei "reinmit.php?rubric=wasauchimmer" einzubinden, die nicht existiert, schon deshalb nicht existieren *kann*, weil das Fragezeichen in den meisten Dateisystemen kein erlaubtes Zeichen für Dateinamen ist.
Jetzt wo ich das lese, macht das auch alles Sinn.
Dazu gebracht, das anzunehmen, hat mich das ich Dateien mit Variablenanhang includen kann, wenn ich einen absoluten Pfad verwende.
Ist dann aber anscheinend kein "richtiger" include mehr sondern doch ein http-request?
Gruß Ron
Hallo Ron,
danke für die Antwort.
:-)
Dazu gebracht, das anzunehmen, hat mich das ich Dateien mit Variablenanhang includen kann, wenn ich einen absoluten Pfad verwende.
Ist dann aber anscheinend kein "richtiger" include mehr sondern doch ein http-request?
Stimmt genau. Man kann zwar auch in der include-Anweisung eine komplette URL mit http: vornedran angeben[*], aber wie du schon sagst, das ist dann ein ganz normaler HTTP-Request.
Das hat auch die Nebenwirkung, dass nicht der Quellcode des extern abgerufenen Scripts eingefügt wird, sondern die Ausgabe des Scripts. Das will man aber wahrscheinlich nicht.
Ciao,
Martin
[*] konfigurationsabhängig - dieses Feature kann deaktiviert sein.
Ich grüsse den Cosmos,
Das hat auch die Nebenwirkung, dass nicht der Quellcode des extern abgerufenen Scripts eingefügt wird, sondern die Ausgabe des Scripts. Das will man aber wahrscheinlich nicht.
So als Anwendung könnte man ja PHP-Code erzeugen. Würde z.B. einen Service ermöglichen, der zwar ein PHP-Script zum Einbinden zur Verfügung stellt, aber dennoch dynamische Werte enthalten kann. Für div. Onlineservices durchaus ne praktische sache, wie ich finde.
Möge das "Self" mit euch sein
Moin Ron!
Mit dem include-Befehl kopierst du den Code der angegebenen php-Datei an die Stelle, wo der include-Befehl steht. Es macht keinen Sinn irgendeine Variable anzuhängen...
Grüße
Christian