Repository 32bit  Forum
Repository 64bit  Wiki

classe php......nn capisco l'errore [RISOLTO]

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare in modo preciso il linguaggio di programmazione usato.
2) Se possibile portare un esempio del risultato atteso.
3) Leggere attentamente le risposte ricevute.
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.

classe php......nn capisco l'errore [RISOLTO]

Messaggioda dottor3 » sab feb 21, 2009 17:02

ciao boyz.......
nn capisco dove sbaglio in questa classe php.......
....praticamente mysql rifiuta la connessione come se la pass fosse errata....nn lo e' tranquilli......vedete se potete darmi consigli :-k

il file di configurazione ha questo formato:

host=localhost
user=user
password=password


Codice: Seleziona tutto
<?php
# Questa classe si connette a database MSsql o MYsql
# attraverso un file di configurazione esterno definito in $_file che contiene solo HOST-USER-PWD
class db_gest{
   
   private $_file = "./key/conf_db.txt";
   private $_password;
   private $_user;
   private $_host;
   public function __construct(){
      $this->_recupera_dati();
   }
   
   private function _recupera_dati(){
      $dati = file($this->_file);
      #echo $dati[1];
      for($c=0; $c<count($dati); $c++){
         $campo = explode('=',$dati[$c]);
         #echo $campo[1];
         switch($campo[0]){
            case 'host':
               $this->_host = $campo[1];
      #         echo ".";
               break;
            case 'user':
               $this->_user = $campo[1];
      #         echo ".";
               break;
            case 'password':
               $this->_password = $campo[1];
      #         echo $this->_password;
               break;
            default:
               break;
         }
      }
   }

   
   public function connect($tipo_db, $nome_DB){
      switch($tipo_db){
         case "mysql":
            $link_id = mysql_connect($this->_host, $this->_user, $this->_password);
            if(!$link_id) die("Impossibile completare la connesione a {$this->_host}");
            mysql_select_db($nome_DB);
            return $link_id;
            break;
         case "mssql":
            $link_id = mssql_connect($this->_host, $this->_user, $this->_password);
            if(!$link_id) die("Impossibile completare la connessione");
            mssql_select_db($nome_DB);
            return $link_id;
            break;
         default:
            print ("Inserire se il Db e' MsSQL o MySQL.");
            break;
      }
      
   }
   
}
?>
Ultima modifica di dottor3 il dom feb 22, 2009 15:14, modificato 1 volta in totale.
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: classe php......nn capisco l'errore

Messaggioda targzeta » sab feb 21, 2009 17:12

Ma l'output dell'errore? Tanto per capire meglio.

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: classe php......nn capisco l'errore

Messaggioda dottor3 » sab feb 21, 2009 17:22

Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'cliente '@'localhost' (using password: YES) in /var/www/htdocs/gigetto/gigetto/mie_prod/class_db_gest.php on line 43
Impossibile completare la connesione a 127.0.0.1 --> debug script
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: classe php......nn capisco l'errore

Messaggioda targzeta » sab feb 21, 2009 17:28

Nel case con "mysql" hai provato a stampare le variabili che usi nell'invocazione della funzione? Sono corrette? Non è che c'è qualche spazio di troppo alla fine?

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: classe php......nn capisco l'errore

Messaggioda targzeta » sab feb 21, 2009 17:31

dottor3 ha scritto:...'cliente '...
Qui me sembra che ci potrebbe essere uno spazio di troppo.
Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: classe php......nn capisco l'errore

Messaggioda dottor3 » sab feb 21, 2009 17:36

L'avevo notato anche io...........sono andaro a controllare nel file di configurazione e nn c'e' nessuno spazio dopo l'user....possibile che sia aggiunto nella funzione db_gest::_recupera_dati() ????

Come potrei eventualmente toglierlo ??
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: classe php......nn capisco l'errore

Messaggioda targzeta » sab feb 21, 2009 17:39

dottor3 ha scritto:...Come potrei eventualmente toglierlo ??
Con la funzione trim()

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: classe php......nn capisco l'errore

Messaggioda dottor3 » sab feb 21, 2009 17:48

Provo poi ti faccio sapere per ora grazie mille :thumbright:
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: classe php......nn capisco l'errore

Messaggioda targzeta » sab feb 21, 2009 18:00

Penso sia quello, infatti la funzione file(), che usi in _recupera_dati():
Returns the file in an array. Each element of the array corresponds to a line in the file, with the newline still attached. Upon failure, file() returns FALSE.


Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: classe php......nn capisco l'errore

Messaggioda dottor3 » dom feb 22, 2009 15:14

Grazie Spina!!!
Funziona perfettamente........alle volte una piccolezza ti fa scervellare!!!!

Grazie ancora
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 11:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

Re: classe php......nn capisco l'errore [RISOLTO]

Messaggioda targzeta » mer mar 11, 2009 9:02

Scusa se aggiorno questo post già risolto. Per questi casi generalmente si usa fare in un altro modo, dove il file di configurazione è fatto più o meno così:
Codice: Seleziona tutto
<?php
  define('C_HOST', 'localhost');
  define('C_USER', 'user');
  define('C_PASSWORD', 'password');
?>
mentre il file in cui ti connetti al database:
Codice: Seleziona tutto
<?php
  require('file_configurazione.php');
  ...
  $res = mysql_connect(constant('C_HOST'), constant('C_USER'), constant('C_PASSWORD'));
  ...
?>


Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM

Re: classe php......nn capisco l'errore [RISOLTO]

Messaggioda aschenaz » mer mar 11, 2009 21:02

spina ha scritto:...
Codice: Seleziona tutto
<?php
  require('file_configurazione.php');
  ...
  $res = mysql_connect(constant('C_HOST'), constant('C_USER'), constant('C_PASSWORD'));
  ...
?>


Spina

Che differenza c'è da richiamare direttamente la costante (ad esempio:
mysql_connect(C_HOST,C_USER,C_PASSWORD)) ?
pensieriemotivi.aschenaz.eu - music-blog
Avatar utente
aschenaz
Staff
Staff
 
Messaggi: 4436
Iscritto il: mar lug 27, 2004 23:00
Località: Reggio Calabria
Nome Cognome: Nino
Slackware: current 64bit
Kernel: 3.14.18
Desktop: KDE 4.10.5

Re: classe php......nn capisco l'errore [RISOLTO]

Messaggioda targzeta » mer mar 11, 2009 21:10

aschenaz ha scritto:...
Che differenza c'è da richiamare direttamente la costante (ad esempio:
mysql_connect(C_HOST,C_USER,C_PASSWORD)) ?
Dalla pagina di man:
constant() is useful if you need to retrieve the value of a constant, but do not know its name. I.e. it is stored in a variable or returned by a function.
quindi in questo caso forse era anche meglio non usare constant().

Spina
Linux Registered User #454438
Se pensi di essere troppo piccolo per fare la differenza, prova a dormire con una zanzara -- Dalai Lama
20/04/2013 - Io volevo Rodotà
Avatar utente
targzeta
Iper Master
Iper Master
 
Messaggi: 6195
Iscritto il: gio nov 03, 2005 14:05
Località: Carpignano Sal. (LE) <-> Pisa
Nome Cognome: Emanuele Tomasi
Slackware: current
Kernel: latest stable
Desktop: IceWM


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti

cron