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.
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
<?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.
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
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
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() ????
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
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ì:
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