Stampare una variabile in ogni pagina usando le sessioni

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
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:
<?php    session_start();?>

e, poco più sotto:
HTML:
<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
 

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
Ho sbagliato a postare il codice.. Ho questo in un file index.php.
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($_SESSION['nome']))
            $_SESSION['nome'] = "a";
        else
            $_SESSION['nome'] = " già esistente";

        $nome = $_POST['nome'];
        echo $nome . $_SESSION['nome'];
     ?>
    </p>
  </form>
</div>

E gli altri file .php li fare nello stesso modo..
 
Ultima modifica:

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
Ma il nome lo vuoi come value nel campo di testo? per esempio:
PHP:
<?php
$nome="";
if(isset($_SESSION['nome']))
{
$nome=$_SESSION['nome'];
}
?>

  <input type="text" name="nome" value="<?php echo $nome ?>"/>
 

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
Ma il nome lo vuoi come value nel campo di testo? per esempio:
PHP:
<?php
$nome="";
if(isset($_SESSION['nome']))
{
$nome=$_SESSION['nome'];
}
?>

  <input type="text" name="nome" value="<?php echo $nome ?>"/>

Grazie per la risposta, no lo voglio stampare in un'altra parte del sito..
Ho modificato il codice precedente in
Codice:
<?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 mi scrive il valore inserito ma solo per un brevissimo tempo (durante il caricamento della pagina), e poi sparisce. Perchè?

Ultima cosa: secondo il mio ragionamento fatto al primo post ma utilizzando sessioni e database, questo pseudo-codice potrebbe andare?
PHP:
if(isset($_POST['submit-nome'])) { //se l'utente ha inserito qualcosa
    //inserisci nel database il nome...
    if(!isset($_SESSION['nome'])) {
        $_SESSION['nome'] = $_POST['nome'];
    }
    echo $_SESSION['nome'];
} 
else { //se l'utente non ha inserito nulla
    if(isset($_SESSION['nome'])) {
        echo $_SESSION['nome'];
    }
    else { //utente non ha inserito nulla e non c'è una SESSION['stato']
        //fai una select e stampa l'ultima query inserita...
    }        
}
 

edin

Utente Attivo
7 Nov 2013
92
0
6
www.edinweb.altervista.org
prova in questo modo, dai il valore a $_SESSION['nome'] o lo cambi al submit del form:
PHP:
<?php
  //valore default oppure null
  $nome="";

  if(isset($_POST['submit-nome'])) {
 
    $_SESSION['nome'] = $_POST['nome'];
 }
 
if(isset($_SESSION['nome'])) {
        $nome=$_SESSION['nome'];
    }

echo $nome;
?>
 

stefano862

Nuovo Utente
5 Dic 2013
26
0
0
prova in questo modo, dai il valore a $_SESSION['nome'] o lo cambi al submit del form:
PHP:
<?php
  //valore default oppure null
  $nome="";

  if(isset($_POST['submit-nome'])) {
 
    $_SESSION['nome'] = $_POST['nome'];
 }
 
if(isset($_SESSION['nome'])) {
        $nome=$_SESSION['nome'];
    }

echo $nome;
?>

Ora funziona quasi :) il nome mi viene stampato e rimane a video senza sparire, però c'è un problema:
  • scrivo "Mario" --> mi si aggiorna la pagina e trovo scritto "Mario" (ok)"
  • scrivo "Chiara" --> si aggiorna la pagine e trovo a video "MarioChiara" (non va bene, Chiara dovrebbe sostituire Mario)
  • scrivo "Piero" --> si aggiorna la pagina a trovo a video "ChiaraPiero"
  • ecc..
 
Discussioni simili
Autore Titolo Forum Risposte Data
elpirata [PHP] Stampare i valori di una variabile scritta su più righe PHP 1
D Stampare variabile da una funzione PHP 1
Y Stampare da php su un foglio A6 attraverso una stampante esterna PHP 1
B Stampare una porzione della pagina PHP 0
webmachine [PHP] Problema: Stampare tutte le occorrenza di una SELECT PHP 2
elpirata Stampare a video in echo table il risultato di una query PHP 4
D Stampare una query in una tabella MySQL 2
P Stampare una tabella dinamica con dati json jQuery 1
L PHP/MySQL: stampare da una tabella attributi raggruppati per genitore PHP 1
D Stampare valori dentro una tabella PHP 7
F stampare una select con php PHP 7
S Stampare il risultato di una query inner jon in php.... PHP 4
I Stampare due variabili da due pagine differenti in una terza pagina PHP 4
voldemort Javascript Print [Era: stampare una pagina con un link js] Javascript 2
F "Link Stampa" per stampare una pagina nascosta Javascript 4
D Stampare solo una pagina PHP 4
V Stampare una pagina Flash 1
L Stampare una pagina di riepilogo Classic ASP 9
G leggere file txt e stampare con php il contenuto a video PHP 7
F stampare a video i risultati della query PHP 1
elpirata Ricavare e stampare indirizzo ip da array associativo PHP 0
V Come stampare su Excel tabella con rowspan e colspan Javascript 2
elpirata Stampare carattere simbolo euro PHP 10
W Stampare file PDF in varie modalità. Windows e Software 5
L pdo (stampare un valore con ritorno a funzione) PHP 0
P [PHP] Aggiungere giorni e stampare risultato da data inserita in input PHP 3
P [PHP] Stampare record di diverse tabelle ma con nomi uguali PHP 6
K [PHP] Stampare tabella da database differenti. PHP 4
M Stampare con php e mysql PHP 8
L [PHP] stampare un'array di un database PHP 0
J modifica spooler di stampa per stampare in ordine di nome i files pdf Windows e Software 2
T PHP+MYSQL: stampare record con numero progressivo PHP 3
cristoforo58 Stampare dei valori XML in PHP PHP 0
K [PHP] Cancellare e Stampare tabella PHP 3
M [PHP] come stampare un Qr-code in FPDF PHP 8
M [Javascript] "Stampare" nel codice Var JS Javascript 5
N [PHP] stampare pagina html PHP 0
fulviozecchin [Java] Stampare intervallo tra due interi senza cicli Java 2
F [PHP] Stampare dati inviati tramite ajax PHP 0
elpirata [RISOLTO]Stampare giorno della settimana in tabella php PHP 6
elpirata [PHP] [RISOLTO] Stampare classe css in base al risultato della query PHP 6
Fuego2806 Stampare dati Form su immagine di sfondo con html HTML e CSS 1
Fuego2806 [PHP] Stampare dati Form su immagine di sfondo con html PHP 70
momeraths come stampare immagini contenute in un database PHP 7
I stampare in video i dati inseriti nel db PHP 1
M Sito "e-commerce", stampare dati di registrazione e dati dell'acquisto da pagine diverse PHP 7
L Stampare immagine php PHP 2
Shyson Stampare lista in ordine decrescente Database 1
A Stampare senza sidebar Javascript 0
F stampare array php PHP 3

Discussioni simili