Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Funzione Login

  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    60

    Funzione Login

    allora ragazzi... io sono partito da questa funzione ke funziona perfettamente per il login:

    Codice PHP:
    <?php 

    //dati per il login 

    $login_user="m3xican"

    $pass_user="189bbbb00c5f1fb7fba9ad9285f193d1"//passwd="prova" 

    $redirect="http://localhost:8888/forum/p1.php"

     

    //gestione della sessione nel caso in cui i cookie sono disabilitati 

    if(IsSet($_POST['PHPSESSID']) && !IsSet($_COOKIE['PHPSESSID'])) 



    $PHPSESSID=$_POST['PHPSESSID']; 

    header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login 





    session_start(); //si inizia o continua la sessione 

     

    //controllo user e passwd da login 

    if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password'])) 



    if(
    $login_user==($_POST['posted_username']) && $pass_user==md5($_POST['posted_password'])) 

    $_SESSION['user']=$_POST['posted_username']; 



     

    //creazione cookie per login automatico 

    if(IsSet($_POST['ricorda']) && IsSet($_SESSION['user'])) 



    $cok=md5($login_user)."%%".$pass_user

    setcookie("sav_user",$cok,time()+31536000); 



     

    //logout 

    if($_GET['logout']==1



    $_SESSION=array(); // Desetta tutte le variabili di sessione. 

    session_destroy(); //DISTRUGGE la sessione. 

    if(IsSet($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico 

    setcookie("sav_user",$cok,time()-31536000); 

    header("Location: $redirect"); //si ricarica la pagina di login 

    exit; //si termina lo script in modo da ritornare alla schermata di login 



           
    //controllo user e passwd da cookie 

    if(IsSet($_COOKIE['sav_user'])) 



    $info_cok=$_COOKIE['sav_user']; 

    $cok_user=strtok($info_cok,"%%"); 

    $cok_pass=strtok("%%"); 

    setcookie("sav_user",$info_cok,time()+31536000); 



    if(
    $cok_user==md5($login_user) && $cok_pass==$pass_user

    $_SESSION['user']=$login_user





    //caso in cui si vuole ricordare il login, ma i cookie sono off 

    if(!IsSet($_COOKIE['PHPSESSID']) && IsSet($_POST['ricorda'])) 

     
    header("Location: $redirect?nocookie=1"); 

    ?> 

    <HTML> 

    <HEAD> 

    </HEAD> 

    <BODY> 

    <?php 

           
    $PHPSESSID
    =session_id(); 

      

    if(!IsSet(
    $_SESSION['user'])) //non siamo loggati, pagina di login 



    if(
    $_GET['nocookie']==1//i cookie sono off e si vuole ricordare il login 

    print("Spiacente, ma con i cookie disabilitati non posso fare i miracoli ;)
     

    Attivali se vuoi ricordare il tuo login.
    "
    ); 

    print(
    "

     <FORM METHOD=POST ACTION=\"p1.php\"> 

     username: 

    <INPUT TYPE=TEXT SIZE=20 NAME=posted_username>
     

    password: 

    <INPUT TYPE=PASSWORD SIZE=20 NAME=posted_password>
     

    ricordami: <INPUT TYPE=CHECKBOX NAME=ricorda VALUE=1>

     

     <INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Loggami\">
    "
    ); 

      

    if(!IsSet(
    $_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID 

    print("<INPUT TYPE=HIDDEN NAME=PHPSESSID VALUE=$PHPSESSID>"); 

    print(
    "</FORM>"); 



    else 
    //siamo loggati pagina riservata 



    $username=$_SESSION['user']; 

     print(
    "Il tuo ID ?: $PHPSESSID 

    "
    ); 

    print(
    "Sei loggato come: $login_user

    "
    ); 

     print(
    "<A HREF=\"p1.php?logout=1\">logout</A>"); 


    ?> 

    </BODY> 

    </HTML>

    la volevo cambiare in modo da renderla fattibile con un DB in mysql.... e ho fatto cosi:

    Codice PHP:
    <?php 

    //dati per il login 

    include 'funzdb.php';

    $redirect="http://localhost:8888/forum/p.php"

     

    //gestione della sessione nel caso in cui i cookie sono disabilitati 

    if(IsSet($_POST['PHPSESSID']) && !IsSet($_COOKIE['PHPSESSID'])) 



    $PHPSESSID=$_POST['PHPSESSID']; 

    header("Location: $redirect?PHPSESSID=$PHPSESSID"); //si ricarica la pagina di login 





    session_start(); //si inizia o continua la sessione 

     

    //controllo user e passwd da login 

    if(IsSet($_POST['posted_username']) && IsSet($_POST['posted_password'])) 

    $connut=connetti();

    $recset=mysql_db_query("my_toog","select * from utenti") or die( "Errore query classe: " mysql_error() );

    $numrec=mysql_affected_rows();

    for(
    $i=0;$i<$numrec;$i++)

      {
    $login_user=mysql_result($recset,$i,"nick");
    $pass_user=mysql_result($recset,$i,"pass");

    echo 
    $login_user.$pass_user."
    "
    ;

    if(
    $login_user==($_POST['posted_username']) && $pass_user==sha1(md5($_POST['posted_password']))) {
      
    //inserisce in log
    $_SESSION['user']=$_POST['posted_username']; 
    $user=$_SESSION['user'];
    $ip=$_SERVER['REMOTE_ADDR'];

      
    $dataEntr=@time();

       
    $query mysql_query("SELECT id FROM utenti WHERE nick='$user'",$connut) or die( "Errore ricerca pass: " mysql_error() );

     
    $info mysql_fetch_assoc($query);
    $id=$info['id'];
     
    $ora=ora($dataEntr);

         
    $query1="INSERT INTO log (`idut`,`nick`,`ip`,`data`,`ora`) VALUES('$id','$user','$ip',CURDATE(),'$ora')";

        
    mysql_db_query("my_toog",$query1);
    }

         
    }
    disconnetti($connut);




     

    //creazione cookie per login automatico 

    if(IsSet($_POST['ricorda']) && IsSet($user)) 



    $cok=md5($user)."%%".$_POST['posted_password']; 

    setcookie("sav_user",$cok,time()+31536000); 



     

    //logout 

    if(IsSet($_GET['logout']) && $_GET['logout']==1



    $_SESSION=array(); // Desetta tutte le variabili di sessione. 

    session_destroy(); //DISTRUGGE la sessione. 

    if(IsSet($_COOKIE['sav_user'])) //se presente si distrugge il cookie di login automatico 

    setcookie("sav_user",$cok,time()-31536000); 

    header("Location: $redirect"); //si ricarica la pagina di login 

    exit; //si termina lo script in modo da ritornare alla schermata di login 



           
    //controllo user e passwd da cookie 

    if(IsSet($_COOKIE['sav_user'])) 



    $info_cok=$_COOKIE['sav_user']; 

    $cok_user=strtok($info_cok,"%%"); 

    $cok_pass=strtok("%%"); 

    setcookie("sav_user",$info_cok,time()+31536000); 

    $connut=connetti();

    $recset=mysql_db_query("my_toog","select * from utenti") or die( "Errore query classe: " mysql_error() );

    $numrec=mysql_affected_rows();

    for(
    $i=0;$i<$numrec;$i++)

      {
    $login_user=mysql_result($recset,$i,"nick");
    $pass_user=mysql_result($recset,$i,"pass");

    echo 
    $login_user.$pass_user."
    "
    ;

    if(
    $cok_user==md5($login_user) && $cok_pass==$pass_user

    $_SESSION['user']=$cook_user; } 
    disconnetti($connut);





    //caso in cui si vuole ricordare il login, ma i cookie sono off 

    if(!IsSet($_COOKIE['PHPSESSID']) && IsSet($_POST['ricorda'])) 

     
    header("Location: $redirect?nocookie=1"); 



    //ora attuale

    function ora($ora)

    {
    $ora = @time();

     
    $b=$ora/60;

     
    $sec=$ora%60;

     
    $c=$b/60;

     
    $min=$b%60;

     
    $ora=$c%24;



     if(
    $ora>21)

       {if(
    $ora==22$ora=0;

        if(
    $ora==23$ora=1;

        if(
    $ora==24$ora=2;

        }

       else 
    $ora=$ora+2;

     

     
    $tot=$ora.":".$min.":".$sec;

     

     return 
    $tot;

     }

    ?> 

    <HTML> 

    <HEAD> 

    </HEAD> 

    <BODY> 

    <?php 

           
    $PHPSESSID
    =session_id(); 

      

    if(!IsSet(
    $_SESSION['user'])) //non siamo loggati, pagina di login 



    if(IsSet(
    $_GET['nocookie']) && $_GET['nocookie']==1//i cookie sono off e si vuole ricordare il login 

    print("Spiacente, ma con i cookie disabilitati non posso fare i miracoli ;)
     

    Attivali se vuoi ricordare il tuo login.
    "
    ); 

    print(
    "

     <FORM METHOD=POST ACTION=\"p.php\"> 

     username: 

    <INPUT TYPE=TEXT SIZE=20 NAME=posted_username>
     

    password: 

    <INPUT TYPE=PASSWORD SIZE=20 NAME=posted_password>
     

    ricordami: <INPUT TYPE=CHECKBOX NAME=ricorda VALUE=1>

     

     <INPUT TYPE=SUBMIT NAME=SUBMIT VALUE=\"Loggami\">
    "
    ); 

      

    if(!IsSet(
    $_COOKIE['PHPSESSID'])) //i cookie sono off, dobbiamo propagare noi il PHPSESSID 

    print("<INPUT TYPE=HIDDEN NAME=PHPSESSID VALUE=$PHPSESSID>"); 

    print(
    "</FORM>"); 



    else 
    //siamo loggati pagina riservata 



    $username=$_SESSION['user']; 

     print(
    "Il tuo ID ?: $PHPSESSID 

    "
    ); 

    print(
    "Sei loggato come: $username

    "
    ); 

     print(
    "<A HREF=\"p.php?logout=1\">logout</A>"); 


    ?> 

    </BODY> 

    </HTML>


    il problema è ke non mi salva nulla nel cookie (e quindi non funziona il tasto ricordami) e non funziona il logout, o meglio funziona ma nn mi rimanda alla pagina di login km dovrebbe fare.... potete aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    60
    vi prego aiutatemi...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    60
    ok il logout mi va.... il problema ora è solo ke non mi scrive nel cookie.... nn so km mai....

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    60
    nessuno ke mi caga? xfavore...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.