Persistenza dei dati di un form

Sto tentando di mettere il codice in modo che se dopo l'invio dei dati form esce l'alert e la pag viene rimandata al form, i dati precedentemente inseriti rimangono.

Questo è il form

<form method="POST" action="ins.php" name="mioform" onSubmit="return controlla()">

            <tr>

            <td><font size="2"><b>NOME:</font><font size="2" color="red">&nbsp;*</b></font>

                  </td>

            <td><input name="nome" size="30"  type="text" maxlength="30" style="border:1px solid"

                  onblur="this.value=this.value.replace(/^\s*/,'')"</td>

          </tr>

          <tr>

            <td><font size="2"><b>EMAIL:</b><font color="#008080"></font></td>

            <td><input name="email" size="30" type="text" maxlength="30" onBlur="this.value=ignoreSpaces(this.value)" style="border:1px solid">

                  </td>

          </tr>

          <tr>

            <td><font size="2"><b>SITO:</b><font color="#008080"></font></td>

            <td><input name="url" size="30" type="text" maxlength="80" value="http://" onBlur="this.value=ignoreSpaces(this.value)"  style="border:1px solid">

                  </td>

          </tr>

               <tr>

            <td><font size="2"><b>CITTA':</b><font color="#008080"></font></td>

            <td><input name="citta" size="30" type="text" maxlength="20" onBlur="this.value=ignoreSpaces(this.value)"  style="border:1px solid">

                  </td>

          </tr>

          <tr>

           <td valign="top"><font size="2"><b>MESSAGGIO:</font><font size="2" color="red">&nbsp;*</b></font>

                </td>

                <td><textarea name="messaggio" wrap="soft" cols="40" rows="10" onkeyup="conta(this.form)"

                style="border:1px solid" onblur="this.value=this.value.replace(/^\s*/,'')"></textarea>

                </td></tr>

                </table>

                 <table width="450" border="0">

               <tr><td align="center" width="90"><input type="submit" value="Invia"></td><td><font face="arial" size="2">Max&nbsp;<input value="500" size="1" name="num" readonly>

                caratteri</font></td>

           </tr>

                </form>

e nel successivo file ins.php ho questo codice ma non funziona,

Chi mi aiuta passo-passo?

session start();

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

inviato 10 anni fa
php
php
6
modificato 10 anni fa
Gianni Tomasicchio
X 0 X

Se vuoi usare le variabili di sessione è necessario che anche nella pagina del form ci sia il session_start(). Inoltre è necessario che i campi input e la textarea prendano come valore iniziale il valore presente nella sessione. Ad esempio:

<input name="nome" value="<?php echo $_SESSION['nome']?>" ....

<input name="email" value="<?php echo $_SESSION['email']?>" ....

Ma siccoma la prima volta che mostri il form non esisterà la variabile $_SESSION['nome'] (e neanche le altre!) potresti far precedere l'intero form da queste istruzioni che creano delle variabili $nome, $email, ecc. che contengono il valore conservato in sessione se esiste oppure sono vuote:

$nome = isset($_SESSION['nome']) ? $_SESSION['nome'] : '';

$email= isset($_SESSION['email']) ? $_SESSION['email'] : '';

...

e poi nel form riempire i campi con le variabili create:

<input name="nome" value="<?php echo $nome?>" ....

<input name="email"  value="<?php echo $email?>" ....

 :bye:

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

Ho fatto così, ma i tag php si sono "spenti" la stringa è tutta nera (la parte in rosso è tutta nera), ti posto la parte "nome"

<form method="POST" action="ins.php" name="mioform" onSubmit="return controlla()">

$nome = isset($_SESSION['nome']) ? $_SESSION['nome'] : '';

            <tr>

            <td><font size="2"><b>NOME:</font><font size="2" color="red">&nbsp;*</b></font>

                  </td>

            <td><input name="nome" value="<?php echo $nome?>" size="30"  type="text" maxlength="30" style="border:1px solid"

                  onblur="this.value=this.value.replace(/^\s*/,'')"</td>

          </tr>

risposto 10 anni fa
php
php
6
modificato 10 anni fa
X 0 X
ma i tag php si sono "spenti" la stringa è tutta nera (la parte in rosso è tutta nera)

si sono spenti ?!? :death:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Si, con il mio editor quado php è attivo i tag <?php e php?> cambiano colore...e poi nella casella bianca del nome ci sono parole scritte, cè qualcosa che non va.

Mettimi tu come dovrebbe essere che verifico

risposto 10 anni fa
php
php
6
modificato 10 anni fa
X 0 X

credo sia un problema secondario :rm_shifty:

lo script funziona?

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

credo sia un problema secondario :rm_shifty:

lo script funziona?

Funziona ma non mantiene i dati nel campo nome

Nel file successivo al form e cioè ins.php ho questo codice (che ho disabilitato), può servire?

/*session start();

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

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