PDA

Visualizza la versione completa : ottenere chiave da valore...


Claudio Vituzzi
13-07-2004, 03:41
Mi serve una mano con i files .dbm spiego brevemente il concetto:



DB/USER/

Counter.txt

user_nick.dbm #
user_pass.dbm #
user_mail.dbm #
user_enroll_date.dbm # Data di registrazione (time)
user_www.dbm
user_city.dbm # Provenienza
user_num_posts.dbm # Numero di posts
user_logged.dbm # E' loggato? (0/1);
user_firma.dbm # Firma o breve testo...

Quando un utente si iscrive avanza il valore di Counter.txt di 1 ed il valore
avanzato verrà usato come chiave degli hash dei files dbm...relativi al tipo di dato:


$counter ++;

# APRI user_nick.dbm
# CHIAVE($counter) => $user_nick;

# APRI user_pass.dbm
# CHIAVE($counter) => crypt($user_pass,$salt);

...etc...

Per Risalire ai dati di un Nick_name dovrei aprire il file user_nick.dbm e ottenere la chiave sapendo il valore(univoco) ovvero il user_nick...come si fa?

...cosi' poi potrò fare:


# APRI user_mail.dbm
# $user_mail = $user_mail{$user_id};
..etc...

E vorrei anche sapere come si fa a controllare se al momento della registrazione
una dato Nick name esista già nel file user_nick.dbm...(senza magari dover scannare tutto il file con while...)

Grazie a tutti!!!

shishii
13-07-2004, 14:30
per prima cosa...

ma che senso ha tutto ciò?
perchè usare come chiave di un hash un dato che molto facilmente non è univoco?

Claudio Vituzzi
15-07-2004, 05:29
Colpa mia...bastava mettere il nickname come chiave e il suo numero ID come valore...in più con exist controllo subito se un nickname esiste già...più che perl si tratta di logica della programmazione che mi manca...

Loading