registrazione (SESSION)

  • Creatore Discussione Creatore Discussione ispanic
  • Data di inizio Data di inizio

ispanic

Utente Attivo
28 Ago 2014
119
0
0
Codice:
<?php
session_start()
?>

<html>
<head>
</head>
<body>
<form method="post" action="">
<input type="text" name="nome_utente" value=" <?php if(isset($_POST['submit'])) echo $_SESSION['nome_utente']; ?>"
<button type="submit" name="submit">reg.</button>
</form>
</form>
</body>
</html>

<?php
//session_start();
//tutto il resto...
if ($nome_utente == ' ')
$_SESSION['nome_utente'] = $_POST['nome_utente'];
?>
Il problema è solo che la sessione me la registra e me la stampa, ma solamente quando ricarico la pagina, io invece vorrei che me la desse subito, quando stampa l'errore..
Ho provato a mettere anche nell' if(....) un header('location:pagina.php'), ma nulla da fare, come risolvere? Inoltre dove pongo il session_destroy(); ?
 
Ciao,
Sostituisci il tuo codice con questo:
PHP:
<?php
session_start();
if ($nome_utente == ' '){
$_SESSION['nome_utente'] = $_POST['nome_utente'];
}
?>

<html>
<head>
</head>
<body>
<form method="post" action="">
<input type="text" name="nome_utente" value=" <?php if(isset($_POST['submit'])) echo $_SESSION['nome_utente']; ?>"
<button type="submit" name="submit">reg.</button>
</form>
</form>
</body>
</html>

<?php
//tutto il resto
?>

Devi mettere session_destroy dopo "//tutto il resto" se vuoi che la sessione venga distrutta dopo che la pagina è stata processata (in tal caso, perchè non usare direttamente $_POST['nome_utente']?). Se invece vuoi che venga distrutta quando la sessione del browser finisce, ci penseranno già sia il client (cancellando il cookie con l'id di sessione) che il server a farlo :)
 
Grazie mille scusami, mi succede una cosa stranissima però perchè se metto tutto il codice php alla fine del codice html, le iterazioni if() funzionano solo in parte?
esempio:
PHP:
if($nome_utente == ' ')
echo 'ciaociao'; 
// Questa funziona

if($nome_utente == ' ')
header('location:pagina_destinazione.html');
//questa non funge

In pratica non mi funzionano gli "headers()" perchè?
 

Discussioni simili