Mailinglisten-Archive |
Christian Knorr wrote:
> Am Mittwoch 09 Juli 2008 17:54:29 schrieb Sebastian Mendel:
>>> Theoretisch schon. Aber dies war nur ein Beispiel. In Wirklichkeit wird
>>> meistens der value="" der Schaltfläche mit ausgewertet.
>> wo ist da der Unterschied? auch du müsstest du eigentlich erstmal prüfen ob
>> die Variable überhaupt existiert ... oder?
> Wie Du und andere wahrscheinlich auch schon bemerkt haben, bin ich noch nicht
> sehr fit in Sachen PHP. Dies ist meine erste Anwendung - ohne Lehre ;-)
> Deshalb bitte ich um Nachsicht wenn ich Blödsinn erzähle. Aber wenn ich doch
> die Taste <input name=\"cancel\" type=\"submit\" value=\"Zurück\"> drücke,
> und an entsprechender Stelle dies überprüfe mit
> if ( $_POST["cancel"] == "Zurück" ) {}
> Ist es dann nicht egal ob die Variable gesetzt ist oder nicht? Wenn sie nicht
> gesetzt ist, ist sie ja auch nicht "Zurück", und es passiert nichts was in
> der if Anweisung steht.
> Hab ich was falsch verstanden?
Teste mal folgendes Script:
---
error_reporting(E_ALL);
if ($ichExistiereNicht =="unsinn") ;
---
Um das kurz zu machen: Du wirst eine Fehlermeldung sehen. Nur eine
Notice, die php nicht dazu bringt abzubrechen... Aber immerhin.
Dass es diese Notice gibt ist auch durchaus sinnvoll, denn dadurch, dass
man auf Variabeln zugreift, die nicht existieren entstehen ganz schnell
mal neue "Features" in einem Script. Nicht der Zugriff auf eine
Variable, die nicht existiert grundsätzlich böse ist...
Aber es gibt ein paar andere dumme Sachen. Stell dir mal vor du
schreibst irgendwo
$sinnlos =1;
und irgendwo anders dann
if ($sinlos ==1)
Solche Fehler findest du dank der Notice sofort, wenn du mit
error_reporting(E_ALL) entwickelst. Aber ohne suchst du möglicherweise
sehr sehr lange.
In ganz ungünstigen Konstruktionen kann man sich so auch seine
Sicherheitslücken bauen etc.
Und natürlich ist es auch einfach übersichtlicher isset oder empty zu
verwenden: Du selbst oder ein anderer coder weiss dann beim lesen: Es
kann sein, dass die Variable nicht gesetzt ist und du bist dir bewusst,
dass dies passieren kann.
>
> Chris.......
Yannik
php::bar PHP Wiki - Listenarchive