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?