Assegnazione login

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
Salve a tutti.
Dovrei realizzare uno script dove posso assegnare delle login che vado a leggere in un db, già caricate.
Io avevo pensato, all'apertura della pagina veniva aperta una sessione, prelevato un id automaticamente dal db e succesivamente assegnata ad una mail, con succesiovo update del db.
Come posso procedere?
Grazie
 

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
Grazie per avermi risposto.
Ho già fatto un db con la tabella, con i dati di login e pwd.
Ho inserito delle login per provare.
Ho fatto anche una parte di codice, ma mi succede che quando faccio la select mi prende tutti i campi, non mi seleziona un solo record, quindi come output ho tutti i recoed della tabella.
Ciao
 

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
Questa è la parte di codice con cui faccio la select

$select_login = "SELECT id,login,pwd FROM $db_table";
$query_login = mysql_query ($select_login);
if (!$query_login)
{
die("Errore nella query $query_login: " . mysql_error());
}

while($row_login=mysql_fetch_assoc($query_login))
{
echo "Questa è login ".$row_login['login'];
echo "Questa è password".$row_login['pwd'];
}

Adesso mi succede che vengono visualizzate tutte le login e rispettive pass.
Ciao
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Un'azione di login dovrebbe prevedere una query basata sui dati di autenticazione (username e password) inviati dall'utente tramite form.

Nel tuo caso, per estrarre SOLO i dati dell'utente loggato dovresti avere una query del genere.

PHP:
$select_login = "SELECT id,login,pwd FROM $db_table WHERE login='".$_POST['login']."' AND pwd='".$_POST['pwd']."'";
Naturalmente è bene che aggiungi anche dei controlli sugli input per validarli.
 

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
Grazie per avermi risposto.
Si è vero cosi va bene se io devo fare un controllo della login e pass, con la funzione POST controllo se la login e la pass inserite nel form sono esatte.
Io invece devo dare la login e pass, quindi devo prelevare un record dal db, farlo visualizzare e poi aggiornare il db per dire che quella login e pass sono state assegnate, attualmente quando faccio questo mi si visualizzano un elenco con tutte le login e pass.
Ciao Luca
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
devi avere per forza un riferimento nella tabella delle user e pass, per esempio un l'id dell'utente a cui assegnarlo.
 

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
ok allora io inizio con

<?php
session_start();
$PHPSESSID=session_id();

poi devo fare la select e cosa metto come valiaribe da filtrare la sessione?

$select_login = "SELECT id,login,pwd FROM $db_table WHERE session_id='$PHSESSION'";

però io nn ho nella tabella il valore session_id.

Non so esiste un modo per fare la select utilizzando la stessa sessione.
Grazie
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
Direi di fare così, in tabella aggiungi un campo destinato a contenere un riferimento (ad esempio, l'id di un utente se hai una tabella utenti da cui puoi prenderlo o il suo nome e cognome..).
I record in cui questo campo è vuoto rappresentano le user e le pass che puoi ancora assegnare.

A questo punto, quando vogliamo assegnare una user e una pass estraiamo il primo record vuoto:

PHP:
SELECT id,login,pwd FROM $db_table WHERE campo_controllo='' Order By id Desc Limit 1
A questo punto la password è stata assegnata e il campo di controllo potrà essere aggiornato con un update.
 

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
ok adesso come faccio a legare un record della select con quello con cui devo l'update.
Io avevo pensato di usare il session_start.
Grazie per l'aiuto
 

Eliox

Utente Attivo
25 Feb 2005
4.390
3
0
puoi salvare l'id estratto in selezione e utilizzarlo per l'update.

PHP:
$update= mysql_query("UPDATE tabella SET campo_di_controllo='valore' Where id=".$row['id']);
 

ltatas

Nuovo Utente
17 Apr 2009
38
0
6
grazie avevo la soluzione sotto gli occhi e nn la vedevo, bastava fare

echo "questa è id".$row_login['id'];
echo "Questa è login ".$row_login['login'];
echo "Questa è password".$row_login['pwd'

UPDATE $db_table SET user=pippo WHERE ID=".$row_login['id'];
Ciao e grazie