Visualizzazione risultati 1 fino 11 di 11

Discussione: problema nel login

  1. #1
    Guest

    Predefinito problema nel login

    Ciao a tutti, vi chiedo aiuto, ho creato una pagina di registrazione ed una di login, lo scrip di registrazione funziona bene ma quando poi vado a fare il login non so perchè non mi riconosce l'utente (come se non fosse stato attivato)

    <?php
    session_start();
    include 'connessione.php';
    include 'funzioni.php';


    unset($_SESSION['login']);
    unset($_SESSION['psw']);

    $login = trim(addslashes($_POST[login]));
    $pass = trim(addslashes($_POST[psw]));
    if ($login=='' or $pass==''){
    echo"<form name='login' action='' method='post'>
    <table>
    <tr><td>Login</td><td><input type='text' name='login'></td></tr>
    <tr><td>Password</td><td><input type='password' name='psw'></td></tr>
    <tr><td><input type='submit' name='Accedi' value='Accedi'></td><td></td></tr></table>";}
    else
    {
    $psw_per_db = criptpass($pass);
    $verifico_user = mysql_query("SELECT *
    FROM account
    WHERE nick ='$login'
    AND stato = '1' LIMIT 0,1");
    $result = mysql_query($verifico_user);
    $ok_login = mysql_num_rows($result);
    if (!ok_login) {
    die("Errore nella query di selezione utente $selezione: " . mysql_error()) ;
    }

    if($ok_login=="1")
    {
    $_SESSION[login] = $login;
    $_SESSION[psw]= $psw_per_db;
    echo "<meta http-equiv=\"Refresh\" content=\"3; URL=set.php\">Login effettuato correttamente . <a href=set.php>Clicca qui per entrare</a>";
    }
    else
    {
    echo "<meta http-equiv=\"Refresh\" content=\"10; URL=login.php\">Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email<a href=login.php>Premi qui per riprovare</a>";
    }
    }
    ?>

    l'account è attivo, lo vedo sul db eppure il messaggio che dà ad ogni tentativo di login è : "Login incorretto o utente che non ha ancora completato il processo di registrazione"

    sembra esserci un problema nella comunicazione con il db, qualche suggerimento?

    se volete vedere la cosa con i vostri occhi ecco un sito dove ho uppato queste cose, sezione giochi
    http://darkowl.altervista.org/

  2. #2
    Guest

    Predefinito

    veramente a me dice
    connesso con successo Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua emailPremi qui per riprovare
    comunque prova a levare il limit nella variabile $verifico_user

  3. #3
    Guest

    Predefinito

    si, infatti è quello che dicevo io, da sempre quel messaggio, ossia il login fallisce, invece dovrebbe dire "login completato con successo", ho provato anche a togliere il limit, stesso risultato, vedete qualche errore nel codice? magari nella sintassi inerente al select?

  4. #4
    Guest

    Predefinito

    io uso lo stesso sistema e nel LIMIT metto solo 1 non 0,1 , poi c'èa cneh questa riga se non erro
    Codice PHP:
    if (!ok_login) {
    die(
    "Errore nella query di selezione utente $selezione: " . mysql_error()) ;
    }
    forse dovrebbe essere
    Codice PHP:
    if (!$ok_login) {
    die(
    "Errore nella query di selezione utente $selezione: " . mysql_error()) ;
    }
    nella query '$login' è sbagliato prova con
    Codice PHP:
    $verifico_user = mysql_query("SELECT *
    FROM account
    WHERE nick ='"
    .mysql_real_escape_string($login)."'
    AND stato = '1' LIMIT 0,1"
    );
    '$login' viene letta come stringa , quindi nel db dovrebbe esistere un nickname $login , allora forse il login avrebbe successo
    Ultima modifica di fabio29 : 08-05-2009 alle ore 21.15.49

  5. #5
    Guest

    Predefinito

    ho provato tutte queste modifiche (anche se quella del if non l'ho capita) ma il risultato è sempre lo stesso
    Ultima modifica di darkowl : 08-05-2009 alle ore 21.35.46

  6. #6
    Guest

    Predefinito

    Nella seconda hai messo !ok_login ( ok_login senza la $ davanti ?).

    sostituisci
    Codice PHP:
    $verifico_user = mysql_query("SELECT *
    FROM account
    WHERE nick ='
    $login'
    AND stato = '1' LIMIT 0,1"
    );
    $result = mysql_query($verifico_user);
    $ok_login = mysql_num_rows($result);
    con
    Codice PHP:
    $verifico_user = mysql_query("SELECT *
    FROM account
    WHERE nick ='"
    .mysql_real_escape_string($login)."'
    AND stato = '1' LIMIT 0,1"
    );
    $ok_login = mysql_num_rows($verifico_user);
    dovrebbe andare

  7. #7
    Guest

    Predefinito

    niente di niente... avrò passato le giornate davanti questa pagina... sempre lo stesso risultato

  8. #8
    Guest

    Predefinito

    effettui la connessione la database?
    nel database hai la tabella 'account' ?
    se si , hai quelle determinate colonne ?

  9. #9
    Guest

    Predefinito

    effettuo la connessione, ed ha successo, la tabella account esiste e ci sono quelle colonne

  10. #10
    Guest

    Predefinito

    prova così , se non funziona posta il contenuto della pagina dove ci sono i dati per la connessione al database ( esclusa la password)
    Codice PHP:
    <?php
    session_start
    ();
    include(
    "connessione.php");
    include(
    "funzioni.php");


    unset(
    $_SESSION['login']);
    unset(
    $_SESSION['psw']);

    $login = trim(addslashes($_POST['login']));
    $pass = trim(addslashes($_POST['psw']));
    if (
    $login=='' or $pass==''){
    echo
    "<form name='login' action='' method='post'>
    <table>
    <tr><td>Login</td><td><input type='text' name='login'></td></tr>
    <tr><td>Password</td><td><input type='password' name='psw'></td></tr>
    <tr><td><input type='submit' name='Accedi' value='Accedi'></td><td></td></tr></table>"
    ;}
    else
    {
    $psw_per_db = criptpass($pass);
    $verifico_user = mysql_query("SELECT *
    FROM account
    WHERE nick='"
    .mysql_real_escape_string($login)."'
    AND stato='1' LIMIT 1"
    );

    if(
    mysql_num_rows($verifico_user)>0)
    {
    $_SESSION['login'] = $login;
    $_SESSION['psw']= $psw_per_db;
    echo
    "<meta http-equiv=\"Refresh\" content=\"3; URL=set.php\">Login effettuato correttamente . <a href=set.php>Clicca qui per entrare</a>";
    }
    else
    {
    echo
    "<meta http-equiv=\"Refresh\" content=\"10; URL=login.php\">Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email<a href=login.php>Premi qui per riprovare</a>";
    }
    }
    ?>

  11. #11
    Guest

    Predefinito

    Prova così:
    Codice PHP:
    <?php
    session_start
    ();
    include(
    'connessione.php');
    include(
    'funzioni.php');


    unset(
    $_SESSION['login']);
    unset(
    $_SESSION['psw']);

    $login = trim(addslashes(htmlspecialchars($_POST['login'])));
    $pass = trim(addslashes(htmlspecialchars($_POST['psw'])));

    if (!(isset(
    $_POST['accedi'])) && (empty($login) || (empty($pass))))
    {
    {
    echo
    '<form action="" method="post">';
    echo
    '<table>';
    echo
    '<tr><td>Login</td><td><input type="text" name="login" /></td></tr>';
    echo
    '<tr><td>Password</td><td><input type"password" name="psw" &></td></tr>';
    echo
    '<tr><td><input type="submit" name="accedi" value="Accedi" &></td><td></td></tr></table>';
    }
    else
    {

    $psw_per_db = criptpass($pass);
    $verifico_user = mysql_query("SELECT * FROM account WHERE nick ='" . $login . "' AND stato = '1' LIMIT 0,1");
    $result = mysql_query($verifico_user);
    if (!
    $result)
    {
    die(
    'Errore nella query di selezione utente ' . $selezione . ': ' . mysql_error());
    }
    $ok_login = mysql_num_rows($result);

    if (
    $ok_login)
    {
    $_SESSION['login'] = $login;
    $_SESSION['psw'] = $psw_per_db;
    print
    'Login effettuato correttamente. <a href="set.php">Clicca qui per entrare</a>';
    }
    else
    {
    print
    'Login incorretto o utente che non ha ancora completato il processo di registrazione. In questo caso controlla la tua email. <a href="login.php">Premi qui per riprovare</a>';
    }
    }
    ?>
    Ti ho pulito il codice e sistemato alcune condizioni sbagliate, come l'errore mysql, lo faceva se il login non andava. Poi ti migliorato un po il sorgente, perchè aggiungevi <meta> dove no nandavano, vanno prima </head>, non nel body.


    PS: ma $selezione dove è definita?

    Ultima modifica di biccheddu : 08-05-2009 alle ore 22.35.14

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •