PDA

View Full Version : [PHP]Stampare una variabile in ogni pagina usando le sessioni


stefano861
05-12-2013, 18:31
Ciao a tutti, sto creando un sito in PHP ma ho qualche difficoltà a capire le sessioni. Ciò che vorrei fare è:
avere un form in ogni pagina del sito. Questo form permette di inserire all'utente il proprio nome ma non è obbligatorio l'inserimento del nome
se l'utente ha scritto il suo nome, questo viene scritto in ogni pagina
è sempre possibile modificare il nome.

Per ora ho diverse pagine php dove in ognuna è presente un form e un div che conterrà il nome (se viene inserito).
All'inizio di ogni file ho:

<?php session_start();?>


e, poco più sotto:

<div id="nome">
<?php
if(isset($_SESSION['nome'])) {
echo $_SESSION['nome'];
}
?>
</div>

Ma è ovviamente sbagliato perchè non mi stampa nulla.. Come si fa allora a fare quello che vorrei?
Ho cercato su internet ma non capisco..

Grazie

stefano861
05-12-2013, 19:20
Ho sbagliato a postare il codice.. Ho questo in un file index.php.

<?php
session_start();
?>

<div>
<form method="post" action='<?php echo $_SERVER['PHP_SELF']; ?>'>
<input type="text" name="nome" value="Inserisci un messaggio..."/>
<input type="submit" name="submit-nome" value="Invia"/>
<p>
<?php
if(isset($_POST['submit-nome'])) {
if(isset($_SESSION['nome'])) {
$_SESSION['nome'] = $_POST['nome'];
echo $_SESSION['nome'];
}
echo "";
}
?>
</p>
</form>
</div>


E gli altri file .php li fare nello stesso modo..

Tuvok-LuR-
06-12-2013, 11:57
isset($_SESSION['nome'])
dovrebbe essere negato
!isset($_SESSION['nome'])

wrathchild
09-12-2013, 11:07
Ma se è sempre possibile modificare il nome, a cosa serve l'espressione

if(isset($_SESSION['nome'])) { ...
}

?

(che poi, come giustamente detto, dovrebbe essere negata)