Problema sparizione tasti

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Salve a tutti,

Ho un problema. Ho costruito tutta la sessione. Quindi mi loggo e mi dice benvenuto pincopallino e mi dice quanti utenti ci sono registrati.. Fin qui tutto bene.
Quando vado ad aggiunre un tasto per il logout, questo tasto non viene visualizzato. Volevo sapere il perchè. Ho il seguente listato. Spero ch emi potiate aiutare.


Questo si chiama paginaprotetta.php
PHP:
<?php

session_start();

session_regenerate_id(TRUE);

// Controllo accesso


if(isset($_SESSION['utente'])) {

    $nome = mysql_real_escape_string(strtolower(trim ($_POST['nome'])));
    echo "<h1> <br> <center>";
// echo "Ciao ".$_SESSION['utente']."!";
echo "</h1> </br> </center>";


header('location:login.php');
exit;
}
else
{
//echo "Benvenuto ".$_SESSION['$login'];
}

?>
E questa è la pagina di benvenuto.php

PHP:
<?php
            require_once'paginaprotetta.php';
if(!isset($_POST['esci'])){

?>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    <center>
 <form action= '' method="POST">

       <input type="submit" name="esci" value="Logout" >
 </form>
    </head>
    <body>
        <?php


        }else{

     session_start();

$_SESSION = array();

session_destroy();


echo "<center> <h1> Addio !!!! Alla prossima </center> </h1>";

}        ?>
    </body>
</html>

Se tolgo questa: require_once'paginaprotetta.php'; Va tutto bene. Mi potete aiutare per favore ??? Grazie. Aspetto vostre notizie.
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
23
Roma
alessandro1997.netsons.org
Così:
PHP:
<?php

// URL della pagina di login
define('LOGIN_URL', 'login.php');

// avvio la sessione
session_start();

// se la sessione non esiste...
if (!isset($_SESSION['utente'])) {
    // reindirizzo al login
    header('Location: '. LOGIN_URL);
    exit();
}

// visualizzo il tasto
echo <<<EOF
<a href="logout.php">Logout</a>
EOF;
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Se tolgo questa: require_once'paginaprotetta.php'; Va tutto bene. Mi potete aiutare per favore ??? Grazie. Aspetto vostre notizie.
La funzione session_start() deve essere necessariamente utilizzata prima di qualunque output, precedentemente ad esso non deve pertanto essere già stato scritto del codice HTML (o qualsiasi altro tipo di output).
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao

Ciao Alex,

Il tuo codice mi da errore alle ultime righe:

PHP:
<?php

// URL della pagina di login
//define('LOGIN_URL', 'login.php');

// avvio la sessione
session_start();

// se la sessione non esiste...
if (!isset($_SESSION['utente'])) {
    // reindirizzo al login
    header('Location: '. LOGIN_URL);
    exit();
}

// visualizzo il tasto
echo <<<EOF
<a href="logout.php">Logout</a>
echo <<<EOF;

?>
Ossia le ultime righe sono queste:

PHP:
// visualizzo il tasto
echo <<<EOF
<a href="logout.php">Logout</a>
echo <<<EOF;
Dove sbaglio ????
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao

Non è:
PHP:
echo <<<EOF 
<a href="logout.php">Logout</a> 
echo <<<EOF;
Ma:
PHP:
echo <<<EOF
<a href="logout.php">Logout</a>
EOF;
Anche così mi da errore. L'errore è il seguente se ti può essere d'aiuto:
( ! ) Parse error: syntax error, unexpected $end, expecting T_VARIABLE or T_END_HEREDOC or T_DOLLAR_OPEN_CURLY_BRACES or T_CURLY_OPEN in C:\xampp\htdocs\Matteo\paginaprotetta2.php on line 22
 

paperinik4

Utente Attivo
29 Mag 2011
1.812
0
36
Roma
www.ricetteagogo.it
Ciao

Ha funzionato, c'erano

PHP:
<<<EOF;
Tolto quello è andato tutto liscio come l'olio. Ora però a me servirebbe perchè nella vecchia paginaprotetta che avevo fatto, mi visualizzava il messaggio di benvenuto pincopallino e il numero di utenti registrati al sito (anche se quello è già presente nella pagina di login, quindi non ci sarebbe bisogno). Ma la cosa importante era il messaggio di benvenuto pincopallino. Come posso ottenerlo ??? Considera che lo username è username e nome corrisponde al nome (per lo meno reale). Quindi lui mi deve visualizzare il nome e non lo username. Grazie.
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Perdonami,

Ma non riesco a capirfe cosa intendi. Mi puoi spiegare meglio per favore ????
In pratica, se usi "session_start()" nel tuo script, questo deve essere inserito all'inizio del codice, subito dopo "<?php".