• User Attivo

    Strano problema di visualizzazione

    Salve a voi ragazzi..
    in un sito che sto creando mi succede una cosa strana..
    Praticamente quando clicco nel profilo di un utente alla voce"invia messaggio"
    mi manda alla pagina per l invio però mi mostra tutto bianco..però se faccio aggiorna sulla stessa pagina bianca mi mostra la pagina correttamente..:?
    A cosa è dovuto ciò?

    Questa è la pagina in questione forse sbaglio in qualche parte di codice..:?
    [PHP]

    <html>

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Invia messaggio all utente</title>
    </head>

    <body>

    <?

    //Apro la sessione e...
    session_start();
    //verifico che dopo il login io abbia la chiave di sessione ad 1
    if($_SESSION['logged']==1){
    //se si...
    //verifico se esiste la variabile destinatario
    if(isset($_GET['destinatario']) OR $_GET['destinatario'] != ""){
    $destinatario=$_GET['destinatario'];

    //verifico se esiste la variabile email
    if(isset($_GET['email']) OR $_GET['email'] != "")
    $emaildest=$_GET['email'];
    }

    //facciamo una stampata a video!
    echo "Email:$emaildest Ciao  " . $_SESSION[nickname] . "Scrivi il messaggio che vuoi inviare

    <form method="post" action="invio.php">
    <p>Destinatario</p>
    <p><input type="text" name="destinatario" value="$destinatario"readonly</p>
    <input type="text" name="emaildest" value="$emaildest"readonly</p>
    <textarea name="messaggio"></textarea>
    <input type="submit" value="Invia messaggio">
    </form> ";

    } else {
    //altrimenti...
    echo "Non sei loggato...";
    //annullo tutte le chiavi di sessioni se esistono
    session_unset();
    session_destroy();
    header("Location: login.htm");
    exit;
    }
    ?>[/PHP]


  • Super User

    Ciao,
    ho provato a visualizzare il tuo codice in locale.
    Allora, la sessione (session_start) deve sempre essere impostata prima che al browser venga inviata qualsiasi altra istruzione o ti darà un'errore. Quindi il tuo script deve iniziare così:

    [php]
    <?php
    session_start();
    ?>
    <html>

    <head> [/php]sennò ti verrà fuori un'errore tipo:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sentinoltre la stessa cosa vale per
    [php]header("Location: login.htm"); [/php]ti consiglio di usare un redirect in HTML

    :ciauz:

    aparte quello non ho avuto nessun problema... ho usato xamp 1.7 in locale con firefox 3 e windows xp...

    potresti postare la parte del codice nel profilo dove c'è il link per inviare un messaggio?