Grüße,
Und wohin geht der Request mit deinem leeren Action Attribut im Falle eines Submit?
das wird langsam seltsam, - der reuest wird an den document gesendet, in den die form eingebunden ist.
wtf? kannst du nich teinen klartext satz rausdrücken?
'action="<?php echo $PHP_SELF; ?>"' ne 'action=""'
In $PHP_SELF ergibt den relativen Pfad zum Serverpfad.
Die information im action Attribut ist somit mangelhaft, und braucht entweder die originale url im Browser. oder eine Angabe über <base href=""> um verlässlich zum Ziel zu führen.
nehmen wir an, server root ist 'file:///C:'
nehmen wir an $PHP_SELF = '/php/my.php/'
nehmen wir an, die originale Serveradresse ist 'http://example.com'
original
action = '' => 'http://example.com/php/my.php/'
action mit phpself => 'http://example.com/php/my.php/'
ok hier ist alles identisch.
lokal
aktion = '' => 'file:///C:'
action mit php => file:///C:/php/my.php/'
Hier zeigen beide auf verschiedene Ziele.
Gut das ist ein akkademischer Unterschied.
Aber es gilt, das ein Unterschied besteht.
Um eine Funktionssicherheit zu gewähren finde ich es gut, entweder <base href=""> zu verwenden, oder dann im action eine absolute Adresse zu notieren.
meiner erfahrung nach funktionieren form mit leere action so wie cih es oben 2 mal beschrieben habe.
Positiv funktionieren sie identisch, negativ funktionieren sie nicht auf gleiche Weise.
ein formular mit leerem action wird an den document in dem er eingebunden ist gesendet.
An die url, die das Formular erfolgreich abgeliefert hat.
Stell dir aber folgenden Vorgang vor
ein php script wird aufgerufen.
Dieses schreibt ein Formular in eine Datei auf dem Server
Und sendet einen Location header, um die Url der Datei mitzuteilen, welche das Formular enthält.
Spätestens hier dürfte dann deutlich werden dass ein Unterschied in action besteht. Denn das Formular zeigt nun bei action="" nicht mehr auf das php script.
Praktisch halte ich sowohl die Methode mit relativen Pfaden in action für ungesund. Eine absolute Adresse ist vorzuziehen.
mfg Beat