phpbar.de logo

Mailinglisten-Archive

AW: [php] Kombination von GET / POST erlaubt?

AW: [php] Kombination von GET / POST erlaubt?

Andreas Müller php at universalware.de
Die Aug 5 22:35:12 CEST 2003


Hallo Arne,

> genau so mache ich das, und bisher hat mich das noch nicht vor Probleme
> gestellt. Ich muss doch sowieso nach der REQUEST_METHOD verzweigen, je
> nachdem, ob ich ein leeres (bzw. mit DB-Daten vorausgefülltes) Formular
> zeigen oder die Userdaten verarbeiten soll.

sicher muss man unterscheiden was der letzte Aufruf war, aber doch nicht in
der Art _woher_ ich Daten lese. Das ist für mich der springende Punkt. Wenn
ich weiss das mein Key aus dem Get kommt dann kann ich das einfach immer aus
dem GET lesen, die Daten dann aus dem POST ... falls es ein POST war z.B.

if (isset($_GET['id'])) {
  $id=$_GET['id'];
} else {
  $id=0;
}

if ($_SERVER['REQUEST_METHOD']=='POST') {
  // Daten aus $_POST holen

  // Verarbeiten

  if ($id>0) {
    // Update
  } else {
    // Insert
  }

} else {
  if ($id>0) {
    // Daten mit der ID von ob aus DB lesen
  } else {
    // Leere Daten initialisieren, Vorgabewerte etc.
  }
}

Sowas finde ist recht sauber strukturiert. Und ich muss meine Datenquellen
nie unterscheiden woher sie komen.

> Wieso, ich will doch keine Seite bookmarken, die mir sagt, dass ich
> einen Fehler gemacht habe?!? Wenn man allerdings auf eine Bestätigung
> für einen erfolgreichen POST verzichten will und sofort wieder in die
> Ansicht wechseln möchte, hast Du natürlich recht. Solche
> (Nicht-)Formularbestätigungen mag ich aber nicht, da sie bei Reloads
> schnell ins Chaos führen.

Aber vielleicht willst du dir das Formular bookmarken, oder eine Mail an den
Support schicken das du damit nicht klarkommst oder oder oder ... ich finde
es immer gut wenn sich an der originalen Aufruf URL nichts ändert.
Und die Verarbeitung sieht ganz einfach so aus:
- Formular per GET aufrufen
- Daten eingeben
- Abschicken
- gleiches PHP File wird wieder geladen
- Verarbeitung der Daten
- im Erfolgsfall auf eine Bestätigungsseite redirecten
- im Fehlerfall die Fehler auf der Seite ausgeben (Inputs markieren o.ä.)
... damit also Quasi auf der Seite bleiben
- weiter bei Schritt 2

So das war nur mal als Info wie ich sowas mache ;-)

Gruß,
Andreas


php::bar PHP Wiki   -   Listenarchive