2013-01-27 2 views
0

В первый раз, когда я пытаюсь войти в систему, $ _SESSION ['не'] и $ _SESSION ['utente'] теряются при перенаправлении на index.php. Я использую следующую форму для входа в систему:Форма входа с сеансом не работает

<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; 

Я попробовал все, но ничего не работает ...

ответ

0

добавить exit(); после

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

и удалить @ символ, если Вы debbuging Ваш код. Он скрывает ошибки.

вам не нужно второй редирект с помощью JS удалить

echo "<script>document.location.href='http://www.megadv.it".$ref."';</script>";exit; 
+0

Я просто сделал это, но он все еще не работает ... Я вошел в систему, но страница говорит, что я не позволил, чтобы увидеть страницу где я перенаправлен (index.php? page = statistiche), потому что сеанс не был отправлен – Megadv

Смежные вопросы