Stworzyłem przed chwilą szkielet skryptu obsługi kilkustronicowego formularza.
Prosiłbym, żebyście przyjżeli się kodowi i sprawdzili czy jest on logicznie poprawny i czy nie zawiera błędów:
<?
//
// Rejestracja nowego uzytkownika
//
require 'includes/class_quick.php';
$quick = new quick;
// jeśli zalogowany
if($_SESSION['log']) {
header(\"Location: index.php\"); }
if(!$_POST['reg_page']) {
//wyświetl regulamin
$quick->smarty->assign(\"reg_page\",\"1\");
$quick->smarty->display('../templates/register_reg.tpl');
}
else if($_POST['reg_page']==1) {
//wyświetl formularz rejestracyjny
$quick->smarty->assign(\"reg_page\",\"2\");
$quick->smarty->display('../templates/register_form.tpl');
}
else if($_POST['reg_page']==2) {
//procedury sprawdzenia danych
//jęsli dane są poprawne
//wyśqietl potwierdzenie wprowadzonych danych
$quick->smarty->assign(\"reg_page\",\"3\");
$quick->smarty->display('../templates/register_confirm.tpl');
// jeśli dane nie są poprawne
//wróć do formularza
$quick->smarty->assign(\"reg_page\",\"2\");
$quick->smarty->display('../templates/register_form.tpl');
}
else {
//jeśli dane wymagane (login, hasło, confirm, email) zostały podane
//utworzenie nowego użytkownika w bazie danych
//INSERT INTO ...
//wyświetl podziękowania
$quick->smarty->assign(\"info\",\"Dziękujemy za rejestrację, za chwile zostaniesz przeniesiony do strony logo
w
nia.\");
$quick->smarty->display('../templates/register_confirm.tpl');
unset($_POST['reg_page'])
//jeśli nie wróć do formularza
$quick->smarty->assign(\"reg_page\",\"2\");
$quick->smarty->display('../templates/register_form.tpl');
}
?>
Mam też kilka pytań:
- W jaki sposób zabrać się do sprawdzania poprawności danych?
Myślałem o funkcachi sprawdzających każde pole z osobna (czy jest liczbą, czy jest e-mailem, itp.) i zwracających prawdę lub fałsz. Potem bym sprawdzał tylko czy wszędzie jest true. Jeśli byłoby false wtedy wracałoby do formularza i wyświetlała nad nim informacje o niepoprawnych danych.