Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Domanda su Login...

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150

    Domanda su Login...

    Allora, comincio col dire che sto imparando, quindi il codice può essere strano, e ridondante agli occhi di un esperto...

    Detto ciò...

    Io vorrei fare un login ad un database tramite un form... la pagina login.php, si collega a quella che contiene lo script php e che si chiama dologin.php...

    come ragionamento ci arrivo a come si dovrebbe fare, ma una volta che vado a scriverlo, mi restituisce sempre che l'utente non è registrato e di conseguenza non può fare il login...

    Vi posto pure il codice dello script in dologin.php, così magari mi aiutate a capire... (so che si dovrebbe fare con le sessioni, ma non avendole capite bene, comincio a sperimentare con un metodo rudimentale, imposto un campo online nel Db... e ogni volta che uno si logga o slogga il campo viene settato rispettivamente a si oppure a no...)


    <?

    $query_login = "SELECT nome FROM utenti WHERE online='no'";

    $nome_db= mysql_query($query_login, $connessione);


    while (mysql_fetch_array($nome_db)) {

    if ($nome == $nome_db) { echo "Clicca <a href=\"index.php\"> QUI </a> per loggarti"; exit;}

    else { echo "Mi spiace, ma devi registrarti, per provvedere vai <a href=\"reg.php\"> QUI</a>.
    "; exit;}
    }
    ?>

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    1,141
    se $nome è la login che l'utente inserisce nella form di login, il dato va recuperato in $_POST o $_GET a seconda di quello che hai impostato nel tag form.
    Esempio:
    <form method="post" action="dologin.php"....>
    <input type="text" name="nome" value="">
    ....

    nella pagina dologin.php
    $nome=$_POST['nome'];


    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    ho provato ad inserire il codice che mi hai detto... in questo modo

    <?
    $nomeins=$_POST['nome'];

    $query_login = "SELECT nome FROM utenti WHERE online='no'";

    $nome_db= mysql_query($query_login, $connessione);


    while (mysql_fetch_array($nome_db)) {

    if ($nomeins == $nome_db) { echo "Clicca <a href=\"index.php\"> QUI </a> per loggarti"; exit;}

    else { echo "Mi spiace, ma devi registrarti, per provvedere vai <a href=\"reg.php\">QUI</a>.
    "; exit;}
    }
    ?>


    ma il risultato è sempre lo stesso, lo vede ancora come nome inesistente nel DB...

  4. #4
    (so che si dovrebbe fare con le sessioni, ma non avendole capite bene, comincio a sperimentare con un metodo rudimentale, imposto un campo online nel Db... e ogni volta che uno si logga o slogga il campo viene settato rispettivamente a si oppure a no...)
    ma gia' tanto che stai imparando non ti conviene imparare il metodo corretto?...

    il tuo ragionamento del campo del db non e' del tutto giusto, tu stai dando per scontato che l'utente clicchi il tasto di logout per sconnettersi, ma non e' sempre cosi, alle volte puo' anceh chiudere la fienstra con al x o addirittura non sloggarsi, spegerne il pc e quando la volta dopo tenta di connettersi, non ci riesce.

    fai cosi

    <?
    $query = "SELECT COUNT(*) FROM utenti WHERE login = '$login' AND pwd = '$pwd'";
    $res = mysql_query($query);
    $row=mysql_fetch_row($res);

    if ($row[0]==1) $login=true; else $login=false;

    session_start();
    if ($login) $_SESSION[login]=true;
    ?>

    ovviamente dalla select puoi farti restituire tutti i campi che ti servono, (nome, cognome dell'utent eetc)

    e in tutte le pagine del sito le inizi con questo codice

    <?
    session_start();
    //se la variabile di sessione non e' settata faccio un redirect alla pagian di //login
    if (!$_SESSION[login]) header(location: "login.php");
    ?>
    http://www.mcganass.com

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Perfetto !!!

    Funziona !!!

    ora non mi resta che sistemare la pagina dove dice quanti utenti online ci sono (ovviamente compreso quello appena entrato )

    (quindi se tutto va "bene" ci risentiamo qui tra poco...)

    Grazie mille a chi mi ha risposto...

    Restate con noi e non cambiate thread... sicuramente avrò bisogno di una mano :P

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Rieccomi..

    Allora ho messo...

    <?
    session_start();
    //se la variabile di sessione non e' settata faccio un redirect alla pagian di //login
    if (!$_SESSION[nome]) header(location: "login.php");
    ?>

    nella pagina dei presenti online, cambiando opportunamente login in nome, ovviamente per far combaciare i dati con il db...

    ma non capisco perchè, continua a darmi errore sulla linea della If...

    ho controllato pa pagina che passa la variabile nome, e tutti i campi sono passati da login a nome per evitare incongruenze... come mai capita ciò ?

    Capisco di essere scassabip... ma non ci posso fare niente...

  7. #7
    errore mio
    la sintassi dell'header non te l'ho scritta
    corretta

    controllala qui

    http://it2.php.net/manual/en/function.header.php
    http://www.mcganass.com

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    150
    Perfetto, ora funzia bene... c'è solo un piccolo problema, non mi fa vedere la lista dei presenti... prima me la faceva vedere grazie a questo piccolo pezzo di codice...

    <?

    $query_sel= "SELECT * FROM utenti WHERE nome='$nome'";

    $result_sel = mysql_query($query_sel, $connessione);

    $row= mysql_fetch_array($result_sel);

    while ($row == $nome)

    {?>

    <table align="center" width="600" border="2">
    <tr align="center">
    <td align="center" width="25%"><? echo "<a href=\"view.php?nome=$row[nome]\"> $row[nome]</a> "; break; ?> </td>
    </tr>
    </table>

    <? } ?>


    o meglio, dalle parti della Select, era appena diverso, perchè facevo una ricerca sul campo online='si', quindi secondo logica (mia) ho provato a cambiarlo in modo che prendesse in esame la variabile passata prima... ma non mi fa più vedere il nome dell'utente collegato..

    sotto ci ho messo dell'altro codice per contare i presenti online, ed effettivamente mi dice che ne sta connesso uno solo...

    come posso fare ?

    // Risolto risolto... solo un ultima cosa... ora il numero degli online mi rientra nella tabella, subito sotto la lista di nomi... quando invece prima stava fuori dalla tabella...

    <?

    $query_sel= "SELECT nome FROM utenti WHERE $_SESSION[nome]=TRUE";

    $result_sel = mysql_query($query_sel, $connessione);

    $row= mysql_fetch_array($result_sel);

    while ($row == $nome)

    {?>

    <table align="center" width="600" border="1">
    <tr align="center">
    <td align="center" width="25%">
    <table align="center" border="2">
    <tr>
    <td align="center"> <? echo "<a href=\"view.php?nome=$row[nome]\"> $row[nome]</a> "; break; ?></td>
    </tr>
    </table>
    </td>
    </tr>
    </table>



    <? } ?>

    <p Align=center>
    <?
    $query = "SELECT COUNT(*) FROM utenti WHERE $_SESSION[nome]=TRUE";
    $result = mysql_query($query);
    $num = mysql_num_rows($result);
    echo "Trovati <a href=\"index.php\">$num</a> Pg Online";
    ?>
    </p>

    Questo è il codice...

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.