Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    Aiuto con "Catchable fatal error"

    Allora sto migrando la mia intranet aziendale (quasi totalmente realizzata autonomamente) da php 4 a php 5.2 ho un problema (e spero che sia l'unico) visto che ho cominciato il passaggio da poco.

    In sostanza esce fuori l'errore: Catchable fatal error: Object of class Login could not be converted to string in /var/www/intranet_full/LoginClass.php on line 188.

    Non so come risolvere la cosa potete aiutarmi per favore?

    La funzione che crea il problema è (a fianco della riga problematica ho messo una dicitura):

    /**
    * Check for a login, first checking the presence of a uvalid session,
    * next checking for a cookie called weblogin
    * next checking parameters against a DB
    * Before Returining it Set the session
    *
    * @param string $username User name (from a form)
    * @param string $password Password (from a form)
    * @param int $remember If set, it save the login in a persistent cookie
    * @return boolean
    * @access public
    * @see registerLogin()
    */
    function checkLogin ($username='', $password='',$remember='') {
    $this->password=$password;
    $this->username=$username;
    if (session_is_registered('valid')) {
    $this->username=$_SESSION['username'];
    $this->valid=$_SESSION['valid'];
    $this->id=$_SESSION['id'];
    $this->cookie=$_SESSION['cookie'];
    return 1;
    } elseif (isset($_COOKIE['weblogin']) ) {
    $this->checkRemember($_COOKIE['weblogin']);
    return 1;
    } else {
    $password=md5($password); // MIA AGGIUNTA PER CODIFICA PASSWORD MD5
    $query = "SELECT * FROM Utenti WHERE username = '$username' AND password = '$password' AN valid = 1"; // <----- QUESTA E' LA RIGA CHE CREA PROBLEMI!!
    $result = $this->dsn->getRow($query);
    if(is_object($result)) {
    $this->registerLogin($result,$remember);
    return 1;
    }
    else {
    session_unset();
    session_destroy();
    return 0;
    }
    $db->disconnect();
    }
    }

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Se sia proprio quella riga la 188, direi che $username non sia una stringa ma un oggetto. Prova giocare un po' con var_dump() stile
    Codice PHP:
    var_dump($username);
    var_dump($password);

    $query "SELECT * FROM Utenti WHERE username = '$username' AND password = '$password' AND valid = 1"

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Fatti dei tentativi ma non cambia il risultato finale.

    Esce solo fuori una serie di variabili lunghissima.

  4. #4
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Sarebbe interessante il contenuto, pare che ci passi un oggetto e non una stringa.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  5. #5
    Domani dall'ufficio ti mando il risultato del var_dump.

    Ammettendo che sia un oggetto quello contenuto in $username come dovrei modificare il codice per prevenire l'errore?

  6. #6
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Dipende dal tipo di oggetto ma forse ce l'ha un campo col username.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  7. #7
    Questo è il risultato dell'istruzione: var_dump($username);

    object(Login)#4 (6) { ["id"]=> NULL ["username"]=> object(Login)#4 (6) { ["id"]=> NULL ["username"]=> *RECURSION* ["password"]=> NULL ["uvalid"]=> NULL ["dsn"]=> object(DB_mysql)#1 (26) { ["phptype"]=> string(5) "mysql" ["dbsyntax"]=> string(5) "mysql" ["features"]=> array(7) { ["limit"]=> string(5) "alter" ["new_link"]=> string(5) "4.2.0" ["numrows"]=> bool(true) ["pconnect"]=> bool(true) ["prepare"]=> bool(false) ["ssl"]=> bool(false) ["transactions"]=> bool(true) } ["errorcode_map"]=> array(26) { [1004]=> int(-15) [1005]=> int(-15) [1006]=> int(-15) [1007]=> int(-5) [1008]=> int(-17) [1022]=> int(-5) [1044]=> int(-26) [1046]=> int(-14) [1048]=> int(-3) [1049]=> int(-27) [1050]=> int(-5) [1051]=> int(-18) [1054]=> int(-19) [1061]=> int(-5) [1062]=> int(-5) [1064]=> int(-2) [1091]=> int(-4) [1100]=> int(-21) [1136]=> int(-22) [1142]=> int(-26) [1146]=> int(-18) [1216]=> int(-3) [1217]=> int(-3) [1356]=> int(-13) [1451]=> int(-3) [1452]=> int(-3) } ["connection"]=> resource(10) of type (mysql link) ["dsn"]=> array(9) { ["phptype"]=> string(5) "mysql" ["dbsyntax"]=> string(5) "mysql" ["username"]=> string(8) "intranet" ["password"]=> string(8) "rWu23s87" ["protocol"]=> string(3) "tcp" ["hostspec"]=> string(9) "localhost" ["port"]=> bool(false) ["socket"]=> bool(false) ["database"]=> string(13) "Intranet_full" } ["autocommit"]=> bool(true) ["transaction_opcount"]=> int(0) ["_db"]=> string(13) "Intranet_full" ["fetchmode"]=> int(3) ["fetchmode_object_class"]=> string(8) "stdClass" ["was_connected"]=> NULL ["last_query"]=> string(0) "" ["options"]=> array(8) { ["result_buffering"]=> int(500) ["persistent"]=> bool(false) ["ssl"]=> bool(false) ["debug"]=> int(0) ["seqname_format"]=> string(6) "%s_seq" ["autofree"]=> bool(false) ["portability"]=> int(0) ["optimize"]=> string(11) "performance" } ["last_parameters"]=> array(0) { } ["prepare_tokens"]=> array(0) { } ["prepare_types"]=> array(0) { } ["prepared_queries"]=> array(0) { } ["_last_query_manip"]=> bool(false) ["_next_query_manip"]=> bool(false) ["_debug"]=> bool(false) ["_default_error_mode"]=> NULL ["_default_error_options"]=> NULL ["_default_error_handler"]=> string(0) "" ["_error_class"]=> string(8) "DB_Error" ["_expected_errors"]=> array(0) { } } ["cookie"]=> NULL } ["password"]=> NULL ["uvalid"]=> NULL ["dsn"]=> object(DB_mysql)#1 (26) { ["phptype"]=> string(5) "mysql" ["dbsyntax"]=> string(5) "mysql" ["features"]=> array(7) { ["limit"]=> string(5) "alter" ["new_link"]=> string(5) "4.2.0" ["numrows"]=> bool(true) ["pconnect"]=> bool(true) ["prepare"]=> bool(false) ["ssl"]=> bool(false) ["transactions"]=> bool(true) } ["errorcode_map"]=> array(26) { [1004]=> int(-15) [1005]=> int(-15) [1006]=> int(-15) [1007]=> int(-5) [1008]=> int(-17) [1022]=> int(-5) [1044]=> int(-26) [1046]=> int(-14) [1048]=> int(-3) [1049]=> int(-27) [1050]=> int(-5) [1051]=> int(-18) [1054]=> int(-19) [1061]=> int(-5) [1062]=> int(-5) [1064]=> int(-2) [1091]=> int(-4) [1100]=> int(-21) [1136]=> int(-22) [1142]=> int(-26) [1146]=> int(-18) [1216]=> int(-3) [1217]=> int(-3) [1356]=> int(-13) [1451]=> int(-3) [1452]=> int(-3) } ["connection"]=> resource(10) of type (mysql link) ["dsn"]=> array(9) { ["phptype"]=> string(5) "mysql" ["dbsyntax"]=> string(5) "mysql" ["username"]=> string(8) "intranet" ["password"]=> string(8) "rWu23s87" ["protocol"]=> string(3) "tcp" ["hostspec"]=> string(9) "localhost" ["port"]=> bool(false) ["socket"]=> bool(false) ["database"]=> string(13) "Intranet_full" } ["autocommit"]=> bool(true) ["transaction_opcount"]=> int(0) ["_db"]=> string(13) "Intranet_full" ["fetchmode"]=> int(3) ["fetchmode_object_class"]=> string(8) "stdClass" ["was_connected"]=> NULL ["last_query"]=> string(0) "" ["options"]=> array(8) { ["result_buffering"]=> int(500) ["persistent"]=> bool(false) ["ssl"]=> bool(false) ["debug"]=> int(0) ["seqname_format"]=> string(6) "%s_seq" ["autofree"]=> bool(false) ["portability"]=> int(0) ["optimize"]=> string(11) "performance" } ["last_parameters"]=> array(0) { } ["prepare_tokens"]=> array(0) { } ["prepare_types"]=> array(0) { } ["prepared_queries"]=> array(0) { } ["_last_query_manip"]=> bool(false) ["_next_query_manip"]=> bool(false) ["_debug"]=> bool(false) ["_default_error_mode"]=> NULL ["_default_error_options"]=> NULL ["_default_error_handler"]=> string(0) "" ["_error_class"]=> string(8) "DB_Error" ["_expected_errors"]=> array(0) { } } ["cookie"]=> NULL }

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    e allora ha ragione neroux
    username che tu passi è un oggetto di tipo Login.
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

  9. #9
    Questo ormai l'ho capito ma non so come modificare il codice per risolvere il problema.

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2008
    Messaggi
    813
    passando una stringa con l'username, per esempio
    Nell'anno 1968 è bastata la potenza di due Commodore 64 per lanciare con successo una navicella sulla Luna; nell'anno 2007 ci vogliono la potenza di un processore quad core 3.30 GHz e 3 Gb di RAM (requisiti minimi ufficiali) per utilizzare Windows Vista. Qualcosa deve essere andato storto!

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 © 2024 vBulletin Solutions, Inc. All rights reserved.