Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    13

    Il mio sistema di login non funziona su iphone!

    Salve,

    ho creato una pagina web per la gestione del login, sui pc funziona perfettamente, su altri smartphone non ho provato, ma su iphone non funziona, sono sicuro che le credenziali che inserisco sono giuste!

    eccovi gli script:

    Codice PHP:
    <?php

    // inizializzazione della sessione
    session_start();

    // inclusione del file contenente la classe
    include "functions.php";

    // istanza della classe
    $data = new MysqlClass();

    // connessione a MySQL
    $data->connetti();

    // se i cookies sono impostati, e contengono informazioni corrette
    if ($data->LoginCookie() == true)
    {
        
    $data->disconnetti();
        
    header("Location: Gestione.php");
    }

    // controllo bruteforce
    if (isset($_SESSION['bruteforce']))
    {
        
    $data->disconnetti();
        
    header("Location: BruteForce.php");
    }

    // controllo parametri
    if ((isset($_POST['submit']) && (trim($_POST['submit']) == "Login")) && $_POST['username'] != "" && $_POST['password'] != "")
    {        
        
    // validazione dei parametri tramite filtro per le stringhe
        
    $username trim(filter_var($_POST['username'], FILTER_SANITIZE_STRING));
        
    $password trim(filter_var($_POST['password'], FILTER_SANITIZE_STRING));
        
    $password hash('sha512'$password); 
        
        
    // interrogazione della tabella
        
    $auth $data->query("SELECT * FROM login WHERE username = '$username' AND password = '$password'");
        
    $res =  $data->estrai($auth);
        
        
    // controllo sul risultato dell'interrogazione
        
    if ($res->username != $username || $res->password != $password)
           {
            
    $data->CheckBruteForce();
            
    // reindirizzamento alla homepage in caso di insuccesso
            
    header("Location: index.php");
        }
        else
        {
            
    // imposta cookie
            
    $array = array($username$password);
            
    setCookie('gesa'implode(','$array), time()+31536000'/'' '0);
            
            
    // disconnessione da MySQL
            
    $data->disconnetti();
            
            
    // reindirizzamento alla pagina di amministrazione in caso di successo
            
    header("Location: Gestione.php");
        }
    }
    else
    {
        
    // form per l'autenticazione
        
    ?>
        <TITLE>
            Login
          </TITLE>
        <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
        
            

            <table border="0" align="center">
                <tr align="center">
                    <td><font size="30">Username:</font></td>
                    <td><input name="username" type="text" style="font-size:30px"></td>
                </tr>
            </table>
            
            <table border="0" align="center">
                <tr align="center">
                    <td><font size="30">Password:</font></td>
                    <td><input name="password" type="password" style="font-size:30px"></td>
                </tr>
            </table>
            

            <table border="0" align="center">
                <tr align="center">
                    <td><button type="submit" name="submit" value="Login" style="height: 200px; width: 300px" ><font size="30">Login</font></button></td>
                </tr>
            </table>
        </form>
          <?
    }
    ?>
    lo script di gestione:

    Codice PHP:
    <?php

    // inizializzazione della sessione
    session_start();

    // inclusione del file contenente la classe
    include "functions.php";

    // istanza della classe
    $data = new MysqlClass();

    // connessione a MySQL
    $data->connetti();

    // se i cookies non sono impostati, oppure lo sono ma non contengono informazioni corrette esci
    if ($data->LoginCookie() == false)
    {
        
    header("Location: Index.php");
    }

    // Logout
    if ($_GET["submit"] == 'Logout')
    {
        
    setcookie('gesa' time()-50000);
        
    header("location: index.php");
    }

    if (
    $_GET["submit"] == 'uno')
    {
        
    header("Location: uno.php");
    }

    ?>

    <TITLE>
        Gestione
    </TITLE>
    <form>


    <table border="0" align="center">
        <tr align="center">
            <td><button type="submit" name="submit" value="uno" style="height: 200px; width: 300px" ><font size="30">uno</font></button></td>
        </tr>
    </table>
    Trovate qualcosa di strano?

    grazie ciao.

  2. #2
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    - innanzitutto non memorizzerei mai in un cookie username e password.....
    - ti conviene serializzare quell'array così :
    codice:
     // imposta cookie        
     $array = array($username, $password);        
     setCookie('gesa', implode(',', $array), time()+31536000, '/', ' ', 0);
    a così
    setta cookie:
    codice:
        $array = array('user' => $username,'password'=>$password);
        setcookie('gesa', serialize($array), time() +3600);
    cattura il cookie:
    codice:
    $array = unserialize($_COOKIE['gesa']);
    poi dici che lo script funziona solo su pc? Quindi potrebbe essere un problema di browser.
    Sul pc hai testato il login con lo stesso browser di iphone(safari)?
    Se non funziona solo su safari allora potrebbe essere un problema nel settaggio dei cookie.

    prova così:
    codice:
    $array = array('user' => $username,'password'=>$password);
    setcookie('gesa', serialize($array),time()+60*60*24*365, '/');

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    13
    grazie della risposta, perchè non va bene memorizzare username e password in un cookie?
    La password è criptata, e lo username da solo a cosa può servire?
    Tu cosa ci memorizzeresti?

    Dimenticavo, l'ho provato su tutti i browser, compreso safari e funziona perfettamente.

    Provo a seguire i tuoi suggerimenti poi ti dico.

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    13
    Ho apportato le modifiche che mi hai suggerito, dall'iphone continuo a non riuscire a loggarmi e si è aggiunto un problema, non riesco più ad effettuare il logout, quindi la cancellazione del cookie, che faccio così:


    Codice PHP:
    // Logout
    if ($_GET["submit"] == 'Logout')
    {
        
    setcookie('gesa' time()-50000);
        
    header("location: index.php");

    la funzione che mi fa il controllo cookie è fatta così:

    Codice PHP:
        // controlla esistenza cookie e contenuto
         
    public function LoginCookie()
         {
             if(isset(
    $this->attiva))
              {
                if (isset(
    $_COOKIE['gesa']))
                {
                    
    $array unserialize($_COOKIE['gesa']);
                    
    $username $array[0];
                    
    $password $array[1];
                    
    $auth $this->query("SELECT * FROM login WHERE username = '$username' AND password = '$password'");
                    
    $res =  $this->estrai($auth);
                    if (
    $res->username == $username && $res->password == $password)
                       {
                        return 
    true;
                     }
                 }
             }
         } 
    grazie ciao.

  5. #5
    Utente di HTML.it L'avatar di hyde82
    Registrato dal
    Feb 2010
    Messaggi
    243
    cancella cookie:
    Codice PHP:
    setcookie("gesa"""time()-3600); 
    per il resto do meglio un occhio al code

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2013
    Messaggi
    13
    Risolto, ho dovuto cancellare tutti i cookie e i dati salvati da safari, riavviato l'iphone.
    Ha funzionato. grazie mille.

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.