dati da tenere in sessione

Paperino78

Utente Attivo
30 Giu 2012
409
0
16
Milano
So che l'argomento è stato già discusso in lungo e in largo, ma non capisco dove sbaglio.
Nella pagina contatti che ho fatto ho un semplice form con inserimento dati, un controllo in php con relativo echo per gli errori, e successivamente metto in sessione i dati, che mi porto dietro durante il codice per l'invio mail.
Nel caso in cui l'utente dovesse mancare dei dati o fossero diversi dalle condizioni che pongo vorrei che i dati inseriti rimanessero in sessione nel form e che possa poi correggerli. Questo il codice:
PHP:
	if(!isset($_POST['richiesta']) && ($_POST['richiesta'] <= 3)){
			$ok_ko.="Testo assente o troppo corto.<br />";
			echo "<meta http-equiv='Refresh' content='2; URL=".htmlspecialchars($_SERVER['PHP_SELF'])."'>";}

	if(!empty($ok_ko)) {
			$visibilità = "visible";
			echo"<div style='visibility: ".$visibilità."'; class='ok_ko'>".$ok_ko."</div>";
		}
	$_SESSION['messaggio'] 	= 		$messaggio;

questo è il codice interessato, diciamo che ho anche un dubbio sulla condizione AND. Nel caso metta la condizione OR mi da sempre errore anche quando inserisco più di 4 caratteri, cosa che non accade con AND ovviamente. Come potrei migliorarlo?
Dimenticavo, nella pagina in questione al primo rigo ho messo session_start() naturalmente.

Grazie
 
Personalmente ritengo che sia errata la base.
Le variabili di sessione vanno utilizzate per definire informazioni legate, appunto, alla sessione e non relative alle pagine in cui navigo. Io solitamente le uso solo le informazioni dell'utente che si collega, delle sua preferenze di visualizzazione e dei suoi permessi.

Per quanto riguarda la parte PHP del tuo codice la cosa strana che noto è che controlli che $_POST['richiesta'] sia <=3 ma non la sua lunghezza. (controlla cosa passi in $_POST['richiesta'] e se può tornarti utile http://www.w3schools.com/php/func_string_strlen.asp)

Inoltre secondo me per le validazioni delle form ti conviene dare un occhiata a jQuery validator http://jqueryvalidation.org/
con questo semplice plugin puoi intercettare il post della form, verificare che sia tutto corretto e solo allora proseguire.
 
Per il discorso sessione vorrei che l'utente nel caso si dimenticasse dei dati e quindi avesse l'errore cliccando su indietro possa riavere i dati già inseriti senza doverli digitare nuovamente, per quanto riguarda il codice php per la verifica del testo diciamo che non è il massimo. D'altronde è una textarea quindi il testo è libero. Potrei controllare che non sia vuota nel caso. Quanto invece a jquery la validazione la faccio fare da HTML 5 con la voce required, potrei farlo anche diversamente ma al momento va bene così.

Volere è potere. Almeno penso...
 

Discussioni simili