Newsgroup: it.comp.www.php
Titolo: Aiuto.. QUERY

Ho creato una tabella:
ID
User
Passwd
NomeCognome
A questo punto, quando l'utente si connette, il programma va a verificare
tramite where se User e Passwd sono corretti.
Se si, invia l'utente sulla home page.
Ma a questo punto..... come faccio a memorizzare su una stringa $Userid l'ID
dell'utente?
...grazie.....

 ha scritto nel messaggio
news:d04f7.2749$lM2.1...@news.infostrada.it...

forse non ho capito bene...
L'utente si connette al sito, quindi per forza arriva alla home page, dalla
home page gli viene chiesto user e pass dopo di chč effettuando il login lo
script php controlla username e passwd e se sono giusti lo manda ad una
pagina protetta...
E cosě immagino... no ? altrimenti non avrebbe molto senso...
Se, dopo aver controllato user e pass, vuoi salvare l'ID nalla variabile
$userid basta che lo estrai dal DB (se non conosci bene tutte le funzioni
per mysql o il linguaggio SQL dovresti prima darci un occhiata)
Poi la puoi passare da una pagina all'altra tramite query string
(altrapagina.php?userid=blabla) oppure con una variabile o cookie di
sessione...
Guarda...
file form_login.html:
<form method=post action=paginaprotetta.php>
Username: <input type=text name=user><br>
Password: <input type=password name=pass><br>
<input type=submit value=Accedi>
</form>
file paginaprotetta.php
<?
// qui metti il codice php per la connessione al DB (mysql_connect,
mysql_select db, ...)
  // eseguo query di verifica user e pass
$verifica = mysql_query(" SELECT * FROM tabella WHERE user='$user' AND
pass='$pass' ");
  // controllo se č stato restituito un record
$num = mysql_numrows($verifica);
if ( empty($num) ) {
        // se non č stato restituito un record allora vuol dire che il login
č incorretto
    print "Login incorretto!";
} else {
        // se invece č stato restituito un record vuol dire che l'utente
esiste e che la pass immessa č corretta
        // ora tiro fuori i dati del record restituito dalla query
    $dati = mysql_fetch_array($verifica);
    // per estrarre l'ID basta richiamare la variabile $dati[ID],
    // per estarrre il nomeCognome basta richiamare $dati[nomeCongome] e
cosě via...
?>
Qui, potresti mettere il codice HTML della pagina protetta, che puo' essere
visto solo inserendo un nome utente e una password corretti.
Puoi anche personalizzare la pagina, per esempio inserendo <? print"Ciao
$dati[nomeCognome]"; ?>
<?
}
?>
Spero di averti aiutato.
Ciao
Alex

 così via...




estrei i dati dalla tabella e li aggiungi allo header.
<?php
// $q la connessione
// Costanti per la function
define ("USER","pippo");
define ("tabella","statabella");
// La function
function auth($user,$password){
	$Sel = mysql_db_query ("USER","SELECT user,password FROM tabella WHERE
user='$user' 
AND  password='$password' LIMIT 1");
	$user = mysql_result ($Sel,0,user);
	$password = mysql_result ($Sel,0,password);
	header ("location : pagina.php?user=$user&password=$password");
}
// Richiami la funzione
auth ("io","passme");
?>
-- 
----
 d e a t h w a r e.COM
----------------------
Happy Hack !!
---------------pine---

Ti Spiego meglio, dato che ho cambiato alcune cose....
Ho 3 clienti: PIPPO, PLUTO E TOPOLINO
userpippo     pwdpippo
userpluto     pwdpluto
usertopolino  pwdtopolino
all'atto della connessione, da indexutente.html tutti vanno sulla stessa
pagina
che graficamente e' comune a tutti: index.php
da index.php, possono navigare su altre pagine... graficamente sempre comuni
a tutti....
devo ovviamente estrarre dal DB, i dati del singolo utente ed ho aperto
una sessione $usersessionvar (che corrisponde a ID_utente della tabella)
A questo punto, come usare le tue informazioni????
---------- mi hai scritto:---------------
estrei i dati dalla tabella e li aggiungi allo header.
<?php
// $q la connessione
// Costanti per la function
define ("USER","pippo");
define ("tabella","statabella");
// La function
function auth($user,$password){
$Sel = mysql_db_query ("USER","SELECT user,password FROM tabella WHERE
user='$user'
AND  password='$password' LIMIT 1");
$user = mysql_result ($Sel,0,user);
$password = mysql_result ($Sel,0,password);
header ("location : pagina.php?user=$user&password=$password");
}
// Richiami la funzione
auth ("io","passme");
?>
------------------- il mio listato ------------------------
<?
if ((!$user) || (!$password)) {
    header("Location: http://???.???.???.???/indexutente.html");
// controlla che i capi user e password, non siano vuoti
    exit;
}
$db_nome = "mio_DB";
$nome_tabella = "mia_tabella";
$connessione = @mysql_connect("localhost", "sueruser", "passwordsuperuser")
        or die("Impossibile stabilire una connessione.");
$db = @mysql_select_db($db_nome, $connessione)
        or die("Impossibile selezionare il database.");
$sql = "SELECT * FROM $nome_tabella
        WHERE user = \"$user\" AND password = password(\"$password\")";
$risultato = @mysql_query($sql,$connessione)
        or die("Impossibile eseguire l'interrogazione.");
$num = mysql_numrows($risultato);
if ($num != 0) {
$dati = mysql_fetch_array($risultato);
$dati [ID_utente];
header("Location: ???.???.???.???/index.php");
} else {
        header("Location: ???.???.???.???/error.html");
        exit;
}
?>
<HTML>
<HEAD>
<TITLE>Area Riservata</TITLE>
</HEAD>
<BODY>
<? echo "$msg"; ?>
</BODY>
</HTML>
---------
Ti ringrazio per le informazioni che mi hai dato......  e spero che tu sia
cosi' gentile da farmi capire... meglio...

 pluto.......
Questa non lo capita bene... intendi dire che se entrando come USER pippo
puoi visualizzare solo pippo.php e non le altre tipo pluto.php o
topolino.php ?
Bisogna vedere cosa vuoi fare esattamente (che non l'ho ancora capito bene)
perchè a questo punto potresti fare una pagina del tipo utenti.php e poi
passare a utenti.php l'ID dell'utente in modo che in quella pagina pippo
vede solo dati riguardanti pippo e pluto vedrà solo i dati che riguardano
pluto... mi sono spiegato ?

In questo pezzo ho perso il filo del discorso... scusa ma non riesco a
capire bene cosa vuoi fare esattamente, se riesci a farmelo capire poi in 2
secondi ti posso dare la soluzione.
magari mandami un email perchè il NG non lo guardo tutti i giorni.
Ciao
Alex