Visualizzazione risultati 1 fino 2 di 2

Discussione: [PHP] Form di login basato su WordPress: Errori "header"

  1. #1
    L'avatar di finalgalaxy
    finalgalaxy non è connesso Utente
    Data registrazione
    25-01-2008
    Residenza
    Pontecagnano (SA)
    Messaggi
    190

    Predefinito [PHP] Form di login basato su WordPress: Errori "header"

    Salve a tutti.
    In homepage stavo costruendo un form di login basato su quello di WordPress.
    Lo stavo provando, ed ecco quello che succede:
    Codice:
    1. Appena vado nella mia homepage, si nota questo errore:
    Warning: Cannot modify header information - headers already sent by (output started at /membri/finalgalaxy/include_home/php/menusx.php:30) in /membri/finalgalaxy/blog/wp-content/plugins/wp-super-cache/wp-cache-phase2.php on line 36
    E fin qui, ancora ancora, tutto bene.
    Proseguo:
    Codice:
    2. Inserisco i dati d'accesso.
    - 2.1 Se sono sbagliati, a parte il messaggio che mi spiega che i dati inseriti non sono validi, non viene visualizzato a video nessun errore.
    - 2.2 Se sono esatti, visualizzo questi tre errori, però sono riuscito ad eseguire il login:
    
    Warning: Cannot modify header information - headers already sent by (output started at /membri/finalgalaxy/include_home/php/menusx.php:30) in /membri/finalgalaxy/blog/wp-includes/pluggable.php on line 649
    
    Warning: Cannot modify header information - headers already sent by (output started at /membri/finalgalaxy/include_home/php/menusx.php:30) in /membri/finalgalaxy/blog/wp-includes/pluggable.php on line 650
    
    Warning: Cannot modify header information - headers already sent by (output started at /membri/finalgalaxy/include_home/php/menusx.php:30) in /membri/finalgalaxy/blog/wp-includes/pluggable.php on line 651
    Ma non è finita qui, adesso viene il peggio!
    Codice:
    3. Riaggiorno l'homepage e.. Nel campo "Accedi" vengono visualizzati caratteri speciali mischiati a casaccio!!

    Se però inserisco nell'url quella funzione per il logout (?logout) si ricomincia daccapo e mi disconnette.
    Mi potete aiutare, che mi sto scervellando??
    Sto cercando da parecchio tempo su Google e qui su AV ma niente!
    Codice del form di login in /login/login.php:
    Codice PHP:
    <?php
    session_start
    ();
    require(
    'blog/wp-load.php');

    // Esegue il login
    function SiteWPLogin(){
    global
    $user_login,$_POST;
    $user=wp_signon('',false);
    if ( !
    is_wp_error($user) ) {
    $_SESSION['user']=array(
    'uid'=>$user->ID,
    'name'=>$user->nickname,
    'email'=>$user->user_email
    );

    return
    true;
    }else{
    $user_login = ( 'incorrect_password' == $user->get_error_code() || 'empty_password' == $user->get_error_code() ) ? attribute_escape(stripslashes($_GET['log'])) : '';
    return
    false;
    }
    }

    // Esegue il logout
    function SiteWPLogout(){
    session_destroy();
    }

    $user_login="";
    if(!isset(
    $_POST['redirect_to'])){
    $redirect_to=$_SERVER['HTTP_REFERER'];
    }else{
    $redirect_to=$_POST['redirect_to'];
    }
    if(
    count($_POST)>0){
    if(
    SiteWPLogin()){
    setcookie("finalgalaxyportal[login]","collegato", time()+3600);
    echo
    '<div style="border:1px dashed #FF0000">Accesso effettuato, dati corretti!</div>';
    }else{
    echo
    '<div style="border:1px dashed #FF0000">Accesso fallito, ricontrollare i dati inseriti.</div>';
    }
    }
    if(isset(
    $_GET['logout'])){
    setcookie("finalgalaxyportal[login]","", time()-3600);
    SiteWPLogout();
    }
    ?>
    <div style="border:1px dashed #FF0000">
    <?
    if(!isset($_SESSION['user'])){ // l'utente non è loggato
    echo "Ciao Visitatore! <a href=\"/blog/wp-login.php?action=register\">Registrati.</a>";
    }else{
    echo
    'Bentornato '.$_SESSION['user']['name'].' ('.$_SESSION['user']['uid'].')! <a href="?logout">Esci</a>'; // ['name'] ritorna il nick, ['uid'] ritorna l'id utente
    }
    ?>
    </div>
    <form name="loginform" id="loginform" action="?login" method="post">
    <p>
    <label>Nome Utente<br />
    <input type="text" name="log" id="user_login" class="input" value="<?php echo $user_login; ?>" size="20" tabindex="10" /></label>
    </p>
    <p>
    <label>Password<br />
    <input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" /></label>
    </p>
    <?php do_action('login_form'); ?>
    <p class="forgetmenot"><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" />Ricordami</label></p>
    <p class="submit">
    <input type="submit" name="wp-submit" id="wp-submit" value="<?php _e('Log In'); ?>" tabindex="100" />
    <input type="hidden" name="redirect_to" value="<?php echo attribute_escape($redirect_to); ?>" />
    <input type="hidden" name="testcookie" value="1" />
    </p>
    </form>
    NB: Il form di login lo includo da /login/login.php, di cui il codice è posto sopra. Il file wp-cache-phase2.php è una parte integrante del plugin Wp-Super-Cache di WordPress ed il pluggable.php di WP non l'ho proprio toccato.
    Byez!

    EDIT: Ho spostato lo script del login in ./ciao.php (Che è vuota, non include altri elementi) e funziona alla perfezione. Quegli errori nella pagina precedente da che cosa potevano essere causati? Come posso risolvere?
    Ultima modifica di finalgalaxy : 20-04-2009 alle ore 15.07.49
    [Finalgalaxy]: Scusate, ma lo scrivo: non venite a seccarci per richieste su argomenti tecnici, ma il forum esiste sì o no?!
    [Miki92]: AlterVista è così protetta che nemmeno la polvere intasa i suoi servers.

  2. #2
    Guest

    Predefinito

    Sono causati dal fatto che forse ( require('blog/wp-load.php'); ) in questa pagina viene generato un output.
    Tu usi delle funzioni quali set_cookie che per funzionare devono essere messe prima di qualsiasi output (per il fatto che vanno a modificare gli header http).

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •