Visualizzazione risultati 1 fino 18 di 18

Discussione: errore php/mysql

  1. #1
    Guest

    Predefinito errore php/mysql

    sono passato da poco al db di altervista, prima usavo freesql come db esterno.
    Passando al db di altervista mi da un errore. dopo aver effettuato una query se provo a utilizzare la variabile di risultato ottengo
    supplied argument is not a valid MySQL result resource
    errore che non avevo prima con l'altro db. Ho aggiornato i dati e non capisco proprio da cosa possa dipendere.

  2. #2
    Guest

    Predefinito

    Eh.. posta il codice intanto, altrimenti non possiamo fare nulla.

  3. #3
    Guest

    Predefinito

    Codice PHP:
    $connect_login = mysql_connect($_SESSION["db_host_login"], $_SESSION["db_user_login"], $_SESSION["db_password_login"]);
    $connect_login;
    $db_selected_login = mysql_select_db($_SESSION["db_name_login"], $connect_login);
    $db_selected_login;
    $secure_user=mysql_escape_string(strtolower($_POST["social_user"]));
    $secure_passwd=mysql_escape_string($_POST["social_passwd"]);
    $query_login="SELECT * FROM smf_members WHERE memberName = '".$secure_user."' AND passwd = password('".$secure_passwd."')";
    if (
    $_SESSION["debug"]==1) echo "<b>Debug info: </b>".$query_login."<br>";
    $result_login=mysql_query($query_login,$connect_login);
    echo
    $result_login;
    if (
    mysql_num_rows($result_login)>0) {
    while (
    $row = mysql_fetch_assoc($result_login)) {
    la riga incriminata è il mysql_num_rows, ma se la elimino e provo il fetch da lo stesso errore

  4. #4
    Guest

    Predefinito

    C'è un errore:
    Codice PHP:
    $query_login="SELECT * FROM smf_members WHERE memberName = '".$secure_user."' AND passwd = password('".$secure_passwd."')";
    cos'è password(..)? E' una funzione che hai scritto del php che ti restituisce qualcosa (un hash per esempio? Se è così
    Codice PHP:
    $query_login="SELECT * FROM smf_members WHERE memberName = '".$secure_user."' AND passwd = '".password($secure_passwd)."'";
    altrimenti
    Codice PHP:
    $query_login="SELECT * FROM smf_members WHERE memberName = '".$secure_user."' AND passwd = '".$secure_passwd."'";

  5. #5
    Guest

    Predefinito

    no password() è una funzione sql per hashare le password ;)
    prova una query così
    Codice PHP:
    SELECT password('prova')
    ti restituisce la parola prova hashata da sql.

    Cmq ripeto che con il db di freesql funzionava perfettamente, non capisco cosa possa avere quello di altervista di diverso

  6. #6
    Guest

    Predefinito

    ah.. non la conoscevo.. comunque hai controllato che la connessione sia effettivamente stabilita? Perchè prelevi i dati dalla sessione? I dati del db non cambiano mai, puoi impostarli come costanti.

  7. #7
    Guest

    Predefinito

    mi servirà spostarlo in futuro, quindi li ho impostati in sessione. Ma non credo che questo possa influenzare il risultato no?

  8. #8
    Guest

    Predefinito

    No, controlla comunque che la connessione sia stata effettuata, ed eventualmente posta i dati che hai nelle variabili di sessione, magari sono sbagliati.

    #edit al limite leva la funzione password e scrivitela a mano, forse l'attuale versione di MySQL usata da AV non la supporta.
    Ultima modifica di stoner : 01-09-2009 alle ore 16.50.35

  9. #9
    Guest

    Predefinito

    come controllo la connessione?

    i dati sono questi:
    Codice PHP:
    $_SESSION["db_host_login"]="localhost"; //host
    $_SESSION["db_user_login"]="lamalennyrepo"; //utente
    $_SESSION["db_password_login"]="";//password
    $_SESSION["db_name_login"]="my_lamalennyrepo"; //nome database

  10. #10
    Guest

    Predefinito

    Ho editato il post rileggilo. Comunque, in linea di massima
    Codice PHP:
    $connect_login = mysql_connect($_SESSION["db_host_login"], $_SESSION["db_user_login"], $_SESSION["db_password_login"]) or die("Errore connessione");
    ..
    Codice PHP:
    $db_selected_login = mysql_select_db($_SESSION["db_name_login"], $connect_login) or die("Errore selezione db");

  11. #11
    Guest

    Predefinito

    si connette correttamente ma da errore nella selezione del database. Il nome del db non dovrebbe essere my_username?
    Ultima modifica di lamalennyrepo : 01-09-2009 alle ore 17.07.05

  12. #12
    Guest

    Predefinito

    ovviamente nel tuo caso, visto che il tuo username è lamalennyrepo, devi indicare my_lamalennyrepo


    ciao!

  13. #13
    Guest

    Predefinito

    $_SESSION["db_name_login"]="my_lamalennyrepo";
    $db_selected_login = mysql_select_db($_SESSION["db_name_login"], $connect_login);
    $db_selected_login;

    a me sembra corretto

  14. #14
    Guest

    Predefinito

    dopo ogni funzione mysql_* metti un or die(mysql_error());

    PS: ma perchè metti sempre quelle variabili lì in mezzo al codice senza motivo?


    ciao!

  15. #15
    Guest

    Predefinito

    si ho copiato solo un pezzo, quella variabile era nell'if per vedere se la funzione va:

    $db_selected_login = mysql_select_db($_SESSION["db_name_login"], $connect_login);
    if (!$db_selected_login) echo "Errore connessione2";

    ad ogni modo quello che non capisco è perchè da errore nella scelta del db

  16. #16
    Guest

    Predefinito

    Ripeto, scrivi così:
    mysql_select_db($_SESSION["db_name_login"], $connect_login) or die(mysql_error());

    e assicurati che le variabili vengano popolate correttamente:
    print_r($_SESSION);


    ciao!

  17. #17
    Guest

    Predefinito

    Access denied for user ''@'localhost' to database 'my_lamalennyrepo'

    la variabile di sessione è corretta

  18. #18
    Guest

    Predefinito

    Non indichi l'user.
    Posta la parte in cui tenti la connessione, per intero.


    Ciao!

Regole di scrittura

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