PHP-Datei Ausführen - Frage

Ok, vielen Dank.

Ich habe deinen PHP-Code eben ausprobiert aber das PHP-Skript funkioniert dann nicht mehr richtig. Also das Formular wird glaube ich nicht verarbeitet.

Wo muss ich diesen PHP-Code einbauen? Um das ganze Skript herum?

PHP:
if( isset($_POST['do']) && $_POST['do'] == 'ok' ){
  echo 'Dein Username ist '.$_POST['user'];
}
 
Aha... Ich sehe gerade folgendes in der ersten Zeile in meinem PHP-Skript:
PHP:
if (isset($_GET['do']) && $_GET['do'] == "ok") {

Hab es jetzt in:
PHP:
if( isset($_POST['do']) && $_POST['do'] == 'ok' ) {
geändert und es funktioniert.

Hätte da noch zwei Fragen zu:

1. Frage:
Vorher war es möglich die Seite mit "?do=ok" auszurufen. Es wurde dann aber immer Fehler angezeigt.
Das ist jetzt nicht mehr möglich? Wenn ja: Ist das doch besser oder?

2. Frage:
Ist diese Methode zum Ausführen des PHP-Skriptes besser/sicherer als die mit:
PHP:
if (isset($_GET['do']) && $_GET['do'] == "ok") {
?
 
1. Frage, ich denke es ist allgemein besser als Fehler auszugeben, bzw. Fehler wie mysql_error.. natürlich sollte der User schon eine Meldung bekommen was schief gegangen ist.

2. Sicher ist relative ;)
Du kannst jetzt nicht mehr über den browser die Seite mittles do=ok aufrufen
allerdings könnte ich es trotzdem mit firebug aufrufen...

Ob da jetzt von der Sicherheit viel unterschied ist ist fraglich.


lg
 
1) Ob du das besser findest bleibt dir überlassen ;)
2) Hmm, ich denke mal das $_POST Daten für den Laien schwerer zu manipulieren sind als $_GET Daten.
 
Stimmt man kann es mit "?do=ok" immer noch aufrufen aber nicht ausführen. Ich habe mal "?do=lol" hinter dran gehängt und die Seite wird immer noch aufgerufen? Sollte da nicht ein Fehler kommen?

Vorher konnte man das Skript mit "?do=ok" aufrufen und es wurde dann direkt auch ausgeführt und es kamen die Fehler die ich eingebaut habe wie z.B. "Füllen Sie das Feld "Nickname" aus".
 
Es gibt 2 Wege ein Formular zu verarbeiten:
GET:
Alle Felder werden hinter die URL gekloppt (?feld1=wert1&feld2=wert2...) logischer Weise kann man so ein Absenden des Formulars simulieren (bzw Werte über einen Link weiter geben)
POST:
Die Felder werden nicht über die URL übergeben, was es einem auch erlaubt größere Datenmengen zu transportieren.

Argument Übertragung
 
Das weiss ich schon timestamp. :)

Die Sache ist das mein PHP-Skript und das Formular alles in einer Datei steht. Warum funktioniert das "?do=ok" immer noch und wie kann ich das abstellen?

Wenn man es nicht abstellen kann:
Was kann ich machen damit z.B. "?do=timestamp" nicht funktioniert? Die Seite sollte dann erst gar nicht geladen werden.
 
Also, ich kann doch auch hier im forum ein ?do=hallo an die URL anhängen und es passiert nichts,
da verstehe ich dein Problem nicht..

aber du könntest einfach überprüfen ob isset($_GET['do']) und es dann so machen wie du es willst.. weiter, ich denke mir wenn sich bei $_GET['do'] nichts mehr tut dann ist es auch egal ob wer etwas an die URL hängt
 
Zurück