Mit GET übergebene Variable nicht erkannt
Volker
- php
0 Tom1 Vinzenz Mai0 Volker
0 hotti
Themenbereich PHP und/oder SSI
Hallo,
In der Variante
test.shtml:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body>
<?php
print ("Ergebnis: ");
print_r($_GET);
?>
</body>
</html>
wird als Ergebnis angezeigt:
Ergebnis: Array([aa]=>xx).
In der Varinate
inhalt.shtml:
<?php
print ("Ergebnis: ");
print_r($_GET);
?>
test.shtml:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
</head>
<body>
<!--#include virtual="/inhalt.shtml" -->
</body>
</html>
wird als Ergebnis angezeigt:
Ergebnis: Array([aa]=>xx),
die Variable also nicht erkannt.
Woran kann dies liegen?
Hello,
könntest Du Scripte (Ressourcen), Requests und Responses bitte nochmal sortieren?
Im Moment verstehe ich nur Bahnhof.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Im Moment verstehe ich nur Bahnhof.
Es ist nach 19h00 ich kann Dich "auf meinem Ticket" mitfahren lassen...
off:PP
Hello,
Hi!
Im Moment verstehe ich nur Bahnhof.
Es ist nach 19h00 ich kann Dich "auf meinem Ticket" mitfahren lassen...
Und wie könnten wir den OP einsammeln? Oder ist das für mich sowieso zu spät dafür?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hi!
Im Moment verstehe ich nur Bahnhof.
Es ist nach 19h00 ich kann Dich "auf meinem Ticket" mitfahren lassen...
Und wie könnten wir den OP einsammeln? Oder ist das für mich sowieso zu spät dafür?
Ich kann zwischen 19h00 und 7h00 zwei Leute kostenlos mitnehmen - OP müßte sich dazu allerdings *erklären*.
off:PP
Hallo,
ich wüsste keine bessere Sortierung, nur vielleicht eine Zusammenfassung:
Wenn das php-Skript in der Datei steht, erkennt es eine mit "GET" übergebene Variable, wenn das gleiche php-Skript mit SSI-include eingefügt wird, dann nicht.
Gruß
Volker
Hello,
ich wüsste keine bessere Sortierung, nur vielleicht eine Zusammenfassung:
Wenn das php-Skript in der Datei steht, erkennt es eine mit "GET" übergebene Variable, wenn das gleiche php-Skript mit SSI-include eingefügt wird, dann nicht.
Wenn ich Dich jetzt richtig verstehe, dann meinst Du die Priorität der Handler.
1=PHP
2=SSI
PHP wird auf http getriggert und ausgeführt, wenn die Endung '.shtml' in der Liste der zu parsenden Dateien liegt
Anschließend wird der SSI-Parser ausgeführt. Dann ist der PHP-Parser aber schon fertig.
Ob die Priorität einstellbar ist, kann ich Dir auch nicht aus dem Handgelenk beantworten.
Aber Du könntest es mit der Option 'exec' versuchen. Dazu müsstest Du den PHP-Interpreter mir exec aufrufen und ihm den Namen des Scriptes übergeben. Dann wird das externe Programm (PHP) ausgeführt und dessen Ausgabe an der Aufrufstelle in die Standardausgabe geschrieben.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
Wenn das php-Skript in der Datei steht, erkennt es eine mit "GET" übergebene Variable, wenn das gleiche php-Skript mit SSI-include eingefügt wird, dann nicht.
Ich habe eben selber nochmal nachgelesen und erkläre es mir so:
Wenn Du die PHP-Anweisungen direkt in die Datei schreibst, werden sie innerhalb desselben Environmentes ausgeführt. Die Aufrufparameter stehen daher zur Verfügung.
Wenn Du den PHP-Aufruf per include oder exec (müsste sich mMn genauso verhalten) durchführst, wird eine neue Shell eröffnet, in der das Script ausgeführt wird. Diese erbt aber nicht automatisch das Environment der äußeren Shell. Du müsstest also vermutlich die Umgebungsvariablen (Aufrufparameter) mit übergeben beim Aufruf.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hallo,
In der Variante
test.shtml:
[...]
wird als Ergebnis angezeigt:
Ergebnis: Array([aa]=>xx).
In der Varinate
inhalt.shtml:
[...]
wird als Ergebnis angezeigt:
Ergebnis: Array([aa]=>xx),
also das gleiche Ergebnis.
die Variable also nicht erkannt.
Da ich keinen Unterschied beim Ergebnis sehe, kann ich Deine Aussage nicht nachvollziehen. Ich vermute, Tom und Peter Pan gings nicht anders.
Freundliche Grüße
Vinzenz
Hallo,
also das gleiche Ergebnis.
Du hast Recht, im zweiten Falle musste es heißen: Array ()
Immer dieses gedankenlose Cut-and-paste!
Gruß
Volker
Themenbereich PHP und/oder SSI
In SSI werden die Umgebungs-Variablen (QUERY_STRING ist eine Solche) anders adressiert. Du hast da wahrscheinlich nur eine Referenz bekommen und nicht den Inhalt. In Perl sieht das so aus:
# CGI
$ENV{QUERY_STRING}
# SSI
$QUERY_STRING
Und ich behaupte mal ganz kühn, dass es in PHP ganz ähnlich ist ;)
Btw.; ein ARRAY entsteht, wenn es mehrere GET-Parameter mit gleichem Namen gibt.
Hotti
Hi,
[PHP]
Btw.; ein ARRAY entsteht, wenn es mehrere GET-Parameter mit gleichem Namen gibt.
Das mag bei perl/CGI.pm so sein, ist aber bei PHP nicht so.
Ein Array entsteht, wenn im Namen des Parameters Paare eckiger Klammern vorkommen (Ggf. in den Klammern enthaltene Zeichen werden als Index genommen). Gleichnamige Parameter ohne eckige Klammern überschreiben sich (bzw. "spätere" überschreiben "frühere").
Bis die Tage,
Matti
Hi,
[PHP]
Btw.; ein ARRAY entsteht, wenn es mehrere GET-Parameter mit gleichem Namen gibt.Das mag bei perl/CGI.pm so sein, ist aber bei PHP nicht so.
Kein Wunder, dass so manche Rewrite-Rule mit [QSA] nicht tut.
Hotti
Hello,
[PHP]
Btw.; ein ARRAY entsteht, wenn es mehrere GET-Parameter mit gleichem Namen gibt.Das mag bei perl/CGI.pm so sein, ist aber bei PHP nicht so.
Kein Wunder, dass so manche Rewrite-Rule mit [QSA] nicht tut.
Wer in seinen Benziner Dieselkraftstoff einfüllt, muss sich auch nicht wundern, wenn der nicht tut.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
hi Tom,
Wer in seinen Benziner Dieselkraftstoff einfüllt, muss sich auch nicht wundern, wenn der nicht tut.
Kommt aufs Mischungsverhältnis an. Mein alter Kadett hat es mit einem (versehentlich getankten) Benzin/Diesel-Gemisch sogar über 5 Alpenpässe geschafft (vollbeladen). Allerdings hat sich beim Pierburg-Vergaser die ganze Verschraubung gelöst (aufgeweichte Dichtungen), aber den musste ich sowieso aus einem noch anderen Grund mal wieder auseinanderbauen, als wir in Österreich angekommen sind ;-)
Zum Thema: Die PHP-eigenwillige Interpretation der HTTP-RFCs ist für mich einer der Gründe, in Sachen PHP nichts mehr zu machen. Perl, CGI.pm, fertig.
Hotti