Ja w swoim frameworku rozwiązałem to tak:
Mam klasę Request, jej składową prywatną jest tablica asoscjacyjna będąca suma tablic $_GET i $_POST. W każdej chwili mogę sprawdzić dowolną zmienną z tych tablic metodą getRequest, np.
<?php
//sprawdzamy, czy wcisnieto przycisk ' Zapisz zmiany ' formularza
if ( $Request->getRequest['submit_zapisz'] ) {
$imie = $request->getRequest['imie']; // odpowiada $imie = $_POST['imie'];
...itd...
}
?>
Dodatkowo w metodzie getRequest() oprócz parametru wprowadziłem walidację zmiennych i mogę sobie sprawdzać, czy np. przeslane POST-em pole formularza
to string o długości od 6 do 15 znaków (jeśli nie, to mamy błąd):
<?php
$imie = $request->getRequest('imie' , 'STRING' , 6 , 15 );
if (!$imie) {
echo Prosze poprawic blad w polu Imię
; }
?>
Dodatkową korzyścią jest fakt, że nie musze sprawdzać, czy np. 'imie' przesłane zostało GET-em czy POST-em.
Z kolei o sposobie postępowania z $_SESSION (na podobnej zasadzie , w moim frameworku mam do tego klasę Session ) napisałem na mojej stronie internetowej i tam możesz sobie zobaczyć, jak ja to rozwiązałem:
http://rafjan.pl/index.php?s=wp&id=1