0

初めてログインしようとすると、index.php へのリダイレクト中に $_SESSION['not'] と $_SESSION['utente'] が失われます。ログインには次のフォームを使用しています。

<form id="login" class="text" action="login.php" style="top:8px;" method="post">
<input name="usermail" type="text" class="email" style="text-transform:lowercase;width:130px;color:#9a9a9a" value="Indirizzo e-mail" onfocus="this.style.color='#666';if(this.value=='Indirizzo e-mail')this.value='';" onblur="if(this.value==''){this.style.color='#9a9a9a';this.value='Indirizzo e-mail'}">
<button style="float:right;height:65px;margin:1px 0px 0px 5px;" type="submit" value="Accedi"><i class="icon-login"></i><br><font class="font_mini">Accedi</font></button><br>
<input name="pass" type="password" class="password" autocomplete="off" style="width:130px;color:#9a9a9a" value="Password" onfocus="this.style.color='#666';if(this.value=='Password')this.value='';" onblur="if(this.value==''){this.style.color='#9a9a9a';this.value='Password'}"/>
<br><a href="?page=recupero"><font class="font_mini">Credenziali dimenticate?</font></a></form>

login.php:

<?
session_start();
$ip=$_SERVER[REMOTE_ADDR];
$user=strtolower($_POST['usermail']);
$pw=htmlspecialchars($_POST['pass'], ENT_QUOTES);
$userfile="utenti/email/".$user.".php";
if(file_exists($userfile))
{
    include($userfile);
    if($pw==$p)
    {
        $_SESSION["utente"]=$user;
        $ref="statistiche";
        if(file_exists("utenti/visita/".$user))
        {
            $notifica=6;include "notifiche.php";exit;
        }
        else
        {
            include "media.php";
            include_once "changevar.php";
            changevar("c",$c+$media,$userfile,0);
            $ipfile="utenti/IP/".$user.".php";
            if(file_exists($ipfile))
            {
                include $ipfile;
                if(!in_array($ip,$IParray))
                {
                    $fp=fopen($ipfile,"r");
                    $content=fread($fp,filesize($ipfile));
                    fclose($fp);
                    $content=str_replace(")",",'".$ip."')",$content);
                    $fp=fopen($ipfile,"w");
                    fwrite($fp,$content);
                    fclose($fp);
                }
            }
            else
            {
                $fp=fopen($ipfile,"w");
                fwrite($fp,"<?$"."IParray=array('".$ip."');?>");
                fclose($fp);
            }
            $filename="utenti/statistiche/".$user.".php";
            include $filename;
            changevar("creditiguadagnati",$creditiguadagnati+$media,$filename,1);
            $fp=fopen("utenti/visita/".$user, "w");
            fclose($fp);
            $notifica=7;include "notifiche.php";exit;
        }
    }
    else
    {
        $_SESSION['username']=$user;
        $notifica=12;include "notifiche.php";exit;
    }
}
else
{
    if(isset($_POST['usermail'])&&isset($_GET['a']))
    {
        $notifica=4;include "notifiche.php";exit;
    }
    else
    {
        header("location:index.php?page=errore");
    }
}
?>

notifiche.php:

@session_start();
if(!isset($testo)&&isset($notifica))
{
switch($notifica)
{
case 0:$testo="0§La tua registrazione è avvenuta con successo!§Conferma l'e-mail che ti è stata inviata all'indirizzo di posta elettronica '$email' per poter effettuare il primo accesso.<br>Accertarti che l'email di conferma non sia finita erroneamente nella cartella dello spam/junk";break;
case 1:$testo="1§Attenzione§Questo indirizzo e-mail risulta essere già registrato!";break;
case 2:$testo="0§Congratulazioni!§La tua registrazione è avvenuta con successo!";break;
case 3:$testo="0§Biglietto acquistato!§Congratulazioni, hai appena acquistato il biglietto per poter partecipare all'estrazione numero ".($num+1).". Verifica la tua vincita in data $data sulla presente pagina";break;
case 4:$testo="1§Attenzione§Questo indirizzo e-mail non risulta essere registrato!";break;
case 5:$testo="1§Crediti insufficienti§Non hai abbastanza crediti per effettuare questa operazione";break;
case 6:$testo="0§Login riuscito!§Hai appena effettuato l'accesso con il profilo ".$_SESSION['utente'];break;
case 7:$testo="0§Login riuscito!§Hai appena ricevuto ".$media." crediti per aver effettuato l'accesso giornaliero";break;
//case 8:$testo="§§";break;
case 9:$testo="0§Account eliminato§Il tuo profilo è stato cancellato correttamente, ti ringraziamo per aver utilizzato MEGADV";break;
case 10:$testo="1§Cancellazione fallita§La password immessa non è corretta";break;
//case 11:$testo="§§";break;
case 12:$testo="1§Errore§La password inserita non è valida!";break;
case 13:$testo="0§Recupero password riuscito§La tua password è stata correttamente inviata all'indirizzo da te fornitoci";break;
case 14:$testo="1§Estensione dell'icona non valida§L'icona scelta ha un'estensione diversa da png, gif, jpeg o bmp";break;
case 15:$testo="1§Impossibile caricare l'icona§Si è verificato un errore durante l'upload dell'icona, riprova.<br>Se il problema persiste contatta l'amministratore";break;
//case 16:$testo="§§";break;
case 17:$testo="1§Attenzione§La password indicata non coincide con quella inserita nel campo di conferma password";break;
case 18:$testo="1§Attenzione§Per proseguire è necessario compilare il campo password";break;
case 19:$testo="1§Attenzione§Vecchia password errata, impossibile salvare le modifiche effettuate";break;
case 20:$testo="0§Congratulazioni!§Hai appena confermato la modifica del tuo indirizzo e-mail";break;
case 21:$testo="1§Attenzione§Il tuo indirizzo e-mail è stato modificato o l'account è stato cancellato da un altro computer";break;
case 22:$testo="1§Attenzione§Il titolo non può essere uguale alla descrizione";break;
case 23:$testo="1§Attenzione§La password deve essere almeno di 6 caratteri";break;
}
}
$_SESSION['not']=$testo;
if(isset($ref))
{
    $ref="?page=".$ref;
}
else
{
    $ref='';
}
@header("location: http://www.megadv.it".$ref);
echo "<script>document.location.href='http://www.megadv.it".$ref."';</script>";exit;

私はすべてを試しましたが、何もうまくいきません...

4

1 に答える 1

0

exit(); を追加します。後

header("location: http://www.megadv.it".$ref);

コードをデバッグする場合は @ char を削除します。エラーを隠します。

JS remove による 2 回目のリダイレクトは必要ありません

echo "<script>document.location.href='http://www.megadv.it".$ref."';</script>";exit;
于 2013-01-27T16:59:51.107 に答える