• User

    [Risolto] AIUTATEMI SFONDO IL PC! login php/mysql

    o ragazzi intanto ciao a tutti, sono nuovo del forum ^^, sto litigando da u paio d'ore con il pc, io dovrei fare una mini funzione per un login, se esiste nella tabella il nome utente e la password il codice deve farmi fare un redirect ad un'altra pagina, dunque:

    <?php
    $utente = $_POST['nome_utente'];
    $password = $_POST['password'];
    $connessione = mysql_connect('localhost', 'root');
    mysql_select_db('utenti', $connessione);
    $query = "SELECT utente, password
    FROM login
    WHERE utente = '$utente'
    AND password='$password'";

    $result = mysql_query($query);
      if (mysql_result() == '1') {
    

    $redirect = header("Location: http://www.teamferraristiroma.net");
    } else {
    print 'ERROR-You may not have confirmed' .
    'your account yet';
    }
    ?>

    COS'E' CHE NON VA???


  • User Attivo

    Prova a vedere se ti entra nel blocco del redirect..

    mettici un print "sono nel redir..."

    se non ti entra ti punti su un'altro problema..

    :ciauz:


  • User

    eh mi sa che mi sono spiegato male, il probl non è il redirect
    ma lo script. cioè io vorrei uno script che leggesse dalla tabella che ho fatto tutti i dati, verificasse se c'è un nome utente e una password uguali a quelle scritte e mandate allo script con il Form (dalla pagina precedente).
    non importa se fa il redirect, vorrei che facesse una cosa se trova nome utente e la pass e che scrivesse "passwrod e nome utente errato" se non la trovasse


  • User

    il classico login con verifica dalla tabella degli utenti registrati insomma 😉


  • User Attivo

    @zzmetalname said:

    eh mi sa che mi sono spiegato male, il probl non è il redirect
    ma lo script. cioè io vorrei uno script che leggesse dalla tabella che ho fatto tutti i dati, verificasse se c'è un nome utente e una password uguali a quelle scritte e mandate allo script con il Form (dalla pagina precedente).
    non importa se fa il redirect, vorrei che facesse una cosa se trova nome utente e la pass e che scrivesse "passwrod e nome utente errato" se non la trovasse

    Effettivamente pensavo che il problema fosse tutto lo script che avevi postato e ho puntato gli occhi su una parte critica.

    Guardando bene quella query non è il massimo..

    Ti indico una strada:

     
    if($nick & $password){
        $bd = mysql_connect($mysql_hostname, $mysql_user, mysql_password);
         mysql_select_db($mysql_database, $bd);
         $sql = mysql_query("SELECT password FROM admin WHERE nick =      '$nick'");
            if (mysql_num_rows($sql) == 0){
                --->Il Nick non c'è
            }elseif (mysql_result($sql,0,"password") != $password){
                --> c'è il nick ma la pass non corrisponde;
            }else{
                 -->utente trovato
            };
    
    

    Ti ho scritto la porzione importante, sistema tu i dettagli.

    :fumato:


  • User

    MZ grazie, ora vatutto anche il redirect, passerò una serata con in nervi distesi 😄 grazie ancora e anche a tutit coloro che danno una mano ai niubboni 😉


  • User Attivo

    @zzmetalname said:

    MZ grazie, ora vatutto anche il redirect, passerò una serata con in nervi distesi 😄 grazie ancora e anche a tutit coloro che danno una mano ai niubboni 😉

    Figurati, sono contento che hai risolto..

    l'importante è che ci sia la voglia di imparare e la pazienza poi tutti i problemi si risolvono..

    buona serata.

    :ciauz:


  • User Attivo

    scusami MZ una domanda, ma se fai un query del tipo:

    SELECT * FROM login WHERE utente = '$utente' AND password='$password'

    non è praticamente la stessa cosa di:

    $sql = mysql_query("SELECT password FROM admin WHERE nick = '$nick'");
    if (mysql_num_rows($sql) == 0){
    --->Il Nick non c'è
    }elseif (mysql_result($sql,0,"password") != $password){
    --> c'è il nick ma la pass non corrisponde;
    ?? vorrei capire 🙂 xkè cmq se non erro la prima tipologia di query se non combaciano ID e password, ti restituisce 0 con num_rows o false col fetch_row, indi x cui, x quale motivo seguire il procedimento che hai scritto? cioè, qual'è la differenza? il controllo id e password matchanti? lo stesso controllo nn viene effettuato dalla prima tipologia di query?


  • User Attivo

    @Pixelate said:

    scusami MZ una domanda, ma se fai un query del tipo:

    SELECT * FROM login WHERE utente = '$utente' AND password='$password'

    non è praticamente la stessa cosa di:

    $sql = mysql_query("SELECT password FROM admin WHERE nick = '$nick'");
    if (mysql_num_rows($sql) == 0){
    --->Il Nick non c'è
    }elseif (mysql_result($sql,0,"password") != $password){
    --> c'è il nick ma la pass non corrisponde;
    ?? vorrei capire 🙂 xkè cmq se non erro la prima tipologia di query se non combaciano ID e password, ti restituisce 0 con num_rows o false col fetch_row, indi x cui, x quale motivo seguire il procedimento che hai scritto? cioè, qual'è la differenza? il controllo id e password matchanti? lo stesso controllo nn viene effettuato dalla prima tipologia di query?

    Ciao,

    Si come hai scritto tu la query và bene, io preferisco la seconda forma, perchè a volte può essere utile sapere se è sbagliato il nick o la password per dare una diversa segnalazione all'utente.. in questo caso avrei potuto evitare fronzoli e andare diretto scrivendo la tua query, però oggi ero in vena di scrivere. 😄

    A parte gli scherzi, l'unica differenza fondamentalmente è quella, hai più controllo su quello che trovi e non trovi nella tabella.

    :ciauz:


  • User Attivo

    grazie 1000 per la spiegazione, 🙂 sia chiaro, la mia nn era una critica, anche xkè sicuramente a livello di "sicurezza" forse ciò che hai scritto tu, rispetto ad una semplice query è assolutamente un livello avanti.. era soltanto curiosità 🙂 xkè nn avevo mai visto una tale tipologia di codice 🙂 e imparare, dal momento che ho cominciato a darci di santa ragione con php da 1 mesetto, fa sempre bene 🙂

    grazie ancora per la pazienza 😄


  • Super User

    Bene,così sono tutti felici e contenti :D:D
    Segnalo come risolto 🙂
    Ciao!