Newsgroup: it.comp.www.php
Titolo: PHP validare form

Vorrei evitare di usare javascript per validare i form sul sito che sto
realizzando, ma con PHP la cosa non mi risulta tanto semplice, vi espongo
i punti dove ho difficoltà:
- Come fare per far rimanere scritte le entries che scompaiono non appena
si schiaccia su "invia" (in caso l'utente commetta un errore non vorrei
doverlo costrngere a riscrivere tutte le volte)?
- Vorrei che, in prossimità di un errore, il label corrispondente diventi
rosso con un asterisco. Il problema non è come farlo (css), ma siccome la
pagina che invia e che elabora i dati è la stessa, avevo intenzione di
fare un include della stessa pagina per poi mettere le value corrette
(risparmiando all'utente l'onere di riscrvere) e segnalare gli errori:
così era semplice,ma non si può includere la stessa pagina.
Il problema più che altro è il concetto, se qualcuno volesse gentilmente
illustrarmi come posso fare per validare SOLO ed ESCLUSVAMENTE con PHP, mi
farebbe un enorme favore.
Grazie mille e scusate per eventuali idiozie scritte.
Teo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 diventi rosso con un asterisco. 
Proof of concept mediamente strutturato. Esistono vari framkework e
classi per la validazione di form.
<?php 
$total_error = false;
$errors = array ();
if (!isset ($_POST['IDAction'])) {
	$errors['field1'] = false;
	$errors['field2'] = false;
	$errors['field3'] = false;
} else {
	$errors['field1'] = !isset ($_POST['field1']) || empty
($_POST['field1']) ? true : false;
	$errors['field2'] = !isset ($_POST['field2']) || !is_string
($_POST['field2']) ? true : false;
	$errors['field3'] = !isset ($_POST['field3']) || !is_numeric
($_POST['field3']) ? true : false;
	$total_error = false;
	foreach ($errors as $error) {
		$total_error = $total_error || $error;
	}
}
print_r ($_POST);
print_r ($errors);
if ((isset ($_POST['IDAction']) && ($total_error == true)) || !isset
($_POST['IDAction'])) {
?> 
<form action="<?php print ($_SERVER['PHP_SELF']); ?>" method="post">
<?php if (isset ($errors['field1']) && ($errors['field1'] === true)) {
?>
<span style="color: #FF0000;">* Insert field 1 (must be):</span>
<?php } else { ?>
Insert field 1 (must be):
<?php } ?>
<input type="text" name="field1" value="<?php print (isset
($_POST['field1']) ? $_POST['field1'] : ''); ?>" />
<br />
<?php if (isset ($errors['field2']) && ($errors['field2'] === true)) {
?>
<span style="color: #FF0000;">* Insert field 2 (string):</span>
<?php } else { ?>
Insert field 2 (string):
<?php } ?>
<input type="text" name="field2" value="<?php print (isset
($_POST['field2']) ? $_POST['field2'] : ''); ?>" />
<br />
<?php if (isset ($errors['field3']) && ($errors['field3'] === true)) {
?>
<span style="color: #FF0000;">* Insert field 3 (numeric):</span>
<?php } else { ?>
Insert field 3 (numeric):
<?php } ?>
<input type="text" name="field3" value="<?php print (isset
($_POST['field3']) ? $_POST['field3'] : ''); ?>" />
<br />
<input type="submit" />
<input type="hidden" name="IDAction" value="1" />
</form>
<?php 
} elseif (isset ($_POST['IDAction'])) { 
	// effettua il salvataggio
	print ('Saving');
}
?>
-- 
I am what I am, I do what I can
L'uomo, conscio di sbagliare, persevera.


Ciao,
se ti interessa approfondire l'argomento anche dal punto di vista OOP puoi
dare una letta a questa serie di articoli
http://freephp.html.it/articoli/view_articolo.asp?id=139
http://freephp.html.it/articoli/view_articolo.asp?id=141
http://freephp.html.it/articoli/view_articolo.asp?id=142
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/