Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    mysqli_query e funzioni, restituisce sempre falso.

    Salve a tutti, vi illustro il problema:

    Ho questa funzione "login",
    Codice PHP:
    function login($email,$pwd,$connect){
    $pwd=md5($pwd);
    $query "SELECT * FROM admins WHERE email='$email' OR pwd='$pwd'";
    $result mysqli_query($connect,$query);


    if(
    mysqli_num_rows($result)>=1){ //se ho un risultato procedo ad assegnare le variabili di sessione 
            
    return true;
                
    }else { 
            return 
    false;
        
        }


    la riga $result=mysqli_query($connect,$query) mi restituisce sempre falso, anche quando dovrebbe essere vero.

    Ecco il file con la configurazione della connessione al database mysql.

    Codice PHP:
    $connect = @mysqli_connect($db_host,$db_admin,$db_pwd,$dn_name);

    if (
    mysqli_connect_errno()) {
        
    printf("Connection failed: %s\n"mysqli_connect_error());
        exit();

    E' la prima volta che utilizzo mysqli invece del "normale" mysql, scrivo codice con logica procedurale.
    Qualcuno di voi ha idea del perchè di questo comportamento? perchè mi restituisce sempre falso?

    Ho pensato che il problema potesse risiedere nella funzione mysqli_connect che non passava correttamente $connect, l'ho inserito come funzione da passare alla funzione al momento della chiamata, dovrebbe essere corretto per quel (poco) che ne so.

    Grazie in anticipo.

  2. #2
    prova a cambiare la riga di connesione e quella di $result così

    Codice PHP:
    $connect mysqli_connect($db_host,$db_admin,$db_pwd,$dn_name) or die(mysql_error()); 
    e

    Codice PHP:
    $result mysqli_query($connect,$query) or die(mysql_error()); 
    e vedi se una dei due ti fa errore e che tipo di errore
    uh? eh ? cosa?

  3. #3
    ho provato, non mi da nessun errore. Costruendo un ciclo if per vedere se mysql connect restituisce falso mi risulta che si connette correttamente.

    Sostituendo il codice che mi hai dato tu e richiamando la funzione login in questo modo:
    Codice PHP:
    if(login($_POST['email'],$_POST['pwd'],$connect)){
                
    session_builder($_POST['email'],$connect);
                include(
    './main.php');
        }else{
                echo 
    "[b]Accesso non consentito, verifica i tuoi dati.[/b]
    "
    ;
                echo 
    $login_form;
                
        } 
    Semplicemente lo script arriva correttamente ad eseguire la funzione login e poi alla query parte il die() e niente più.
    Non mi restituisce nessun errore, nada de nada. Sono veramente confuso.

  4. #4
    Prova a usare mysqli_error($connect) invece di mysql_error() per il debug.

  5. #5
    Ecco, ora vorrei trarre le mie conclusioni assieme a voi. Adesso funzione, dopo la prima correzione che ho ricevuto ho semplicemente incollato il link che mi è stato dato e anzichè esserci scritto $db_name come nella mia var c'era $dn_name ecco perchè non andava. Corretto questo funziona perfettamente.


    Vorrei capire perchè con la mia versione originale non funzionava, cosa era errato? Avete qualche sospetto?

    PS: mysqli_error è la funziona da utilizzare per visualizzare gli errori provenienti da mysqli, mysql_error non dava output.

    Vorrei anche far notare che ieri sera, dopo aver postato il messaggio ho convertito il codice affinchè girasse con mysql invece di mysqli e funzionava perfettamente quindi non dovrebbe essere un errore dovuto alla logica.

    Grazie comunque a tutti per l'aiuto.

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.