Visualizzazione risultati 1 fino 9 di 9

Discussione: Problema login utente

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

    Predefinito Problema login utente

    Salve.

    Ho fatto da un po di tempo una pagina dove gli vengono inviati dei dati tramite POST da un form.

    Dopo molte prove, ho notato che:

    1-i post vengono inviati e ricevuti correttamente.
    2-la variabile "$prova" è FALSE (e quindi, credo che non venga effettuata correttamente la query).

    quindi posto la sintassi della query:

    Codice PHP:
    mysql_select_db("my_alemoppo",$db);
    $query="SELECT livello FROM utenti WHERE password = $pass AND nick = $nick";
    $prova=mysql_query($query,$db);
    ...naturalmente esiste un database con tabella utenti e colonne password e nick (ed altri...).

    Posto anche tutta la pagina:

    Codice PHP:
    <?php
    session_start
    (); //elimino eventuali sessioni aperte
    session_unset();
    session_destroy();
    session_start(); //apro una nuova sessione
    ?>
    <html>
    <head>
    <title>
    login...alemoppo.altervista.org
    </title>
    Attendere il login...
    <?php
    $db
    =mysql_connect("localhost","alemoppo", "");
    if(
    $db == FALSE)
    {
    ?>
    <script language="Javascript">
    alert("Errore nella connessione nel database...");
    setTimeout("annulla()", 100);
    </script>
    <?php
    }
    else
    {
    $nick=$_POST['nick'];
    $pass=$_POST['pass'];
    mysql_select_db("my_alemoppo",$db);
    $query="SELECT livello FROM utenti WHERE password = $pass AND nick = $nick";
    $prova=mysql_query($query,$db);
    while(
    $c=mysql_fetch_row($prova))
    {
    $level=$c[0];
    }
    echo
    $level;
    if(
    $level)
    {
    $_SESSION['livello']=$level;
    $_SESSION['nick']=$nick;
    alert("connessione accettata!");
    }
    else
    {
    ?><script language="Javascript">
    alert("Errore: password errata! (IN COSTRUZIONE :-) )");
    setTimeout("annulla()", 10000);
    </script>
    <?php
    }
    }
    ?>
    <script language="Javascript">
    function annulla()
    {

    window.navigate('index.php');
    }
    </script>
    </body>
    </html>
    Grazie per l'aiuto

    CIAO!

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Appena ho visto il codice della pagina ho notato questo:
    Codice PHP:
    <?php
    session_start
    (); //elimino eventuali sessioni aperte
    session_unset();
    session_destroy();
    session_start(); //apro una nuova sessione
    ?>
    1. Devi dichiarare una sola session_start(), per aprire le sessioni.
    2. session_destroy più che metterla nella pagina di login la dovreste mettere nella pagina di logout, visto che la session_destroy() distrugge tutte le sessioni.

    Invece di quel codice metti cosi:
    Codice PHP:
    <?php
    session_start
    (); // Apro le sessioni.
    session_register() // Mi preparo per l'inizializzazione di nuove sessione
    ?>
    Se non sbaglio già avevi aperto una nuova discussione, dove noi ti abiamo detto in + utenti di postare il codice, cmq per il resto non ho ancora visto.

    quello e la prima cosa che ho notato.

    P.S. : Per il resto dovrebbe andare tutto bene, prima di utilizzare le sessioni ricordati di registrarle cosi: session_register("nome_sessione").
    Ultima modifica di sevenjeak : 03-01-2009 alle ore 17.07.40

    Sevenjeak
    Software developer and much more

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

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Se non sbaglio già avevi aperto una nuova discussione, dove noi ti abiamo detto in + utenti di postare il codice, cmq per il resto non ho ancora visto.
    Ciao!,

    Credo che ti stai confondendo con qualche altro post! : In verità l'avevo messo dalla prima risposta tutto il codice, ma nessuno mi ha più risposto!!!

    ...comunque adesso provo con session_register() ... (ma perchè l'altro volta dove avavo il problema con le sessioni, non me lo ha detto nessuno di questa funzione??

    Grazie,

    CIAO!

  4. #4
    Guest

    Predefinito

    La query è errata, corretta verrebbe
    Codice PHP:
    $query="SELECT livello FROM utenti WHERE password = '$pass' AND nick = '$nick'";
    Tra l'altro c'è una sql-injection, quindi modificherei ulteriormente la query con
    Codice PHP:
    $query="SELECT livello FROM utenti WHERE password = '".mysql_real_escape_string($pass)."' AND nick = '".mysql_real_escape_string($nick)."'";
    Ciao

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

    Predefinito

    stoner: 6 un mito !!!!!

    Grazie mille!!

    p.s. se riuscissi anche a risolvermi il problema su "basi per siti web" che si chiama: immagine coordinate assolute", te ne sarei MOOLTO grato.

    Ti ringrazio ancora,

    CIAO!

  6. #6
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,769

    Predefinito

    Cmq oltre a quello dicevo anche che all'inizio hai inserito due session_start(), che serve per aprire le sessioni e una session_destroy() che dovresti metterla quando fai il logout ansiche il login perche serve per chiudere le sessioni.
    Ultima modifica di sevenjeak : 04-01-2009 alle ore 10.49.36

    Sevenjeak
    Software developer and much more

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

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Cmq oltre a quello dicevo anche che all'inizio hai inserito due session_start(), che serve per aprire le sessioni e una session_destroy() che dovresti metterla quando fai il logout ansiche il login perche serve per chiudere le sessioni.
    Quel codice l'ho visto da un'altra parte (forse, in questo stesso forum).
    Comunque (mi sembra) c'era scritto che aprivo una sessione e (per cancellare una nel caso in cui ce ne fosse stata un'altra) la richiudevo. (in modo che la sessione sia azzerata certamente). Poi, la (ri)apro una NUOVA e questa sono sicuro che è vuota.

    p.s. io di sessioni non mi intendo assolutamente (ho imparato adesso)... Ti dico quello che ho capito ...

    Grazie,

    CIAO!

  8. #8
    Guest

    Predefinito problema analogo login utente

    Ciao a tutti,

    premetto che mi sono appena addentrato nel mondo delle pagine dinamiche, per cui mi scuso se la mia richiesta potrò apparire banale a molti. Francamente, non so nemmeno se questa sia la discussione giusta per porre il mio problema, ma avendo visto identico oggetto, posto qui, approfittandone.

    Vado al dunque.

    Per costruire il mio sito sto usando dreamweaver 8, col quale mi trovo abbastanza bene.

    Dopo avere sudato, manuale alla mano, per fare una pagina di registrazione in cui l'utente mi fornisce i suoi dati, chiedendo la registrazione al sito, ho ora un problema che a me pare inspegabile.

    Ho preparato una pagina di login, con due campi, uno per il nome utente e uno per la password (assegnate dall'amministratore del sito) ed un pulsante di invio dati.

    Il comportamento server che io ho assegnato al modulo di login dovrebbe consentire a login riuscito di accedere alla homepage del sito, in caso contrario restituire altra pagina.
    Ho seguito alla lettera (almeno credo) le istruzioni del manuale, ma quando nelle mie prove io inserisco dal browser le credenziali di accesso (presenti nel database MySql) non succede nulla. O meglio, qualcosa succede: il browser tenta infatti l'apertura della stessa pagina di login (index.php), pur non riuscendovi, poichè si ferma ad un tentativo di caricamento ma la finesra resta completamente bianca e mi compare la scritta "fine" in basso a sinistra.

    La stessa cosa accade sia con dati esatti e sia con dati sbagliati.

    Qualcuno sa aiutarmi?

    Grazie.


    Ecco il codice generato da DW:

    Codice PHP:
    <?php require_once('Connections/login_prometeo.php'); ?>
    <?php
    mysql_select_db
    ($database_login_prometeo, $login_prometeo);
    $query_login_prometeo = "SELECT * FROM login_utente";
    $login_prometeo = mysql_query($query_login_prometeo, $login_prometeo) or die(mysql_error());
    $row_login_prometeo = mysql_fetch_assoc($login_prometeo);
    $totalRows_login_prometeo = mysql_num_rows($login_prometeo);
    ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
    session_start();
    }

    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset(
    $_GET['accesscheck'])) {
    $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }

    if (isset(
    $_POST['userid'])) {
    $loginUsername=$_POST['userid'];
    $password=$_POST['password'];
    $MM_fldUserAuthorization = "";
    $MM_redirectLoginSuccess = "/homepage.html";
    $MM_redirectLoginFailed = "/index.php";
    $MM_redirecttoReferrer = false;
    mysql_select_db($database_login_prometeo, $login_prometeo);

    $LoginRS__query=sprintf("SELECT userid, password FROM login_utente WHERE userid='%s' AND password='%s'",
    get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password));

    $LoginRS = mysql_query($LoginRS__query, $login_prometeo) or die(mysql_error());
    $loginFoundUser = mysql_num_rows($LoginRS);
    if (
    $loginFoundUser) {
    $loginStrGroup = "";

    //declare two session variables and assign them
    $_SESSION['MM_Username'] = $loginUsername;
    $_SESSION['MM_UserGroup'] = $loginStrGroup;

    if (isset(
    $_SESSION['PrevUrl']) && false) {
    $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
    }
    header("Location: " . $MM_redirectLoginSuccess );
    }
    else {
    header("Location: ". $MM_redirectLoginFailed );
    }
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <!-- DW6 -->
    <head>
    <!-- Copyright 2005 Macromedia, Inc. All rights reserved. -->
    <title>Calendar</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" href="file:///C|/Users/The principal/Desktop/SitoPrometeoLeggero/mm_travel2.css" type="text/css" />
    <script language="JavaScript" type="text/javascript">
    //--------------- LOCALIZEABLE GLOBALS ---------------
    var d=new Date();
    var monthname=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
    //Ensure correct for language. English is "January 1, 2004"
    var TODAY = monthname[d.getMonth()] + " " + d.getDate() + ", " + d.getFullYear();
    //--------------- END LOCALIZEABLE ---------------
    </script>
    <style type="text/css">
    <!--
    p.MsoNormal {mso-style-parent:"";
    margin-top:0cm;
    margin-right:0cm;
    margin-bottom:10.0pt;
    margin-left:0cm;
    line-height:115%;
    font-size:11.0pt;
    font-family:"Calibri","sans-serif";
    }
    p.MsoNormal1 {mso-style-parent:"";
    margin-bottom:.0001pt;
    font-size:12.0pt;
    font-family:"Times New Roman","serif";
    margin-left:0cm; margin-right:0cm; margin-top:0cm}
    div.Section1 {page:Section1;}
    p.MsoNormal2 {mso-style-parent:"";
    margin-bottom:.0001pt;
    font-size:12.0pt;
    font-family:"Times New Roman","serif";
    margin-left:0cm; margin-right:0cm; margin-top:0cm}
    .Stile1 {font-size: 14px}
    .Stile2 {font-size: 16px}
    -->
    </style>
    </head>
    <body bgcolor="#C0DFFD">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr bgcolor="#3366CC">
    <td width="69" colspan="2" rowspan="2" nowrap="nowrap"><img src="prometeo.jpg" alt="Header image" width="77" height="125" border="0" /></td>
    <td width="316" height="63" id="logo" valign="bottom" align="center" nowrap="nowrap"><div align="center">Prometeo</div></td>
    <td width="600">&nbsp;</td>
    </tr>
    <tr bgcolor="#3366CC">
    <td height="64" id="tagline" valign="top" align="center"><div align="center">Associazione senza scopo di lucro</div></td>
    <td width="600">&nbsp;</td>
    </tr>
    <tr>
    <td colspan="4" bgcolor="#003366"><img src="file:///C|/Users/The principal/Desktop/SitoPrometeoLeggero/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
    </tr>

    <tr bgcolor="#CCFF99">
    <td width="8" bgcolor="#FFFFFF">&nbsp;</td>
    <td height="25" colspan="3" bgcolor="#FFFFFF" id="dateformat">&nbsp;</td>
    </tr>
    <tr>
    <td colspan="4" bgcolor="#003366"><img src="file:///C|/Users/The principal/Desktop/SitoPrometeoLeggero/mm_spacer.gif" alt="" width="1" height="1" border="0" /></td>
    </tr>
    </table>
    <h1 align="center" class="bodyText">&nbsp;</h1>
    <p align="center" class="bodyText Stile2">Benvenuto nel sito web di Prometeo </p>
    <p align="center" class="bodyText">Al momento l'accesso &egrave; consentito ai soli utenti autorizzati.</p>
    <p align="center" class="bodyText">Per ottenere le credenziali di accesso, rivolgersi allo staff di Prometeo, all'indirizzo e-mail [email]prometeoweb@altervista.org[/email] </p>
    <div align="center">
    <div align="center">
    <table width="355">
    <tr bgcolor="#99FF66">
    <td width="347" height="328"><p align="center">PREGO, ESEGUIRE IL LOGIN</p>
    <p align="center">&nbsp;</p>
    <form ACTION="<?php echo $loginFormAction; ?>" id="Modulo_login" name="Modulo_login" method="POST">
    <label>
    <div align="center">nome utente <br />
    <input name="userid" type="text" id="userid" />
    </div>
    </label>
    <p>
    <label>
    <div align="center">
    <div align="center"><br />
    password <br />
    <input name="password" type="password" id="password" />
    </div>
    </label>
    <div align="center"></div>
    <label>
    <div align="right">
    <div align="right"><br />
    <br />
    Login
    <input type="submit" name="Submit" value="Invia" />
    </div>

    </label>
    </form> </td>
    </tr>
    </table>
    </div>
    <p align="center" class="bodyText Stile1">&nbsp;</p>
    </body>
    </html>
    <?php
    mysql_free_result
    ($login_prometeo);
    ?>
    *Usa gli appositi TAG per postare del codice*
    Ultima modifica di prometeoweb : 05-01-2009 alle ore 12.06.14

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

    Predefinito

    Crea una nuova discussione: qui è difficile che qualcuno verrà a risponderti!!

Regole di scrittura

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