Newsgroup: it.comp.www.php
Titolo: casi strani

Passo i dati da un form ad un file php di elaborazione dati, ma faccio in
modo che quest'ultimo, nel caso il form non sia stato compilato in tutti
suoi campi, rimandi tramite un link al form stesso, visualizzando nella
stessa pagina del link una serie di echo che specificano quali campi non
sono stati compilati:
$errore=false;
if ($f_nome =""){
$errore=true;
echo "Devi inserire il nome<BR>";
}
if ($f_indirizzo=""){
$errore=true;
echo "Devi inserire l'indirizzo<BR>";
}
if ($f_citta =""){
$errore=true;
echo "Devi inserire la città<BR>";
}
if ($errore) {
# protect_it() è una funzione che ho creato appositamenteper ricodificare la
strimnga di interrogazione prima di essere rinviata al
# form
$f_nome = protect_it($f_nome);
$f_indirizzo = protect_it($f_indirizzo);
$f_citta = protect_it($f_citta);
echo "<BR><A
HREF=\"insert_per.php?f_nome=$f_nome&f_indirizzo=$f_indirizzo&f_citta=$f_cit
ta
\">Indietro</A>";
exit;
}
Purtroppo però questo codice sembra non funzionare, infatti se compilo un
solo campo, $errore non va su true, perchè si comporta così? E' corretto
scrivere if ($nome_variabile == "") per verificare se il campo è vuoto?
P.s: so che non si fa più ma per semplificare le cose ho impostato le
register_globals su On
ciao
Dan

 scrivere if ($nome_variabile == "")
GIUSTO!
;) ste

 schrieb im Newsbeitrag news:v_J5b.82691$sj6.1...@tornado.fastwebnet.it...


> > scrivere if ($nome_variabile == "")
Grazie ste, sapevo benissimo che un solo uguale č un'assegnazione mentre due
uguali sono una eguaglianza, non ho mai commesso un errore cosě stupido, č
che questo č un periodaccio ed ho la testa altrove.
Grazie ancora per avermi fatto recuperare il senno.
Ciao
Dan

O meglio ancora if (empty($nome_var)) { ... }
Grazie mille! In effetti la sapevo, ho scritto il codice senza
pensare...scusate la fesseria
E grazie ancora
Dan

sono stati compilati:
Potresti usarlo con un ciclo, cosi' se aggiungi o togli campi non rischi
che succedano cose strane. E non ti serve register_globals :-)
	error_reporting(E_ALL);
	$campi	= array(
		'f_nome'	=> 'nome',
		'f_indirizzo'	=> 'indirizzo',
		'f_citta'	=> 'citt&agrave;',
	);
	$errore		= 0;
	$msg_errore	= '';
	$separatore	= '';
	$link		= 'insert_per.php';
	$token		= '?';
	// Esamina l'input
	foreach($campi as $campo => $dati)
	{
		list ($messaggio) = explode('|', $dati);
		if (!isset($_REQUEST[$campo]))
			${$campo} = '';
		else
			${$campo} = protect_it($_REQUEST[$campo]);
		if ('' == ${$campo})
		{
			// Perfeziona il messaggio di errore
			$errore++;
			$msg_errore .= $separatore . $messaggio;
			$separatore = ', ';
		}
		// Costruisce l'URL
		$link .= $token . $campo . '=' . ${$campo};
		$token = '&';
	}
	// Decide cosa fare, sulla base dello stato di errore
	switch($errore)
	{
		case 0:
			break;
		case 1:
			$msg_errore = "Il campo <b>$msg_errore</b>
&egrave; obbligatorio.";
			break;
		default:
			$msg_errore = "Questi $errore campi sono
obbligatori: <b>$msg_errore</b>.";
			break;
	}
	if ($errore)
	{
		print <<< ERRORE
$msg_errore
<A HREF="$link">correggi</A>
ERRORE;
		exit();
	}
Leonardo
-- 
Time's angles, mages tell, conceal a place
incredible, beyond the mundane mind;
night-shrouded and between the seas of space
dread creatures drift in the ageless winds.

 ha scritto nel messaggio
news:CpO5b.292567$lK4.9...@twister1.libero.it...

Tranquillo immaginavo, poi piů che errori sono semplici sviste di chi ormai
scrive script a go go, credo che sviste del genere siano capitate a tutti in
una forma o nell'altra.
ciao,
stefano