Repository 32bit  Forum
Repository 64bit  Wiki

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

Forum dedicato alla programmazione.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata e la versione del Kernel. Questi dati aiutano le persone che possono rispondere.
2) Specificare sempre il tipo di shell (bash, sh, csh, etc...)
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 dell'ultima regola 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 18: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 16:14, modificato 1 volta in totale.
Avatar utente
dottor3
Linux 2.0
Linux 2.0
 
Messaggi: 162
Iscritto il: dom lug 27, 2008 12: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:12

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

Spina
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: 5907
Iscritto il: gio nov 03, 2005 15: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 18: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 12: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: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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 18:31

dottor3 ha scritto:...'cliente '...
Qui me sembra che ci potrebbe essere uno spazio di troppo.
Spina
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: 5907
Iscritto il: gio nov 03, 2005 15: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 18: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 12: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:39

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

Spina
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: 5907
Iscritto il: gio nov 03, 2005 15: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 18: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 12: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 19: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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 16: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 12: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 10: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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 22: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: 4255
Iscritto il: mer lug 28, 2004 0:00
Località: Reggio Calabria
Nome Cognome: Antonino Branca
Slackware: current 64bit
Kernel: 3.8.11
Desktop: KDE 4.10.3

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

Messaggioda targzeta » mer mar 11, 2009 22: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
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: 5907
Iscritto il: gio nov 03, 2005 15: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