Witam,
Chciałbym zapytać o Wasze zdanie na pewien problem
1) Wyjaśnienie problemu
2) Jaki sposób lepszy pod względem bezpieczeństwa
3) Jak wykonać przycisk wróć
ad. 1) Mam wykonać formularz który będzie zawierał wiele komórek do wypełnienia przez użytkownika. Dlatego chcę go podzielić na kilka mniejszych formularzy wyświetlających się jeden po drugim. Nie chcę używać ani cookies ani sesji, więc wszystko robię w jednym pliku - formularz.php, dołączając plik z klasą formularz_klasy.php który zajmuje się generowaniem odpowiednich stron formularza.
formularz.php
<html> . . <body> <?php include('formularz_klasy.php'); ?> </body> </html>
formularz_klasy.php
<?php <?php class form { function form($dane) { $this->data = $dane; // przekazanie tablicy $_POST do tablicy $this->data używanej wewnątrz klasy // jeśli zostały zapisane zmienne z obu czesci formularza to wyświetl strone trzecia { $this->DrawForm3(); } // jeśli została zapisana zmienna z pierwszej czesci formularza to wyswietl nastepna czesc $this->DrawForm2(); // jeśli nie wpisano jeszcze zadnej zmiennej to wyswietl pierwsza czesc formularza else $this->DrawForm1(); } function DrawForm1() { //formularz z pierwszej strony echo '<form action="formularz.php" method="post">' .'<table cellpadding="1" cellspacing="1">' .'<tr>' .'<td>Imie</td>' //ktorego celem jest pobranie danej 'imie' .'<td><input type="text" name="imie" value="'.$this->data['imie'].'"></td>' .'</tr>' .'<tr>' .'<td colspan = "2"><input type="submit" value="Wyślij"></td>' .'</tr>' .'</table>' .'</form>'; } function DrawForm2() { //formularz z drugiej strony echo '<form action="formularz.php" method="post">' .'<table cellpadding="1" cellspacing="1">' .'<tr>' .'<td>Nazwisko</td>' //ktorego celem jest pobranie danej 'nazwisko' ... .'<td><input type="text" name="nazwisko" value="'.$this->data['nazwisko'].'"></td>' .'</tr>' .'<tr>' .'<td colspan = "2"><input type="submit" value="Wyślij"></td>' .'</tr>' //...oraz zapamietanie danych z formularza z pierwszej strony( $_POST['imie'] ) .'<input type="hidden" name="nazwisko" value="'.$this->data['imie'].'">' .'</table>' .'</form>'; } function DrawForm3() { //wyswietlenie obu zmiennych .'</br>Odbiorca: '.$this->data['nazwisko']; } } $formularz = new form($_POST); ?>
ad. 2)
Na takiej zasadzie chciałbym wykonać całość. Chciałbym się dowiedzieć jaki jest wasz punkt widzenia, czy jest to zły sposób na akwizycję danych i dlaczego, czy lepiej wszystko wrzucić do jednego wora i cały formularz zawrzeć na jednej stronie, i w czym takie podejście jest lepsze od sposobu dzielonego. Szczególnie interesuje mnie abyście popatrzyli na oba sposoby pod kątem bezpieczeństwa.
ad. 3)
Jeżeli chodzi o sposób 'dzielony' to czy macie jakiś pomysł na wykonanie przycisku 'wróć do poprzedniej strony i popraw dane'
Czekam na uwagi i propozycje.
ps. Sorry że tak dużo do przetrawienia na jeden post, starałem się uprościc kod jak tylko moglem
ps2. to mój pierwszy post więc proszę o wyrozumiałość