mehrere Parameter
Andreas
- php
Hallo,
mal eine grundsätzliche Frage: worin liegt der Unterschied zwischen folgenden beiden Zeilen?
action=dloadrubrik&rubrik=Abfrage&cat=Access
action=dloadrubrik;rubrik=Abfrage;cat=Access
Gruß Andreas
Hallo,
mal eine grundsätzliche Frage: worin liegt der Unterschied zwischen folgenden beiden Zeilen?
action=dloadrubrik&rubrik=Abfrage&cat=Access
action=dloadrubrik;rubrik=Abfrage;cat=Access
Da sind einfach zwei verschiedene Trennzeichen.
Das "&" muss _in_HTML_ immer als & codiert werden.
Das ";" kann einfach so geschrieben werden, ist also
etwas "autorenfreundlicher".
Welche Trennzeichen vom verarbeitenden Skript erkannt werden,
muss mit der Variable arg_separator.input _ausserhalb_
des Skripts definiert werden, d.h. in der php.ini,
httpd.conf oder .htaccess
http://www.php.net/manual/en/function.ini-set.php
Name: arg_separator.input
Default: "&"
Changeable: PHP_INI_SYSTEM|PHP_INI_PERDIR
Gruesse,
Thomas
Hallo!
mal eine grundsätzliche Frage: worin liegt der Unterschied zwischen folgenden beiden Zeilen?
action=dloadrubrik&rubrik=Abfrage&cat=Access
action=dloadrubrik;rubrik=Abfrage;cat=Access
In der 1. Zeile kommen 2 "&" vor, in der 2. Zeile an Stelle dessen 2 ";".
Wenn das URL-Parameter sein sollen, dann rufe mit diesen Parametern mal ein Script auf in dem nur folgendes steht:
<?php
echo '<pre>';
print_r($_GET);
?>
Dann siehst Du vielleicht noch einen Unterschied.
Grüße
Andreas
Hallo,
<?php
echo '<pre>';
print_r($_GET);
?>
Also ist die erste Methode eine Trennung in 3 Parameter, und im 2. Fall 1 Parameter, der zusammengesetzt ist.
Dann weiß ich jetzt Bescheid.
Gruß und Danke,
Andreas
Hi!
Also ist die erste Methode eine Trennung in 3 Parameter, und im 2. Fall 1 Parameter, der zusammengesetzt ist.
Dann weiß ich jetzt Bescheid.
Normalerweise schon, aber wie Thomas richtig sagt lässt sich das mit entsprechenden Rechten auch ändern. Die erste Version ist aber sicher die gebräuchlichere.
Grüße
Andreas
Hallo,
Also ist die erste Methode eine Trennung in 3 Parameter, und im 2. Fall 1 Parameter, der zusammengesetzt ist.
Ich vermute, Du hast eine Variable
$_GET['action']
mit folgendem String als Inhalt:
"dloadrubrik;rubrik=Abfrage;cat=Access"
Das gilt aber nur fuer _diesen_ Server. Heute.
Auf einem anderen Server kann es sein, dass
der Admin auch das Semikolon ";" als Trennzeichen
zugelassen hat; dann haette auch dieser Link
blabla.php?action=dloadrubrik;rubrik=Abfrage;cat=Access
"drei Parameter", die dann in PHP wie folgt vorliegen:
$_GET['action'] mit dem Inhalt "dloadrubrik"
$_GET['rubrik'] mit dem Inhalt "Abfrage"
$_GET['cat'] mit dem Inhalt "Access"
Es kann auch sein, dass der Admin Deines Servers
das eines Tages aendert, dann ist es auch auf
Deinem Server so...
Gruesse,
Thomas
Danke für die Information.
Werde nur noch & verwenden, damit ich auf der sicheren Seite bin.
Gruß Andreas
Hallo,
Werde nur noch & verwenden, damit ich auf der sicheren Seite bin.
Auf der sicheren Seite bist Du damit, das stimmt.
Das "&" ist das "traditionelle" Trennzeichen,
und der Standard (Default) bei PHP.
Denk daran, in HTML alle & als & zu schreiben.
Alternativ koenntest Du auch in der .htaccess selbst
definieren, dass sowohl das "&" als auch das ";"
als Trennzeichen verarbeitet werden sollen:
php_flag arg_separator.input "&;"
So verstehe ich zumindest die Angaben auf diesen Seiten:
http://www.php.net/manual/en/configuration.directives.php
http://www.php.net/manual/en/function.ini-set.php
Fuer die Parameter, welche PHP automatisch anhaengt,
z.B. die PHPSESSID, sollte man - sofern man Wert auf
valides HTML legt und Probleme vermeiden will - festlegen,
dass PHP dort & ausgibt (statt dem defaultmaessigen &).
In der .htaccess:
php_flag arg_separator.output "&"
mfg
Thomas