Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 40

Discussione: Problema Login

  1. #1
    Guest

    Post Problema Login

    Ciao a tutti, sto cercando di creare uno script di login con dei ruoli...ecco come è fatto:
    ====UTENTI====
    ID|USERNAME|PASSWORD|RUOLO
    1|davide|davide|1
    2|prova|prova|2
    ====RUOLO====
    ID|NOME
    1|Admin
    2|Extra
    3|Utente
    In pratica dopo il login se user, pass e ruoli sono corretti dovrebbe mostrare i dati...
    login2.php
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password
    $ruolo = mysql_query("SELECT ruolo FROM login"); // id ruolo -> login



    $userquery = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $passquery = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $idruolo = mysql_query("SELECT id FROM ruolo"); // id ruolo -> ruolo

    if($username = $userquery && $password = $passquery && $ruolo = $idruolo) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password' and ruolo = '$ruolo'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {

    $mioruolo = mysql_query("SELECT nome FROM ruolo WHERE id = '$idruolo'");


    echo
    "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$mioruolo</b>"; //$row[DATO]


    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Lo sto testando in locale e mi da:
    Notice: Undefined index: username in login2.php on line 31

    Notice: Undefined index: password in login2.php on line 32
    Sarebbe:
    Codice PHP:
    $username = $_POST['username']; // username
    $password = $_POST['password']; // password
    Grazie 1000...Ciao Davide! ^^

  2. #2
    Guest

    Predefinito

    Ti dice che non esistono i post che hai inserito: controlla nel file html che manda a login2.php l' attributo "name" dei campi dove si inserisce l' username e la password.

  3. #3
    Guest

    Predefinito

    Ecco il codice:
    login.php
    Codice PHP:
    <?php

    require("config.php");
    myheader();



    echo
    "<h1>Login<h1>";

    echo
    "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>"
    ;


    mysql_close($db);


    myfooter();
    ?>
    E' giusto perchè i campi si chiamano username e password e sono via $_POST, infatti per questo li richiamo!

  4. #4
    Guest

    Predefinito

    ho provato a scriverlo in locale, a me funziona. Quel problema si verifica solo quando non è stato mandato niente...

  5. #5
    Guest

    Predefinito

    Allora quando vado in:
    http://localhost/login/login2.php
    Mi spunta quell'errore...!
    Invece quando mi loggo non mi spunta niente!
    Invece mi dovrebbero spuntare i dati:
    Codice PHP:
    echo "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$mioruolo</b>"; //$row[DATO]
    ...dopo ho cambiato:
    Codice PHP:
    $username = $_POST['username']; // username
    $password = $_POST['password']; // password
    in:
    Codice PHP:
    $username = $_POST["username"]; // username
    $password = $_POST["password"]; // password
    Ma da sempre lo stesso errore invece che Dati Errati!
    Perchè non funziona?
    Grazie!...Ciao Davide ^^

  6. #6
    Guest

    Predefinito

    Ah! E' normale che ti esce quell' errore allora! Se gli chiedi il POST lo devi anche inviare!
    Per quando ti loggi invece un errore è presente nell' if: l econdizioni devono essere indicate con un doppio uguale:
    Codice PHP:
    if($username == $userquery && $password == $passquery && $ruolo == $idruolo)
    La stessa cosa vale per il while:
    Codice PHP:
    while ($row == mysql_fetch_array($result))

  7. #7
    Guest

    Predefinito

    Ok..
    Ma mi esce...Dati Errati!
    Anche se sono giusti (2/prova/prova/2)..
    Grazie! Ciao Davide ^^

  8. #8
    Guest

    Predefinito

    Controlla nel config.php se c'è qualche errore di logica (da ora in poi ci saranno errori di logica che sono molto più difficili da risolvere dei semplici errori di scrittura!)

  9. #9
    Guest

    Predefinito

    Ecco il codice...
    config.php
    Codice PHP:
    <?php

    # configurazione #

    // MySQL
    $db_host = "localhost";
    $db_user = "root";
    $db_password = "";
    $db_name = "davideweb";

    // Varie
    $sito = "http://localhost/login"; // senza "/" finale...
    $emailadmin = "root@localhost";
    $nomesito = "Area Riservata";
    $urlpann = "http://localhost/utenti/riservata.php";

    # altro #

    // Inizio la Cons..
    $db = mysql_connect($db_host, $db_user, $db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file config.php");
    mysql_select_db($db_name, $db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file config.php");


    # funzioni #

    function myheader() {
    ?>
    <html>
    <head>
    <title>Area Riservata</title>
    <style>
    body {
    background-color: black;
    color: white;
    font-size: 12px;
    }
    h1 {
    color: white;
    font-weight: bold;
    border-bottom: 1px solid gray;
    }
    a {
    color: #ffffff;
    text-decoration: none;
    }
    a:hover {
    color: #ffffff;
    font-weight: bold;
    text-decoration: underline;
    }
    </style>
    </head>
    <body>
    <?php
    } // Fine myheader()
    function myfooter() {
    ?>
    </body>
    </html>
    <?php
    } // Fine myfooter()
    ?>
    Ultima modifica di sIM : 26-04-2008 alle ore 12.50.03

  10. #10
    Guest

    Predefinito

    modifica il file login2.php così:
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);
    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    if(
    $username == $userquery[0] && $password == $passquery[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$row[ruolo]</b>"; //$row[DATO]


    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>
    In questo modo però il ruolo non lo leggo dalla tabella ruolo ma dalla tabella login. Non ho capito a cosa serve la tabella login; il campo ruolo di login e di ruolo contiene lo stesso valore? Se è così va bene questo codice, altrimenti mi devi dire qual è la differenza in modo da implementarla.

  11. #11
    Guest

    Predefinito

    Non va bene quello tuo, perchè è un semplice login...invece il mio è con i ruoli (autorizzazioni)...
    Tipo: User X è Admin, User O è Utente..
    Ecc...
    In pratica dalla tabella login si ricava: ID,User,Pass e ID del Ruolo che dopo deve corrispondere alla tabella dei Ruoli es:
    L'utente X si logga con user e pass giusti dopo per accedere ad una determinata pagina deve avere il ruolo di Extra e quindi per questo la ricerca del ruolo viene effettuata prima (quando si logga) in modo tale da memorizzarlo nella sessione per poi mostrare la pagina...
    Grazie!Ciao Davide ^^

  12. #12
    Guest

    Predefinito

    Allora aggiungi questo codice subito sotto l' echo all' interno del while:
    Codice PHP:
    $idruolo=$row[ruolo];
    $result = mysql_query("SELECT ruolo FROM ruolo WHERE id = '$idruolo'"); // id ruolo -> ruolo
    $ruolo = mysql_fetch_array($result);

  13. #13
    Guest

    Predefinito

    ok...ed invece quando devo sapere che ruolo ha?
    ...tipo se l'id della tabella login è 2, 2 = a Admin io come faccio a fare spuntare admin?
    Codice PHP:
    $result2 = mysql_query("SELECT * FROM ruolo WHERE id = '$idruolo'"); // nome -> ruolo
    $ruolo2 = mysql_fetch_array($result2);
    echo
    $ruolo[nome];
    Giusto?..Grazie 1000
    Ciao! ^^

    Edit:
    Ci sono riuscito, il problema è che non mi mostra il nome del ruolo :(
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT ruolo FROM login WHERE ruolo = '$username'"); // id ruolo -> db (da $username)
    $ruoloid = mysql_fetch_array($result);


    $result = mysql_query("SELECT id FROM ruolo WHERE id = '$ruoloid'"); // id ruolo -> ruolo (da $ruoloid)
    $idruolo = mysql_fetch_array($result);



    // Controllo i dati nel Database...
    if($username == $userquery[0] && $password == $passquery[0] && $ruoloid == $idruolo[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {

    $result = mysql_query("SELECT nome FROM ruolo WHERE id = '$idruolo'"); // nome -> ruolo (da $idruolo)
    $nomeruolo = mysql_fetch_array($result);

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$nomeruolo</b>"; //$row[DATO]



    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>
    In pratica il nome lo ricava dall'ID del ruolo, che è stato ricavato l'ID del ruolo nel login dall'username...
    Ciao davide, la tua pass e davide e tu 6
    Dovrebbe essere così:
    Ciao davide, la tua pass e davide e tu 6 Admin
    Prima ci ero riuscito... :(
    Grazie! Ciao Davide ^^

    Ri-Edit:
    Ho verificato se funzionavano $ruoloid e $idruolo[0] ma non mi mostra niente!
    In pratica:
    $idruolo = Id del ruolo nella tabella "ruolo"
    $ruoloid = Id del ruolo nella tabella "login" ricavato tramite username di accesso (sempre se è corretto)...
    Grazie...Ciao Davide! ^^

    Ri-Ri-Edit:
    Ecco il codice completo ^^
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT ruolo FROM login WHERE ruolo = '$username'"); // id ruolo -> db (da $username)
    $ruoloid = mysql_fetch_array($result);


    $result = mysql_query("SELECT id FROM ruolo WHERE id = '$ruoloid'"); // id ruolo -> ruolo (da $ruoloid)
    $idruolo = mysql_fetch_array($result);



    // Controllo i dati nel Database...
    if($username == $userquery[0] && $password == $passquery[0] && $ruoloid[0] == $idruolo[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {

    $result = mysql_query("SELECT nome FROM ruolo WHERE id = '$idruolo'"); // nome -> ruolo (da $idruolo)
    $nomeruolo = mysql_fetch_array($result);

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <i>$row[password]</i> e tu 6 <i>$nomeruolo</i> e id del login e <i>$ruoloid[0]</i> e quello del ruolo e <i>$idruolo[0]</i>"; //$row[DATO]



    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<i>Dati Errati!</i>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Grazie!
    Ultima modifica di sIM : 27-04-2008 alle ore 14.47.41

  14. #14
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,226

    Predefinito

    (Piacere) Prova così:
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT ruolo FROM login WHERE ruolo = '$username'"); // id ruolo -> db (da $username)
    $ruoloid = mysql_fetch_array($result);


    $result = mysql_query("SELECT id FROM ruolo WHERE id = '$ruoloid'"); // id ruolo -> ruolo (da $ruoloid)
    $idruolo = mysql_fetch_array($result);



    // Controllo i dati nel Database...
    if($username == $userquery[0] && $password == $passquery[0] && $ruoloid[0] == $idruolo[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {

    $result = mysql_query("SELECT nome,nomeruolo FROM ruolo WHERE id = '$idruolo'"); // nome -> ruolo (da $idruolo)
    while($temp = mysql_fetch_array($result)){
    $ruolo = $temp[nomeruolo];

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <i>$row[password]</i> e tu 6 <i>$nomeruolo</i> e id del login e <i>$ruoloid[0]</i> e quello del ruolo e <i>$idruolo[0]</i>"; //$row[DATO]
    }


    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<i>Dati Errati!</i>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Apprezzi l'aiuto? Offrimi un caffè!

  15. #15
    Guest

    Predefinito

    Non spunta niente!....e dopo quando ci vado da login2.php mi da errore nella 31 e 32 invece di dare "dati errati!"...
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT ruolo FROM login WHERE ruolo = '$username'"); // id ruolo -> db (da $username)
    $ruoloid = mysql_fetch_array($result);


    $result = mysql_query("SELECT id FROM ruolo WHERE id = '$ruoloid'"); // id ruolo -> ruolo (da $ruoloid)
    $idruolo = mysql_fetch_array($result);



    // Controllo i dati nel Database...
    if($username == $userquery[0] && $password == $passquery[0] && $ruoloid[0] == $idruolo[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {

    $result = mysql_query("SELECT id,nome FROM ruolo WHERE id = '$idruolo'"); // nome -> ruolo (da $idruolo)
    while($temp = mysql_fetch_array($result)){
    $ruolo = $temp[nomeruolo];

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <i>$row[password]</i> e tu 6 <i>$nomeruolo</i> e id del login e <i>$ruoloid[0]</i> e quello del ruolo e <i>$idruolo[0]</i>"; //$row[DATO]
    }


    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<i>Dati Errati!</i>";
    }

    mysql_close($db);

    myfooter();
    ?>

  16. #16
    Guest

    Predefinito

    Prova questo:

    Codice PHP:
    <?php

    $hostdb
    = "localhost";
    $userdb = "utente_tuo_db";
    $passdb = "";
    $dbname = "nome_tuo_db";

    $db = mysql_connect($hostdb, $userdb, $passdb) or die(mysql_error());
    mysql_select_db($dbname, $db) or die(mysql_error());

    myheader();

    echo
    "<h1>Login<h1>";


    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("select password, ruolo from login where username = ".$username, $db) or die(mysql_error());

    while (
    $dati = mysql_fetch_assoc($result)) {
    $passlogin = $dati['password'];
    $ruolologin = $dati['ruolo'];
    }


    // Controllo i dati nel Database...
    if($password == $passlogin) {


    session_register($username);
    session_register($password);
    session_register($ruolologin);


    echo
    "Ciao <i>".$username."</i>, la tua pass e <i>".$password."</i> e tu 6 <i>".$ruolologin."</i>";
    }
    else {
    echo
    "<i>Dati Errati!</i>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Fammi sapere se funziona... (il codice l'abbiamo elaborato io e mio cugino )


    Grazie,
    Ciao...
    Ultima modifica di heidi52 : 28-04-2008 alle ore 20.49.49

  17. #17
    Guest

    Predefinito

    Colonna sconosciuta 'davide' in 'where clause'
    Ti riposto il codice (ho aggiunto un if all'inizio e commentato la connessione, visto che l'ho gia inserita in "config.php"):
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    if(isset($_POST['loginok'])) {


    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("select password, ruolo from login where username = ".$username, $db) or die(mysql_error());

    while (
    $dati = mysql_fetch_assoc($result)) {
    $passlogin = $dati['password'];
    $ruolologin = $dati['ruolo'];
    }


    // Controllo i dati nel Database...
    if($password == $passlogin) {


    session_register($username);
    session_register($password);
    session_register($ruolologin);


    echo
    "Ciao <i>".$username."</i>, la tua pass e <i>".$password."</i> e tu 6 <i>".$ruolologin."</i>";
    }
    }
    else {
    echo
    "<i>Dati Errati!</i>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Invece ecco quello mio modificato:
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/



    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    if(isset($_POST['loginok'])) {

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    $result = mysql_query("SELECT username,ruolo FROM login WHERE ruolo = '$username'"); // id ruolo -> db (da $username)
    $ruolo_login = mysql_fetch_array($result);


    $result = mysql_query("SELECT id FROM ruolo WHERE id = '$ruolo_login'"); // id ruolo -> ruolo (da $ruoloid)
    $idruolo = mysql_fetch_array($result);



    // Controllo i dati nel Database...
    if($username == $userquery[0] && $password == $passquery[0]) {

    $dati = mysql_query("SELECT * FROM login WHERE username = '$username' and password = '$password'");

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($dati)) {

    $ruolo_query = mysql_query("SELECT id,nome FROM ruolo WHERE id = '$idruolo'");
    $ruolo = mysql_fetch_array($ruolo_query);

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <i>$row[password]</i> e tu 6 <i>$ruolo[0]</i> e id del login e <i>$ruolo_login[2]</i> e quello del ruolo e <i>$idruolo[0]</i>"; //$row[DATO]
    } // Fine degli estratti dal db...


    /* echo "<form method=\"POST\" action=\"login2.php\">
    <input type=\"text\" name=\"username\" size=\"20\" value=\"Username\"><br />
    <input type=\"password\" name=\"password\" size=\"20\" value=\"Password\"><br />
    <input type=\"submit\" value=\"Login &raquo;\" name=\"login\">
    </form>";
    */
    } // Fine tutto giusto...

    /*header("location: $urlpann")*/

    } // Fine: $_POST[''loginok]
    else {
    echo
    "<i>Dati Errati!</i>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Tutto ok, tranne: non mostra... $ruolo[0],$ruolo_login[2] e $idruolo[0]
    Grazie....Ciao Davide!! ^^

  18. #18
    Guest

    Predefinito

    Cioè il codice che ti ho dato non mostra il nome dell' admin? Strano, in locale funziona...
    Scrivi questo in login2.php:
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/
    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);
    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    if(
    $username == $userquery[0] && $password == $passquery[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result)) {
    $idruolo=$row["ruolo"];
    $result = mysql_query("SELECT ruolo FROM ruolo WHERE id = '$idruolo'"); // id ruolo -> ruolo
    $ruolo = mysql_fetch_array($result);

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$ruolo[ruolo]</b>"; //$row[DATO]



    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Ultima modifica di Tecnoman : 29-04-2008 alle ore 23.47.05 Motivo: riposto il codice

  19. #19
    Guest

    Predefinito

    Ok, Grazie ora funziona..ma io voglio memorizzare TUTTI i dati nelle sessioni ($varibile -> sessione)
    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/
    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result = mysql_query("SELECT username FROM login WHERE username = '$username'"); // username -> db
    $userquery = mysql_fetch_array($result);
    $result = mysql_query("SELECT password FROM login WHERE password = '$password'"); // password -> db
    $passquery = mysql_fetch_array($result);

    if(
    $username == $userquery[0] && $password == $passquery[0]) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result = mysql_query($query);


    while (
    $row = mysql_fetch_array($result)) {
    $idruolo=$row["ruolo"];
    $result = mysql_query("SELECT nome,id FROM ruolo WHERE id = '$idruolo'"); // id ruolo -> ruolo
    $ruolo = mysql_fetch_array($result);

    $userses = $row["username"];
    $passses = $row["password"];
    $ruoloses = $ruolo["id"];
    $idruolo2 = $row["ruolo"];
    $idut = $row["id"];
    $nomeruolo = $ruolo["nome"];

    session_register("userses");
    session_register("passses");
    session_register("ruoloses");
    session_register("idruolo2");
    session_register("idut");
    session_register("nomeruolo");

    echo
    "Ciao <i>$row[username]</i>, id e <b>$row[id]</b> la tua pass e <b>$row[password]</b> e tu 6 <b>$ruolo[nome]</b> e id del ruolo e <b>$ruolo[id]</b> e il del login e <b>$idruolo</b>"; //$row[DATO]



    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>
    In modo tale che quando l'utente va nella pagina x inserire gli articoli, se non ha il permesso o non è loggato allora fa il redirect ad un'altra pagina...le sessioni sono giuste?
    Id -> Sessione
    Username -> Sessione
    Password -> Sessione
    Ruolo -> Sessione
    Id -> Sessione
    Nome -> Sessione
    Grazie! Ciao Davide...

  20. #20
    Guest

    Predefinito

    Ma questo codice se i dati sono errati, darà errore mysql, perché se la password è errata, ovvio che non la trova nel database, no? (mi riferisco alle righe 35 e 36 del codice dato da te)

    Poi, a $result, sono assegnate tante cose, invece dev'essere assegnata solo una cosa.

    E quindi, per evitare questo, fai così:

    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/
    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result1 = mysql_query("SELECT username, password FROM login WHERE username = '$username'"); // username -> db
    $userquery = $result1['1'];
    $passquery = $result1['2'];
    if(
    $username == $userquery && $password == $passquery) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result2 = mysql_query($query);

    session_register("username");
    session_register("password");
    session_register("ruolo");

    while (
    $row = mysql_fetch_array($result2)) {
    $idruolo=$row["ruolo"];
    $result3 = mysql_query("SELECT ruolo FROM ruolo WHERE id = '$idruolo'"); // id ruolo -> ruolo
    $ruolo = mysql_fetch_array($result3);

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$ruolo[ruolo]</b>"; //$row[DATO]



    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>
    Fammi sapere se funziona...


    Grazie,
    Ciao...
    Ultima modifica di heidi52 : 30-04-2008 alle ore 14.32.34

  21. #21
    Guest

    Predefinito

    Va beh...questo non mi interessa...mi interessano le sessioni!!!
    Ciao! ^^

  22. #22
    Guest

    Predefinito

    sinceramente non capisco dove sia il problema per le sessioni; memorizza le variabili che stampi nelle sessioni

  23. #23
    Guest

    Predefinito

    Dico se memorizzo le sessioni dopo come faccio a ricavarle..es:
    L'utente Ciao deve entrare in admin.php ed ha i permessi Utente, quindi tramite le sessioni va a controllare se è possibile accedere a quella pagina..in tal kaso da errore che non puoi accedere perchè non ha i permessi oppure perchè non è loggato!
    Grazie..Ciao Davide! ^^

  24. #24
    Guest

    Predefinito

    Tu intanto aggiusta come ho messo sopra perché con quello tuo non funziona perché a $result sono assegnate tante cose e poi se la password è errata dà errore mysql.

    Poi usa questo per le sessioni:

    Codice PHP:
    <?php

    require("config.php");

    /* session_start();
    if(!session_is_registered(username)){ // Se non è loggato...
    header("location:login.php"); // Redirect...
    }*/
    myheader();




    echo
    "<h1>Login<h1>";


    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */

    $username = $_POST['username']; // username
    $password = $_POST['password']; // password



    $result1 = mysql_query("SELECT username, password, ruolo FROM login WHERE username = '$username'"); // username -> db
    $userquery = $result1['1'];
    $passquery = $result1['2'];
    $ruoloquery = $result1['3'];
    if(
    $username == $userquery && $password == $passquery) {

    $query = "SELECT * FROM login WHERE username = '$username' and password = '$password'";

    $result2 = mysql_query($query);

    session_register($username);
    session_register($password);
    session_register($ruoloquery);

    while (
    $row = mysql_fetch_array($result2)) {
    $idruolo=$row["ruolo"];
    $result3 = mysql_query("SELECT ruolo FROM ruolo WHERE id = '$idruolo'"); // id ruolo -> ruolo
    $ruolo = mysql_fetch_array($result3);

    echo
    "Ciao <i>$row[username]</i>, la tua pass e <b>$row[password]</b> e tu 6 <b>$ruolo[ruolo]</b>"; //$row[DATO]



    } // Fine degli estratti dal db...

    /*header("location: $urlpann")*/

    } // Fine tutto giusto...
    else {
    echo
    "<b>Dati Errati!</b>";
    }

    mysql_close($db);

    myfooter();
    ?>

    Però, senza offesa, sto perdendo la pazienza qui perché noi ti aggiustiamo il codice e tu lo rimetti a modo tuo ... eh... (senza offesa, eh )



    Ciao...

  25. #25
    Guest

    Predefinito

    Allora in quello tuo qualche cosa non va perchè non mostra TUTTI i dati, ma solo in parte..dovrebbe mostrare:
    - Id Utente
    - Id Ruolo
    - Id Ruolo Utente
    Questo sempre tramite $variabile[dato]..
    Grazie! Ciao Davide! ^^

  26. #26
    Guest

    Predefinito

    Se mi fai capire bene come sono fatti i campi e le tabelle del database dove tieni 'ste cose ce la posso fare a farti il codice perché non ho capito tanto

    Ciao...

  27. #27
    Guest

    Predefinito

    Se ho capito bene non sai come far capire alla pagina se deve mostrarsi o no all' utente; se è così potresti mettere all' inizio della pagina admin.php un if che controlla se la variabile $_SESSION['ruolo'] è impostata e se è uguale ad admin:
    Codice PHP:
    if((isset($_SESSION['ruolo'])) and ($_SESSION=="admin")) {
    //codice della pagina
    } else
    echo
    "Non puoi entrare, non disponi dell' autorizzaione necessaria!";

  28. #28
    Guest

    Predefinito

    Citazione Originalmente inviato da Tecnoman Visualizza messaggio
    Se ho capito bene non sai come far capire alla pagina se deve mostrarsi o no all' utente; se è così potresti mettere all' inizio della pagina admin.php un if che controlla se la variabile $_SESSION['ruolo'] è impostata e se è uguale ad admin:
    Codice PHP:
    if((isset($_SESSION['ruolo'])) and ($_SESSION=="admin")) {
    //codice della pagina
    } else
    echo
    "Non puoi entrare, non disponi dell' autorizzaione necessaria!";
    O_O
    Al massimo
    Codice PHP:
    if((isset($_SESSION['ruolo'])) and ($_SESSION['ruolo']=="admin")) {
    //codice della pagina
    } else
    echo
    "Non puoi entrare, non disponi dell' autorizzaione necessaria!";

  29. #29
    Guest

    Predefinito

    si, giusto, mi ero distratto un attimo...

  30. #30
    Guest

    Predefinito

    @heidi52: C'è lo schema!
    Codice PHP:
    /*
    #########STRUTTURA#########
    TABELLA: login
    ###########
    DATI: id - username - password - ruolo
    -----------------------------
    TABELLA: ruolo
    ###########
    DATI: id - nome
    */
    @phelpp: si è quello che volevo...ma se non ha inserito l'username???
    In pratica io vorrei che tramite l'username riconosca il ruolo...o qualcosa di simile.. ^^
    Grazie! Ciao Davide! :)

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

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