Programmare area personale per singolo utente

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
Buongiorno a tutti,

Ho cercato sia sul web, sia sulla funzione cerca e non ho trovato nulla in merito.

Sto programmando un semplice sito vetrina, cosi tanto per dilettarmi e comprendere meglio il linguaggio php.

Il mio problema è questo:

Ho creato una pagina che contiene i dati personali contenuti nel database "utenti", mi sono collegato come utente Y, e ho fatto accesso all'area personale ma mi da i dati del profilo dell'utente X anziché dell'utente Y.

Cioè detto meglio:

Sul database ci sono due utenti, creati da me.
UTENTE1
UTENTE2

Se accedo come UTENTE 2 nell'area personale, mi da i dati dell'UTENTE1, invece dei dati dell'UTENTE2.

Come posso risolvere? Non mi ricordo come si gestisce il campo ID con autoincremento in PHP.

Grazie mille in anticipo.
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
se parli dell'id del record devi averlo impostato già nella tabella del database es. tabella "utenti"

id int(9) autoincrement primarykey
utente varchar(50)

poi ci pensa mysql ad incrementarlo quendo serve, cioe quando fai una insert di un nuovo record es.
PHP:
$query=mysqli_query($connessione,"INSERT INTO utenti(utente) VALUES('pinco pallo')");
come vedi l'id non viene citato, ma se nella tabella hai gia utente1 e utente2 ti ritriverai dopo l'insert pinco pallo con id=3
 

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
ciao
se parli dell'id del record devi averlo impostato già nella tabella del database es. tabella "utenti"

id int(9) autoincrement primarykey
utente varchar(50)

poi ci pensa mysql ad incrementarlo quendo serve, cioe quando fai una insert di un nuovo record es.
PHP:
$query=mysqli_query($connessione,"INSERT INTO utenti(utente) VALUES('pinco pallo')");
come vedi l'id non viene citato, ma se nella tabella hai gia utente1 e utente2 ti ritriverai dopo l'insert pinco pallo con id=3
Ti ringrazio per la risposta, ma il problema non è nella tabella, perché ha l'ID con auto_increment, il problema è nella pagina php che richiama dal database solo i dati dell'utente1 registrato cioè solo la riga contrassegnata dal ID 1 e non della riga ID n dove è registrato l'UTENTE n

Come posso fare a richiamare la riga dell'utente registrato?
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
allora il problema è come richiami la pagina che non so come fai
comunque dalla pagina da cui chiami (con un post? con un get?) devi trasmettere alla chiamata l'id
nella chiamata poi fai la select
PHP:
<?php
//.....
//ipozizzo un post
$id=$_POST['id_utente'];
$res=mysqli_query($conn, "SELECT * FROM utenti WHERE id=$id");
//e estrat i dati dell'utente
?>
 

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
PHP:
<html>
<title>Area Personale</title>
<body>

<?php
include("testa_sito.php");
 $username="username";
 $password="password";
 $database="database";

session_start();
require_once('./funzioni.php');
require('./config.php');

 
 mysql_connect(localhost,$username,$password);
 @mysql_select_db($database) or die("Impossibile selezionare il database.");
 $query="SELECT username, email FROM utenti";
 $risultati=mysql_query($query);
 
 $num=mysql_numrows($risultati);
 
 mysql_close();
 
 echo '<b><center>'. $_SESSION['utente'].'</center></b><br><br>';
 

     $username=mysql_result($risultati,$i,"username");
     $email=mysql_result($risultati,$i,"email");
     
 
     echo "<b>$username $email</b>";
      
 
 ?>
 </body>
 </html>
Io cosi stampo a video i dati.

Ti ringrazio e utilizzerò il tuo metodo gentilissimo :fonzie:
 

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
Mi chiedo come ottiene l'id :)
Non è che id è sempre quello per qualsiasi utente?
Infatti non sapevo come ottenere l'id dell'utente desiderato dalla pagina web, mi ricordavo che si poteva fare, ho fatto un compito dove richiedeva un qualcosa del genere, solo che non me lo ricordavo per intero :(

L'id ho controllato la tabella del mio database, e l'id è diverso ed unico per ogni utente. :D
 

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.042
146
63
PR
www.borgo-italia.it
ciao
intanto attento a quello che ha detto marcograzia, poi da quello che ho capito stai imparando a comprendere php allora abbandona le vecchie istruzioni mysql obsolete e tra un po' non più supportate e passa alle nuove mysqli
 

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
ciao
intanto attento a quello che ha detto marcograzia, poi da quello che ho capito stai imparando a comprendere php allora abbandona le vecchie istruzioni mysql obsolete e tra un po' non più supportate e passa alle nuove mysqli
Corretto, ho messo ad inizio (prima di <html>), e lo ringrazio per il consiglio, lo terrò sempre a mente.

Si sto imparando a comprendere il php, a scuola mi hanno fatto imparare solo il C++, Assembly, Visual Basic, HTML e Mysql (e i database), quindi mi piacerebbe aggiornarmi coi tempi.

Gentilmente potresti indicarmi dove posso trovare qualche tutorial o lezione su come imparare il MySQLi? Ti ringrazio in anticipo :)
 

MarcoGrazia

Utente Attivo
15 Dic 2009
788
16
18
59
Udine
www.stilisticamente.com
Infatti non sapevo come ottenere l'id dell'utente desiderato dalla pagina web, mi ricordavo che si poteva fare, ho fatto un compito dove richiedeva un qualcosa del genere, solo che non me lo ricordavo per intero :(

L'id ho controllato la tabella del mio database, e l'id è diverso ed unico per ogni utente. :D
Ora visto che per passare da un utente all'altro usi la sessione
HTML:
echo '<b><center>'. $_SESSION['utente'].'</center></b><br><br>';
Mi chiedo come prendi il dato, perché credo che il problema sia tutto lì.

Due considerazioni da fare, una in PHP: require e require_once fanno la stessa cosa, ma require_once obbliga il PHP a controllare se la risorsa richiesta ( il file che alleghi ) è gia stata caricata, nel caso non la ricarica di nuovo, require la carica ogni volta.
Francamente nel tuo caso non fa differenza, tanto carichi la pagina ogni volta che serve e non ci sono ulteriori caricamenti dinamici, però ti consiglio di usare sempre ovunque require_once, è un po' più lento ( 1 millisecondo? ) e ti permette di star sicuro di on trovarti poi il file ricaricato due volte perché un altro file lo ha già fatto, creando un loop infinito di caricamenti che manda in crash il sistema!

HTML: ovviamente puoi usare anche html 1.0 non c'è nulla di male a farlo, sono scelte libere, ma ti consiglio di imparare veramente l'html, magari iniziando dal 5.
Manuali e risorse? Come manuali o meglio libri la cosa migliore è la forma cartacea, magari prendendo in prestito il libro in biblioteca.
Risorse? Mr Webmaster? :D
Poi ovvio sempre e comunque www.php.net per il PHP

PS ma davvero ti hanno insiegnato quell'html a sQuola?
 

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
Ora visto che per passare da un utente all'altro usi la sessione
HTML:
echo '<b><center>'. $_SESSION['utente'].'</center></b><br><br>';
No questa stringa mi serve solo per visualizzare il nome utente, serve solo d'abbellimento tutto qui, non ha un utilità a se.

Mi chiedo come prendi il dato, perché credo che il problema sia tutto lì.

Due considerazioni da fare, una in PHP: require e require_once fanno la stessa cosa, ma require_once obbliga il PHP a controllare se la risorsa richiesta ( il file che alleghi ) è gia stata caricata, nel caso non la ricarica di nuovo, require la carica ogni volta.
Francamente nel tuo caso non fa differenza, tanto carichi la pagina ogni volta che serve e non ci sono ulteriori caricamenti dinamici, però ti consiglio di usare sempre ovunque require_once, è un po' più lento ( 1 millisecondo? ) e ti permette di star sicuro di on trovarti poi il file ricaricato due volte perché un altro file lo ha già fatto, creando un loop infinito di caricamenti che manda in crash il sistema!
Perdonami, ma sono un neofita, potresti spiegarmi meglio il processo, se ti fa piacere ovviamente :) Grazie


HTML: ovviamente puoi usare anche html 1.0 non c'è nulla di male a farlo, sono scelte libere, ma ti consiglio di imparare veramente l'html, magari iniziando dal 5.
Manuali e risorse? Come manuali o meglio libri la cosa migliore è la forma cartacea, magari prendendo in prestito il libro in biblioteca.
Risorse? Mr Webmaster? :D
Poi ovvio sempre e comunque www.php.net per il PHP
Ok grazie seguirò il tuo consiglio :) cercherò su internet e in biblioteca, gentilissimo :)

PS ma davvero ti hanno insiegnato quell'html a sQuola?
Si davvero :(
 

JohnnyIbiza021a

Nuovo Utente
23 Nov 2015
11
0
0
Ragazzi, ma in MySQLi come si fa a generare l'output della tabella?

PHP:
<?php
session_start();
require_once('./funzioni.php');
require('./config.php');
?>

<html>
<title>Area Personale</title>
<body>
<?php
include("testa_sito.php");
 $username="username";
 $password="password";
 $database="my_testingsite1992";

$msqli= new mysqli("localhost", "username", "password", "my_testingsite1992");

if (mysqli_connect_error())
{
echo"Errore di connessione: ". mysqli_connect_error();
}
else
{
echo"connessione avvenuta con successo";
}

$id=$_POST['id'];
$res=mysqli_query($conn, "SELECT username, email, canal_yt FROM utenti WHERE id=$id");$id=$_POST['id'];
$res=mysqli_query($conn, "SELECT username, email, canal_yt FROM utenti WHERE id=$id");
 $risultati=mysqli_query($query);
 
  
 mysqli_close();
 
 echo '<b><center>'. $_SESSION['utente'].'</center></b><br><br>';

	$id = $id->id;
     $username= stripslashes($post_obj->username);
     $email=stripslashes($post_obj->email);
     $canal_yt=stripslashes($post_obj->canal_yt);
 
     echo "<b> $username </b>"; 
     echo "<b> $email </b>";
     echo "<br> $canal_yt </br>";
      
 
 ?>
 </body>
 </html>