Formulare - Punkt "action" definieren

Grawapple

Uelzener Rambour
Registriert
13.05.06
Beiträge
373
Moinsen ihr lieben Leut,

hoffentlich kann mir jemand von euch helfen...

Also ich habe eine formular.php Datei, die z.B. so aussieht:

*****************************************************************

<form method="POST" action="index.php?screen=preview&action=insertIntoSession">
<input type="text" name="name" />
<input type="text" name="vorname" />
<input type="submit" name="submit" value="Vorschau"
</form>

*****************************************************************

Dann die index.php-Datei sieht etwa so aus:

*****************************************************************

<?php

if($_GET['screen'] == 'preview')
{ include 'sites/preview.php'; }

if($_GET['action'] == 'insertIntoSession')
{
$_SESSION['name'] = $_POST['name'];
$_SESSION['vorname'] = $_POST['vorname'];
}

?>

Stimmt das so? wenn nicht...was muss ich ändern??

MFG Yatekii
 

Grawapple

Uelzener Rambour
Registriert
13.05.06
Beiträge
373
:D jap hab ich mir schon gedacht :D aber:

Wenn ich bei METHOD "GET" reinschreibe...funktioniert dann auch:

$_SESSION['name'] = $_POST['name'];
$_SESSION['vorname'] = $_POST['vorname'];

?
 

Samsas Traum

Pommerscher Krummstiel
Registriert
24.04.08
Beiträge
3.025
Nein, denn müssen die $_POST auch in $_GET umgewandelt werden.
Ich empfele alles auf POST umschreiben!
 

Maluku

Finkenwerder Herbstprinz
Registriert
10.05.08
Beiträge
464
Nur zu deiner Information, nicht persönlich, böse oder als Oberlehrer gemeint:

Wichtige Unterschiede zwischen POST und GET:
POST kann mehr Nutzdaten als GET
POST sieht man nicht in der URL
Bei POST fragt der Browser nach, ob er erneut senden soll, bei aktualisieren oder Vorwärts/Rückwärts
GET darf von einem Proxyserver gecacht werden, POST nicht.

Also:
POST bei anfragen die etwas ändern am Server (löschen, Beitrag "post"en, text ändern)
GET bei sachen die nichts am Server ändern (Beiträge anzeigen, Suchen, Untermenü anzeigen)

Code:
<form method="POST" action="index.php?screen=preview&action=insertInto  Session">
Das ist nun gar nicht gut.... POST und GET gemischt, hat man nachher nur Probleme mit, was denn wenn es noch ein input-field namens screen oder action gäbe, welche Variable zählt dann. (Das macht jede Programmiersprache anders)
Außerdem:"insertInto Session" ganz böse... "insertInto%20Session" muss da stehen, wenn überhaupt.
Code:
<form method="POST" action="index.php">
<input type="hidden" name="action" value="insertInto  Session">
<input type="hidden" name="screen" value="preview">
Wäre da besser.