ciao iperboreo e benvenuto nel forum.
certo che è possibile, però dipende da come sono strutturate le tabelle del db.
dovresti postare la loro struttura


Buona sera a tutti, sono nuovo e sono felice di far parte del forum di MRWEBMASTER.
Ho un problema e spero mi possiate aiutare:
Ho un sistema di registrazione e login in php e mysql, e vorrei estrarre i dati da una tabella in mysql, ma non tutti i dati,
solamente quelli relativi all'utente loggato al momento.
Vi ringrazio per l'aiuto, attendo fiducioso e grazie a tutti.
Iperboreo (max)
ciao iperboreo e benvenuto nel forum.
certo che è possibile, però dipende da come sono strutturate le tabelle del db.
dovresti postare la loro struttura


Buon giorno e grazie per la risposta,
vi posto i miei file php se possono essere utili, non son perfetti ma funzionano, sto imparando.
MAIN_LOGIN : questo è form del login
CHECKLOGIN.PHP : QUESTA LA PAGINA DI CONTROLLO DEL LOGIN :Codice HTML:<HTML> <HEAD> <TITLE>prova</TITLE> </HEAD> <BODY> <table border="0" cellspacing="1" cellpadding="0" width="300" align="center" bgcolor="#cccccc"><tbody> <tr><form action="checklogin.php" method="post"> <input name="phpMyAdmin" type="hidden" value="V0N0db6Fl62QWr6eBkly75xAGn3" /><td> <table border="0" cellspacing="1" cellpadding="3" width="100%" bgcolor="#ffffff"><tbody> <tr> <td colspan="3"><strong>Member Login </strong></td> </tr> <tr> <td width="78">Username</td> <td width="6">:</td> <td width="294"><input id="myusername" name="myusername" type="text" /></td> </tr> <tr> <td>Password</td> <td>:</td> <td><input id="mypassword" name="mypassword" type="password" /></td> </tr> <tr> <td></td> <td></td> <td><input name="Submit" type="submit" value="Login" /></td> </tr> </tbody></table> </td> </form></tr> </tbody></table> </BODY>
iscritti.php : questa pagina l'ho creata per eseguire la sessione sull'idCodice PHP:<?php
$host="localhost"; // Hostname
$username="basefull"; // Mysql username
$password=""; // Mysql password
$db_name="my_basefull"; //Nome del Database
$tbl_name="registrazione"; // Nome della Tabella
// Procedimento per connettersi al Database
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// Nome utente e password inviate attraverso il form
$myusername=$_POST['myusername'];
$mypassword=$_POST['mypassword'];
$sql="SELECT * FROM $tbl_name WHERE username='$myusername' and password='$mypassword'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){
// Register $myusername, $mypassword and redirect to file "http://www.basefull.altervista.org/home.html"
session_register("myusername");
session_register("mypassword");
header("location:http://www.basefull.altervista.org/home.html");
}
else {
echo "Attenzione username o password errati ! altrimenti procedere con la REGISTRAZIONE";
}
?>
Codice PHP:<?php
session_start();
// controlliamo se è stata inizializzata la sessione
if(isset($_SESSION['id']))
{
//controllo id con esito positivo
echo "Benvenuto! Processo di attivazione concluso positivamente!";
header("location:http://www.basefull.altervista.org/home.html");
}else{
//controllo sessione con esito negativo
@header("Location: http//www.basefull.altervista.org");
}
?>
QUESTE LE PAGINE PHP INTERESSATE, NON SO COME FORMULARE LA QUERY PER LìESTRAZIONE IN MYSQL,
tipo: $sql = "SELECT * FROM images where id_utente=$session_id";
NEL DATABASE MYSQL ho due tabelle, una è REGISTRAZIONE (contiene i campi ID, nome, cognome, password)
e una table chiamata IMAGES, (contiene i campi ID, nome, id_utente)
POSSONO BASTARE COME INFORMAZIONI? non riesco a mettere in relazione il campo ID_UTENTE della table registrazione con la table IMAGES.
Sono mesi che tento !
Grazie per l'aiuto, buona giornata
Iperboreo
Ultima modifica di borgo italia; 22-06-2012 alle 11:40
ciao
ci do un occhio poi ti so dire, anche se cos' ad occhio e croce c'è ualcosa che non mi torna.
comunque ricordati: quando posti del codice racchiudilo nei relativi tag, barra di formattazione post 2° riga ultime tre iconcine, nell'ordine code html php
dimenticavo:
sino a che lo script non è perfetto non usare il silent (la @) davanti alle istruzioni perchè non vedi eventuali errori
Ultima modifica di borgo italia; 22-06-2012 alle 11:55 Motivo: dimenticavo
ciao
alcuni appunti e domande
non fai i controlli sui dati immessi dal form
l'importanza dei controlli esempio:
se uno nel campo del form scrive
' or password !='
e tu fai semplicemente (io uso il termine brutalmente)
$mypassword=$_POST['mypassword'];
e non fai un controllo la query risulta
....and password='' or password !=''";
uno accede alla pag. riservata senza avere l'autorizzazione
analogo per myusername
poi sempre nella CHECKLOGIN.PHP (dopo aver aggiunto i controlli)
1. io metterei all'inizio anche qui
2. tutta la parte della connessione la scriverei in un file a parte chiamato es. connessione.php, per cuiCodice PHP:<?php
session_start();
$host="localhost"; // Hostname
$username="basefull"; // Mysql username
//...
?>
3. quando verifichi se user e pass sono giusti io estrarre anche l'id del clienteCodice PHP:<?php
session_start();
require_once "connessione.php";
//...
?>
4. poi perchè rimandi (se user e pass sono giusti) alla pag. home.html? non dovresti riinviare ad una pag riservata? tra l'altro per usare i dati invitai la pag dovrebbe essere .phpCodice PHP:<?php
//....
if($count==1){
$riga=mysql_fetch_array($result);
//e avendo messo all'inizio session_start
$_SESSION['id_utente']=$riga['id'];//da questo nella pag riservata puoi fare la query $sql = "SELECT * FROM images where id_utente=".$_SESSION['id_utente'];
$_SESSION['nome']=$riga['nome'];//meglio estrarlo che usare quello che viene dal form
//...
?>
io rimanderei alla home.html (o al form) se user e pass errati
per ora penso che basti


Ciao, e grazie,
la silent la posso eliminare cosi vedo gli errori, ma non capisco proprio come uno possa riuscire a bypassare i controlli di nome e password. io non riesco, sembra funzionare bene.
Aggiungo il controllo ID oltre che nome e password,
ma per estrarre la foto dell utente loggato come faccio?
ho sbagliato le tabelle vero?
ho REGISTRAZIONE che racchiude tutti gli utenti, e
ho FOTO che racchiude la foto dell utente in questione.
Quando un utente si logga, mi mostra le foto di tutti gli utenti.
Non riesco a risolvere, ma so che sta tutto nelle tabelle in mysql e nella query di estrazione che pongo. giusto?
ciao
nella tab IMAGES, (contiene i campi ID, nome, id_utente) giustamente per collegarla alla tabella utenti hai messo id_utente, ma cosa contiene il campo nome?
poi dove vuuoi che vengano fuori le immagini dell'utente? hai una pag apposita (ricordati che deve essere .php)?
p.s.
la cross injection è una delle cose più semplici da fare e se non si fanno controlli ti può capitare.


Ciao borgo italia, non riuscivo a connettermi!
la mia tabella REGISTRAZIONE contiene i campi: ID,nome,cognome,mail
la tabella IMAGES contiene i campi: ID,nome(nome della foto dell'utente), id_utente (sarebbe il campo dove credo debba automaticamente comparire l ID dell utente della tabella REGISTRAZIONE.
le foto appaiono in una pagina php chiamata FOTO. (NELLA QUAL PAGINA HO INSERITO LA QUERY: <?php $query = "SELECT * FROM images WHERE id_utente=".$_SESSION['id']."ORDER By Id"; ?>
ciao
se in "nome" come detto hai il nome della foto, es. pinco.jpg
ti schematizzo
Codice PHP:<?php
//....
$cartella="immagini/";//qui dovrai mettere il percorso rispetto allo script o no se sono nella stessa cartella
$query = "SELECT * FROM images WHERE id_utente=".$_SESSION['id']."ORDER By Id";
$ris=mysql_query($query);
if(mysql_num_rows($ris)==0){
echo "non ci sono immagini";
}else{
while($riga=mysql_fetch_array($ris)){
$immagine=$riga['nome'];
$immagine=$cartella.$immagine;
echo "<img src=\"$immagine\" width=\"100%\" height=\"100%\" border=\"0\"title=\"quello che vuoi se hai il tit dell'imm\" / ><br />";
}
}
//.....
?>


Ciao,
facendo come suggerito, che secondo mè è giusto, mi riporta il seguente errore, invece di visualizzare la foto.
che potrebbe essere? la versione?
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER By Id' at line 1 "