Stampare informazioni utente

ahmadpour

Utente Attivo
10 Nov 2013
35
0
0
Ciao ho creato un form di registrazione e login e vorrei che quando uno accede vengono scritte le informazioni dell' utente. Ho scritto un codice peró quando provo ad accedere con un altro account mi appare solo le informazioni del primo account con cui ho loggato. Potreste aiutarmi? vorrei che le informazioni cambiano in base a colui che accede. Questo é il codice che ho scritto:

PHP:
<?php
$host="localhost"; // host del database
$uname="root"; // utente del db
$psw=""; // password dell'utente sopra
$nomedb="familiaechat"; // nome del db
mysql_connect($host,$uname,$psw);
mysql_select_db($nomedb);
$q=mysql_query("SELECT * FROM users");
$r=mysql_fetch_assoc($q);
// Ora se nella tabella c'è un campo chiamato ad esempio "nome".

//Se fai così:
echo '<br>';
echo 'Email: '; echo $r['email']; echo '<br>';
echo 'Data di registrazione: '; echo $r['data_reg']; echo '<br>';

?>

Ciao e grazie
 
Ultima modifica di un moderatore:
in questo modo stai selezionando tutti gli utenti della tabella user.

per il singolo utente devi impostare la query con WHERE es:

PHP:
$q=mysql_query("SELECT * FROM users WHERE username="'$username'");

Ciao scusa... ce l'ho fatta però vorrei visualizzare le informazioni anche sulle altre pagine. Appena accedo le informazioni me le fa vedere però quando clicco sul menu che mi porta sul profilo utente non me le fa vedere. Mi viene un errore con scritto che la variabile username non è definita, ho provato a scrivere $username = $_SESSION['username_logged']; ma niente. Come posso fare per visualizzare le informazioni dell utente loggato anche in altre pagine??

Ciao e grazie
 
ciao, nella pagina in cui effettui il login devi impostare la asessione:
PHP:
$q=mysql_query("SELECT * FROM users WHERE username='$username'"); 
if(mysql_num_rows($q)>0)
{
$r=mysql_fetch_assoc($q); 
$_SESSION['username_logged']=$r['username'];
}
 
ciao, nella pagina in cui effettui il login devi impostare la asessione:
PHP:
$q=mysql_query("SELECT * FROM users WHERE username='$username'"); 
if(mysql_num_rows($q)>0)
{
$r=mysql_fetch_assoc($q); 
$_SESSION['username_logged']=$r['username'];
}


Ciao ho scritto quei codici peró mi appare l'errrore variabile non definita. Quando accedo mi vengano le informazioni peró quando clicco sul profilo utente mi viene un errore cioé undefined variable _SESSION .

Quando accedo mi vengono le informazioni perché ho questo codice: $username = $_SESSION['username_logged'];
ho provato a copiarlo ed incollarlo su la pagina del profilo ma non funziona. In poche parole quel codice mi funziona solo appena sono entrato nel mio account poi quando cambio pagina mi da errore. Aiuto !!!
Ciao e grazie
 
Probabilmente manca session_start() all' inizio delle pagine.
Puoi postare il codice della pagina login?

Ciao questo é il codice della pagina dopo che uno é entrato cioé (logged.php):


HTML:
<?php
require_once('lib/Users.class.php');
$login = New Users;
$login->esegui_login();
?>
<html>
<head>
<title>Login page</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js"></script> 
<script type="text/javascript" src="js/validation_login.js"></script> 
</head>
<body>
<div id="content">


	
<div id="top_header">

</div>
<br>
<br>
<br>
<div id="main">
<?php


$username = $_SESSION['username_logged'];


$host="localhost"; // host del database
$uname="root"; // utente del db
$psw=""; // password dell'utente sopra
$nomedb="familiaechat"; // nome del db
mysql_connect($host,$uname,$psw);
mysql_select_db($nomedb);
$q=mysql_query("SELECT * FROM users WHERE username='$username'");
$r=mysql_fetch_assoc($q);
// Ora se nella tabella c'è un campo chiamato ad esempio "nome".

//Se fai così:
echo '<br><br><br><br><br><br><br><br>';
echo '<font face="Verdana, Geneva, sans-serif" style="font-weight: bold;"><center>'; echo $r['name']; echo ' '; echo $r['lastname']; echo '</font>'; echo '<br><br>';
echo '<center>Email </center>'; echo $r['email']; echo '<br>';
echo 'Data di registrazione: '; echo $r['data_reg']; echo '<br>';

?>
come stai?
</div>

<div id="left_sidebar">
<p>Benvenuto <strong><?php echo $login->get_username(); ?></strong></p>

<?php
echo '<br><br><br><br><br><br><br><br>';
echo '<font face="Verdana, Geneva, sans-serif" style="font-weight: bold;"><center>'; echo $r['name']; echo ' '; echo $r['lastname']; echo '</font>'; echo '<br><br>';


include 'left_menu.php';
?>


</div>


<div id="right_sidebar">

</div>




</div>
</body>
</html>


questo invece é quando uno esegue il login (login.php):

HTML:
<?php

require_once('lib/Users.class.php');
$login = New Users;
$login->esegui_login();
?>
<html>
<head>
<title>Login page</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js"></script> 
<script type="text/javascript" src="js/validation_login.js"></script> 
</head>
<body>
<div id="content">


<?php if(!$login->is_logged()): ?>
	<?php echo $login->get_login_form(); ?>
	

<?php else: 

	?>

<?php endif; ?>




</div>
</body>
</html>

Ciao e grazie
 
Ultima modifica:
Ciao questo é il codice della pagina dopo che uno é entrato cioé (logged.php):

Se dalla sessione vuoi prendere l'username:
PHP:
$username = $_SESSION['username_logged'];

devi controllare questo metodo all'interno della classe:
PHP:
$login->is_logged()
e chiaramente avere session_start() all'inizio del file logged.php.
Se il login va a buon file devi dare il valore alla variabile di sessione del tipo:
PHP:
$_SESSION['username_logged']=$username;

Poi in questa parte di codice:
PHP:
?php if(!$login->is_logged()): ?>
	<?php echo $login->get_login_form(); ?>
	

<?php else: 

	?>

<?php endif; ?>
se il login viene effettuato rimane pagina bianca oppure c'e' un redirect?
 
Se dalla sessione vuoi prendere l'username:
PHP:
$username = $_SESSION['username_logged'];

devi controllare questo metodo all'interno della classe:
PHP:
$login->is_logged()
e chiaramente avere session_start() all'inizio del file logged.php.
Se il login va a buon file devi dare il valore alla variabile di sessione del tipo:
PHP:
$_SESSION['username_logged']=$username;

Poi in questa parte di codice:
PHP:
?php if(!$login->is_logged()): ?>
	<?php echo $login->get_login_form(); ?>
	

<?php else: 

	?>

<?php endif; ?>
se il login viene effettuato rimane pagina bianca oppure c'e' un redirect?



Ciao scusa ma ho 14 anni. Ho provato a scrivere il codice che mi hai detto cioé session_start(); peró non mi appare niente, invece se lo tolgo mi appare peró quando cambio pagina mi scompare.

<?php if(!$login->is_logged()): ?>
<?php echo $login->get_login_form(); ?>


<?php else:

?>

<?php endif; ?>

Quello che intendevo era che se uno riesce ad accedere allora fai vedere il sito se no rimani sulla pagina di registrazione.
Ciao
 
Si ho capito, nella seconda pagina metti session_start() all'inizio:
PHP:
<?php
session_start();
?>

Quindi se il login ti va, dovresti prendere la condizione "else":
PHP:
<?php if(!$login->is_logged()): ?>
<?php echo $login->get_login_form(); ?>


<?php else:
 echo "login riuscito";
if(isset($_SESSION['username_logged']))
{
echo $_SESSION['username_logged']; 
}
?>

<?php endif; ?>

Se ricarichi la pagina ti dovrebbe stamapre la variabilie di sessione..
 
Si ho capito, nella seconda pagina metti session_start() all'inizio:
PHP:
<?php
session_start();
?>

Quindi se il login ti va, dovresti prendere la condizione "else":
PHP:
<?php if(!$login->is_logged()): ?>
<?php echo $login->get_login_form(); ?>


<?php else:
 echo "login riuscito";
if(isset($_SESSION['username_logged']))
{
echo $_SESSION['username_logged']; 
}
?>

<?php endif; ?>

Se ricarichi la pagina ti dovrebbe stamapre la variabilie di sessione..


Ciao non mi stampa nulla... ho scritto su login.php

<?php

session_start();

?>


e poi ho modificato il login con quello che mi hai scritto. Senza session_start(); mi fa vedere le informazioni e anche quando ricarico peró se vado in un altra pagina le informazioni scompaiono. Su logged.php mi dice undefined variable _SESSION .
Ciao
 
e poi ho modificato il login con quello che mi hai scritto. Senza session_start(); mi fa vedere le informazioni e anche quando ricarico peró se vado in un altra pagina le informazioni scompaiono

nell'altra pagina per recuperare la sessione devi sempre mettere session_start() all'inizio.Quindi mi pare di capire che se nella pagina login.php senza session_start va bene, questa funzione sara' presente per forza da qualche altra parte, pero' ti dovrebbe dare l'errore.. hai provato a inserire all'inizio:
PHP:
ini_set("display_errors",1);
per vedere eventuali errori?
 
nell'altra pagina per recuperare la sessione devi sempre mettere session_start() all'inizio.Quindi mi pare di capire che se nella pagina login.php senza session_start va bene, questa funzione sara' presente per forza da qualche altra parte, pero' ti dovrebbe dare l'errore.. hai provato a inserire all'inizio:
PHP:
ini_set("display_errors",1);
per vedere eventuali errori?

Ho un errore quando entro nella pagina logged.php

Notice: Undefined index: _SESSION in C:\wamp\www\test\guida_semple\logged.php

Se metto session_start(); non mi appaiono le informazioni ma se lo tolgo mi appaiono peró con l'errore che ho scritto.
Quando ricarico le informazioni rimangono peró io vorrei visualizzarle anche in altre pagine cosa che non fa
 
Ultima modifica:
ok, per recuperare le informazioni nell'altra pagina fai un semplice test, commenta tutto e scrivi:
PHP:
<?php
session_start();
if(isset($_SESSION['username_logged']))
{
$username=$_SESSION['username_logged'];
echo $username;
}
else
{
echo "sessione mancante";}
?>
 
ok, per recuperare le informazioni nell'altra pagina fai un semplice test, commenta tutto e scrivi:
PHP:
<?php
session_start();
if(isset($_SESSION['username_logged']))
{
$username=$_SESSION['username_logged'];
echo $username;
}
else
{
echo "sessione mancante";}
?>

Ciao se scrivo

<?php
session_start();
if(isset($_SESSION['username_logged']))
{
$username=$_SESSION['username_logged'];
echo $username;
}
else
{
echo "sessione mancante";}
?>

e poi

$username=$_SESSION['username_logged'];


non mi appare il nome $username

mentre se tolgo

$username=$_SESSION['username_logged'];

mi appare sessione mancante
 
Ultima modifica:
Appunto ti ho modificato la pagina di login fai una prova adesso e poi ricarica la pagina:
PHP:
<?php
session_start();
ini_set("display_errors",1);
require_once('lib/Users.class.php');
$login = New Users;
$login->esegui_login();
?>
<html>
<head>
<title>Login page</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js"></script> 
<script type="text/javascript" src="js/validation_login.js"></script> 
</head>
<body>
<div id="content">


<?php if(!$login->is_logged()): ?>
	<?php echo $login->get_login_form(); ?>
	

<?php else: 
echo "Login effettuato";
         if(isset($_SESSION['username_logged']))
                 {
                     $username=$_SESSION['username_logged'];
                   echo $username;
                    }   
	?>

<?php endif; ?>




</div>
</body>
</html>
 
Appunto ti ho modificato la pagina di login fai una prova adesso e poi ricarica la pagina:
PHP:
<?php
session_start();
ini_set("display_errors",1);
require_once('lib/Users.class.php');
$login = New Users;
$login->esegui_login();
?>
<html>
<head>
<title>Login page</title>
<link rel="stylesheet" href="css/style.css" type="text/css" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery.validate/1.7/jquery.validate.js"></script> 
<script type="text/javascript" src="js/validation_login.js"></script> 
</head>
<body>
<div id="content">


<?php if(!$login->is_logged()): ?>
	<?php echo $login->get_login_form(); ?>
	

<?php else: 
echo "Login effettuato";
         if(isset($_SESSION['username_logged']))
                 {
                     $username=$_SESSION['username_logged'];
                   echo $username;
                    }   
	?>

<?php endif; ?>




</div>
</body>
</html>


Ciao non mi appare l'username e le informazioni

Ho capito....
ho cancellato tutto su logged.php e ho scritto il codice che mi ha detto

ho fatto il login e mi é apparso login effettuato ahmadpour .

Credo che l'errore sia su logged.php non login.php

All'inizio c'era solo login.php peró volevo che quando accedeva entrava su logged.php e quindi ho spostato le informazioni. é meglio che quando uno fai il login sia sempre su login.php oppure lo porta in un altra pagina?
 
Ultima modifica:
Nella pagina di login appunto, fai il login dell'utente, se va a buon fine lo mandi ad altre pagine altrimenti lo blocchi facendo visualizzare il form con eventuale messaggio di errore...
 

Discussioni simili