Sessione che mantiene il nome

Ho messo questa sessione ma non funziona, cosa ho sbagliato? In pratica vorrei che quando il form viene rispedito indietro (perchè il campo non era compilato giusto) il campo mi mantenga ciò che era scritto prima dell'invio ma invece riappare vuoto

session_start();

$_SESSION['nome'] = $_POST['nome'];

inviato 10 anni fa
php
php
6
X 0 X

Quelle istruzioni sono sufficienti a memorizzare i dati inseriti dall'utente ma non permettono di mostrare nuovamente i dati precedentemente inseriti.

Nel form dovresti avere qualcosa del genere:

<input name="nome_campo" value="<?php echo htmlspecialchars($_SESSION['nome'])?>" type="text">

Alla prima visualizzazione del form però $_SESSION['nome'] sarebbe inesistente e questo genererebbe un NOTICE, per cui potresti inizializzare $_SESSION['nome'] = ""; ma solo alla prima visualizzazione, altrimenti ogni volta cancelli il contenuto!!!

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
modificato 10 anni fa
X 0 X

Ho messo cosi ma non mantiene niente neanche la prima volta

<input class="nomiGuest" name="nome" value="<?php echo htmlspecialchars($_SESSION['nome'])?>" size="30"  type="text" maxlength="15" onblur="this.value=this.value.replace(/\s*$|^\s*/,'')" />  <!-- E' il Trim di js (onblur rimuove subito in modo visibile spazi prima e alla fine)  -->
risposto 10 anni fa
php
php
6
modificato 10 anni fa
X 0 X

Ora sembra funzionare al ritorno mantiene i dati

<..value="<?php echo htmlspecialchars($_SESSION['nome'])?>..>

se invece metto  $SESSION['nome']="" al ritorno il campo è vuoto.

Poi, ho notato che se aggiorno la pag con F5 nel campo appare un vecchio valore, cioè non rimane vuoto, ma questo solo se aggiorno la pagina.

Cos'è il NOTICE?

risposto 10 anni fa
php
php
6
X 0 X

Un errore di tipo E_NOTICE è il meno grave degli errori che PHP può segnalare

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Un errore di tipo E_NOTICE è il meno grave degli errori che PHP può segnalare

 :bye:

Ah, non mi esce quell'errore

risposto 10 anni fa
php
php
6
X 0 X

Probabilmente perché la tua configurazione di PHP li disabilita. Comunque è buona norma scrivere codice "NOTICE free".

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Probabilmente perché la tua configurazione di PHP li disabilita. Comunque è buona norma scrivere codice "NOTICE free".

 :bye:

Cos'è? dove lo scrivo? Cosa avviene scrivendolo, fammi un'esempio   :wallbash:

risposto 10 anni fa
php
php
6
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda