Visualizzazione risultati 1 fino 9 di 9

Discussione: Errore pagina di Login

  1. #1
    Guest

    Predefinito Errore pagina di Login

    Ho un problema con il login.Non mi trova l'utente nonostante nella tabella c'è.

    Codice PHP:
    <?
    session_start
    ();
    mysql_connect(localhost,scolopedia,****);
    mysql_select_db("my_scolopedia") or Die ("Connessione al database fallita");

    $username=mysql_real_escape_string($_POST['username']);
    $password=mysql_real_escape_string($_POSt['password']);
    $dati= "SELECT id FROM profilo WHERE username='$username' AND password='$password'";
    $esi=mysql_query($dati);
    if (
    $row=mysql_fetch_array($esi))
    {
    $_SESSION['id']=$row['id'];
    header("Location: paginaprofilo.php");
    }
    else
    {
    header("Location: loginfallito.php");
    }
    ?>
    Il codice è questo, crea la connessione, cerca nella tabella l'id che corrisponde a username e password inseriti e se esiste memorizza l'id con le sessioni e manda verso un'altra pagina, altrimenti ti manda verso loginfallito.php... ma nonostante il username e password associati all'id 1 esistano, mi manda comunque su loginfallito.php. Forse ho sbagliato qualcosa nelle parentesi dell'IF?
    Ultima modifica di scolopedia : 17-09-2012 alle ore 20.58.00

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    Controlla se $esi è === FALSE. In caso positivo (se è false), stampa l'errore sql (mysql_error()).

    Inoltre, occhio a:
    Codice PHP:
    $_POSt['password']
    Ciao!

  3. #3
    Guest

    Predefinito

    ho cambiato così:
    Codice PHP:
    <?
    session_start
    ();
    mysql_connect(localhost,scolopedia,rinmomapne50);
    mysql_select_db("my_scolopedia") or Die ("Connessione al database fallita");

    $username=mysql_real_escape_string($_POST['username']);
    $password=mysql_real_escape_string($_POST['password']);
    $dati= "SELECT id FROM profilo WHERE username='$username' AND password='$password'";
    $esi=mysql_query($dati);
    if (
    $esi===false){
    echo(
    mysql_error());
    }
    else
    {
    $row=mysql_fetch_array($esi))
    $_SESSION['id']=$row['id'];
    header("Location: paginaprofilo.php");
    }
    ?>
    Ma mi dice che c'è un errore in riga 15 (quella con la sessione): syntax error, unexpected T_VARIABLE

  4. #4
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    Codice PHP:
    $row=mysql_fetch_array($esi))
    Manca il ";" e hai chiuso una parentesi in più.

    Ciao!

  5. #5
    Guest

    Predefinito

    Risolto, grazie! :D

  6. #6
    Guest

    Predefinito

    No aspetta, il problema non è risolto... adesso anche se il profilo non esiste invece di stamparmi l'errore mi manda lo stesso sulla nuova pagina! Cavolo!

  7. #7
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    beh, certo: per vedere quante "righe" trova, dovresti usare la mysql_num_rows(). p.s: se stai imparando a usare mysql, ti consiglio di non imparare le funzioni "mysql_", ma di usare mysqli.

    Ciao!

  8. #8
    Guest

    Predefinito

    Non ho capito bene il sistema che mi stai indicando...
    Allroa: io gli faccio eseguire la wuery con SELECT e mi trova tutti gli ID in cui password e username corrispondono, poi con mysql_num_rows() vedo quante righe ci sono e se mi dà 0 lo mando sul login fallito e se mi fa 1 lo mando sul login riuscito?

    Ah, grazie del consiglio..che vantaggi comporta mysqli?

  9. #9
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,270

    Predefinito

    Beh, mysqli è una libreria "nuova", mentre "mysql_" sarà ben presto considerato deprecato.

    p.s: va bene utilizzare anche PDO.

    Per altri approfondimenti vedi qui.

    Ciao!

Regole di scrittura

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