Witam
Dopiero co raczkuje w PHP, na początek chciałem stworzyć skrypt walidujący prosty formularz.
Dane przekazywane są z formularza w postaci dwóch tablic: required i optional.
Mój problem polega na tym że po zatwierdzeniu formularza, wypełnione pola stają się na nowo puste,
a staram się wymusić żeby tak nie było.
Wszystko znajduje się w jednym pliku:
skrypt:
<?php
$a_req = (array) $_POST['required']; //$a_opt = (array) $_POST['optional'];
array_validate($a_req);
/*
Przeprowadza walidację danych z tablicy.
Wykonując kolejne funkcje pomocnicze, gdy poprzednia zakończy swoje
działanie z powodzeniem.
@param $array - tablica z wartościami do walidacji
@return true - jeśli całe sprawdzanie zakończyło się powodzeniem.
*/
function array_validate($array) {
if (array_empty_val($array)) {
echo 'Nie wszystkie pola są wypełnione!<br />'; return false;
}
return true;
}
/*Usuwa z przekazanej zmiennej znaki mogące zniszczyć
strukturę strony itd. Dodatkowo dodając znak ucieczki w przypadku
nie dokonania tego automatycznie.
@param $value - wartość do sprawdzenia
*/
function disable_danger_chars(&$value) {
}
/*Sprawdza obecność pustych pól w tabeli.
W zależności od stanu pola ustala wartość w tabeli zmiennych sesyjnych
przy pomocy indeksu tego pola.
@return TRUE jeśli występują puste pola w tabeli
*/
function array_empty_val(&$array) {
$has_empty = FALSE;
foreach ($array as $key => &$value) {
$_SESSION[$key] = FALSE;
$has_empty = TRUE;
$a_empty_vals[] = $key;
} else $_SESSION[$key] = TRUE;
}
return $has_empty;
}
/*
Funkcja operująca na tablicy, przygotowana do przekazania funkcji array_walk().
*/
function show_array_value($value, $key) {
echo $key.'=>\''.$value.'\'<br />'; }
function html_warn_msg($value) {
static $msg = "<tr><td colspan=2 align=center><b>Powyższe pole jest wymagane</b></td></tr>"; }
function show_val_by_key($key, $flag=TRUE) {
if ($flag) {
}
// else to samo w przypadku tabeli optional.
}
?>
formularz html:
<form id="register_frm" action="" method="post"> <td><input type="text" name="required[login]" id="login" maxlength="50" value="<?php show_val_by_key('login') ?>"/>
</td> <?php html_warn_msg('login') ?>
<td><input type="password" name="required[pass]" id="pass" maxlength="50" /></td> <td><input type="password" name="required[pass2]" id="pass2" maxlength="50"/></td> <td><input type="text" name="required[email]" id="email" maxlength="50"/></td> <td><input type="text" name="required[email2]" id="email2" maxlength="50"/></td> <td><input type="text" name="required[name]" id="name" maxlength="50" value="<?php show_val_by_key('name') ?>"/>
</td> <?php html_warn_msg('name') ?>
<td><input type="text" name="required[surname]" id="surname" maxlength="50" value="<?php show_val_by_key('surname') ?>"/>
</td> <?php html_warn_msg('surname') ?>
<!-- inne pola -->
<td colspan="2" align="left"><input type="reset" name="reset_btn" value="Wyczyść"/></td> <td colspan="2" align="right"><input type="submit" id="submit_btn" value="Rejestruj"/></td>
Proszę o porady.