Newsgroup: it.comp.www.php
Titolo: login con postgresql

Ciao a tutti, ho un problemino stupido che non riesco a risolvere(sono
alle prime armi), devo fare uno script di login in php :) che si appoggi
su un database postgres, ho fatto 3 file,il 1 è solo una tabellina con 2
campi da inserire chiamati nome e password un altro con lo script e l
ultimo con le impostazioni per la connessione con il db.
Il fatto è che lo script dice sempre che la password è errata anche quando
non è cosi,i dati nel db ci sono e i nomi tabella e campi sono
corretti(non cè alcun problema nel reperire i dati o altro) ma quando mi
va a confrontare la password presa in input e quella nel db niente.Ho
provato a fare qualche echo e ho visto che ($info['nome']) non stampa
niente quindi prob. non prende lacun valore... xchè? sotto il codice.
scusate la banalita' x molti ma non ho mai usato molto php.
grazie
<?php
// connessione al db
require 'conn_db.php';
	/*controllo che siano stai immessi tutti i dati richiesti */
	if(!$_POST['nome'] | !$_POST['password']) {
		die('Hai lasciato un campo vuoto!');
	}
	// query al database 
	$check = $db_object->query("SELECT nome, password FROM utenti WHERE nome
= '".$_POST['nome']."'");
	$info = $check->fetchRow();
 
      // controllo nome e password
	if ($_POST['nome'] != $info['nome']) {
	        die('Nome utente errato.');
        }
	$_POST['password'] = md5($_POST['password']);
	if ($_POST['password'] != $info['password']) {
		die('Password errata.');
	}
	$db_object->disconnect();
?>
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Sei sicuro che questa query sia corretta?
Non e' che la password contiene caratteri cui viene applicato
automaticamente l'scaping (dipende dalla configurazione del php.ini).
prova
print_r ($info);
-- 
I am what I am, I do what I can
Sei un newbie? Leggi questo 
http://url.repository.biz/go/1
Inviare email con allegati? 
http://url.repository.biz/go/1Z
Cerchi un programmatore PHP/MySQL? 
http://url.repository.biz/go/1Y

 print_r ($info);
se metto nome pippo e password pippo (esistenti nel db) ottengo:
Array ( [0] => pippo [1] => 0c88028bf3aa6a6a143ed846f2be1ea4 ) 
dimenticavo utilizzo php 4.3.4 apache 2.0.48 postgresql 7.4.1
Grazie mille!


 Array ( [0] => pippo [1] => 0c88028bf3aa6a6a143ed846f2be1ea4 ) 
Questa e' la tua password codficata MD5, ovvero md5('pippo')
Cosa hai settato in postgres?
Mauro

 Array ( [0] => pippo [1] => 0c88028bf3aa6a6a143ed846f2be1ea4 ) 
prova con
if ($_POST['nome'] != $info[0]) {
	        die('Nome utente errato.');
         }
	$_POST['password'] = md5($_POST['password']);
	if ($_POST['password'] != $info[1]) {
		die('Password errata.');
	}
ciao
Mauro

 Array ( [0] => pippo [1] => 0c88028bf3aa6a6a143ed846f2be1ea4 ) 
è molto strano perchè se nell array ci sono i 2 valori memorizzati vuol
dire che la query e il fetchRow sono andati a buon fine, quindi perchè se
provo a fare echo ($info['nome']); non mi stampa nulla? credo sia li il
problema...
grazie a tutti intanto x l aiuto


 Mauro
Grande Mauro cosi' funziona!
resta il mistero della fede comunque grazie non ci avevo proprio pensato.


 problema...
Non hai letto il mio messaggio di prima?
Tu hai un array che ha
$info[0] = ...
$info[1] = ...
e NON
$info['nome']
$info['password']
prova con $info[0] e $info[1] e vedrai che funziona, se poi vuoi 
utilizzare nome/password al posto di 0/1 devi settare il fetchrow in 
modo diverso, al volo non mi ricordo, se usi pear lo trovi negli esempi 
della classe db, cerca un po' se non trovi scrivi che ricerco io .
ciao
Mauro

TROVATO !!!
Tu usi questo:
http://it2.php.net/manual/en/function.pg-fetch-array.php
e invece vorresti usare questo:
http://it2.php.net/manual/en/function.pg-fetch-assoc.php
guarda bene example1 nei due casi.
ciao
Mauro

 Mauro
si si ho letto e ti ringrazio, io pensavo fosse la stessa cosa comunque
adesso vado a rileggermi bene le specifiche di fetchRow, grazie sei stato
molto gentile un grazie anche a Setc.
ciao


 Mauro
troppo il migliore, grazie ancora!
