- Home
- Categorie
- Coding e Sistemistica
- PHP
- Recuperare id utente della tabella
-
Recuperare id utente della tabella
salve, sto cercando di fare un sito dove è possibile caricare file nell'area privata; ho fatto due tabelle :utenti (elenco delle registrazioni) e file (elenco dei file caricati dagli utenti).
tutto funziona ma non riesco a trovare il modo per inserire automaticamente il nome_utente che ha caricato il file. queste sono le tabelle
UTENTI:
id | user | pass |mail
1 | root | 1234 |[email protected]FILE
id_file | nome | nome_utente |data
1 |foto.jpg|.......................... |g-m-avorrei sapere qual'è lo script in php, affinche metta in automatico, (a seconda dell'utente che ha fatto il login) nome_utente, in questo caso root.
GRAZIE 1000:D
-
Ciao chiara690,
dipende da dove è stato memorizzato... Sessione? Cookie?
-
Le tabelle le ho fatte con mysql.
-
Indipendentemente da questo, avrai conservato lato client un riferimento per sapere chi è suppongo.
-
Non so cosa intendi.
-
Fai attenzione ad iniziare i tuoi messaggi con la maiuscola ed a terminare con punto...
Per quanto riguarda il problema, come fai a sapere se un utente è loggato o no?
-
Ho fatto un form di login e uno di registrazione.
-
Fai attenzione ad iniziare i tuoi messaggi con la maiuscola...
Visto che abbiamo problemi a capirci sarebbe meglio se posti la pagina di login.
-
Non me lo fa postare. come faccio?
-
Dovresti postare il codice php della pagina, se rimuovi tutti i prefissi http:// dal codice riesci a postarla.
-
Eccola.
[php]<?php
// Includo la connessione al database
require('config.php');// Se il modulo viene inviato...
if(isset($_POST['login']))
{// Dati Inviati dal modulo $user = (isset($_POST['user'])) ? trim($_POST['user']) : ''; // Metto nella variabile 'user' il dato inviato dal modulo, se non viene inviato dò di default '' $pass = (isset($_POST['pass'])) ? trim($_POST['pass']) : ''; // Metto nella variabile 'pass' il dato inviato dal modulo, se non viene inviato dò di default '' // Filtro i dati inviati se i magic_quotes del server sono disabilitati per motivi di sicurezza if (!get_magic_quotes_gpc()) { $user = addslashes($user); $pass = addslashes($pass); } // Crypto la password e la confronto con quella nel database $pass = md5($pass); // Controllo l'utente esiste $query = mysql_query("SELECT id FROM utenti WHERE user = '$user' AND pass = '$pass' LIMIT 1"); // Se ha trovato un record if(mysql_num_rows($query) == 1) { // prelevo l'id dal database $login = mysql_fetch_array($query); // Creo una variabile di sessione $_SESSION['login'] = $login['id']; // reindirizzo l'utente header('Location: privata.php'); exit; } // se non esiste da l'errore else die('Nome Utente o Password errati');
}
?>[/php]
-
Se non sbaglio è il codice postato da me dell'area privata.
In questo caso nella variabile $_SESSION['login'] è presente l'id dell'utente attualmente loggato, ed è l'id che dovresti memorizzare nella tabella file.
Se invece vuoi memorizzare proprio il nome, dovresti aggiungere sotto:
[php]
$_SESSION['login'] = $login['id'];
[/php]
Questo:
[php]
$_SESSION['login_username'] = $user;
[/php]
Ed avresti in questo caso il nome dell'utente attualmente loggato nella variabile di sessione $_SESSION['login_username'].
-
Grazie provo e ti faccio sapere domani....
scusa se ti ho fatto dannare.
-
Ho provato ma non mi stampa niente ti posto lo script per l'upload di file:
<?phpif (is_uploaded_file($_FILES['userfile']['tmp_name']))
{
//upload
$file_realname = $_FILES['userfile']['name'];//Copio il file nella directory
copy($_FILES['userfile']['tmp_name'], "media/$file_realname");
$_SESSION['login'] = $login['id'];
$created = date("Y-n-j"); //data del server php nel formato che vogliamo
//Collegamento al db per scrittura risultato
mysql_connect("localhost","username","password");
mysql_select_db("my_provablog3");
$inserisci = mysql_query("INSERT INTO file(nome, nome_utente, data_file) VALUES('$file_realname', 'id','$created')");$created = date("Y-n-j"); //data del server php nel formato che vogliamo
//Controllo se l'inserimento è andato a buon fine
if(!$inserisci) {
echo "Il file è stato inviato ma non è stato possibile scrivere sul database";
}
else {
echo "Il file è stato caricato correttamente";}
}
else
{
echo "Errore nell'upload.<BR>File non disponibile o troppo grande";
}
?>quello che ti ho postato prima è la tabella utenti quest è la tabella file.
-
Dove devo mettere il codice?
$_SESSION['login'] = $login['id']; va bene così o devo modificare?
-
Grazie Thedarkita ho risolto il mio problema ora mi stampa Id_utente.