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.
Rispondi
Avatar utente
dottor3
Linux 1.x
Linux 1.x
Messaggi: 162
Iscritto il: dom 27 lug 2008, 12:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

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

Messaggio da dottor3 »

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 22 feb 2009, 15:14, modificato 1 volta in totale.

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Avatar utente
dottor3
Linux 1.x
Linux 1.x
Messaggi: 162
Iscritto il: dom 27 lug 2008, 12:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

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

Messaggio da dottor3 »

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
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Avatar utente
dottor3
Linux 1.x
Linux 1.x
Messaggi: 162
Iscritto il: dom 27 lug 2008, 12:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

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

Messaggio da dottor3 »

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
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Avatar utente
dottor3
Linux 1.x
Linux 1.x
Messaggi: 162
Iscritto il: dom 27 lug 2008, 12:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

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

Messaggio da dottor3 »

Provo poi ti faccio sapere per ora grazie mille :thumbright:

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Avatar utente
dottor3
Linux 1.x
Linux 1.x
Messaggi: 162
Iscritto il: dom 27 lug 2008, 12:59
Slackware: 13.37
Kernel: 2.6.37.6
Desktop: kde 4.5

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

Messaggio da dottor3 »

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

Grazie ancora

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Avatar utente
aschenaz
Staff
Staff
Messaggi: 4623
Iscritto il: mer 28 lug 2004, 0:00
Nome Cognome: Nino
Slackware: current
Kernel: 5.4.x
Desktop: KDE
Località: Reggio Calabria
Contatta:

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

Messaggio da aschenaz »

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)) ?

Avatar utente
targzeta
Iper Master
Iper Master
Messaggi: 6631
Iscritto il: gio 3 nov 2005, 14:05
Nome Cognome: Emanuele Tomasi
Slackware: 64-current
Kernel: latest stable
Desktop: IceWM
Località: Carpignano Sal. (LE) <-> Pisa

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

Messaggio da targzeta »

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

Rispondi