- Home
- Categorie
- Coding e Sistemistica
- PHP
- dopo il login inserire nome utente
-
dopo il login inserire nome utente
ciao a tutti
l'utente si logga benissimo e viene indirizzato alla pagina 'index.php'.
vorrei che venisse visualizzato il nome dell'utente in questa pagina
index.php
[PHP]
<?php
//index.php
include('database_connection.php');
if(!isset($_SESSION["user_id"]))
{
header("location:login.php");
}?>
<!DOCTYPE html>
<html lang="en">
<head>
<title>PHP Register Login Script with Email Verification</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<br />
<br />
<h1 align="center">PHP Register Login Script with Email Verification</h1><h3 align="center">Welcome Verified <?php echo $_SESSION["user_id"] ?> Email User</h3>
<h4 align="center"><a href="logout.php">Logout</a></h4>
</body>
</html>
[/PHP]database_connection.php
[PHP]
<?php
//database_connection.php$connect = new PDO('mysql:host=localhost;dbname=testing', 'root', 'admin');
session_start();
[/PHP]
se uso questo codice
[PHP]
<h3 align="center">Welcome Verified <?php echo $_SESSION["user_id"] ?> Email User</h3>[/PHP]ottengo:
[h=3]Benvenuto Utente verificato 7 email
dove 7 = al campo user_id nel database
qualsiasi consiglio è benaccetto
ciao
-
Ciao,
intanto ti consiglio di inserire l'istruzione exit; dopo header() in quanto, se la ometti, lo script continuerà ad essere eseguito.Per stampare il nome utente ti basta prelevarlo dal database e salvarlo in una var di sessione, così come hai fatto per l'id.
-
grazie per la risposta.........ma non riesco
ho provato a modificare
[PHP]
if(isset($_SESSION['user_id']))
{
header("location:index.php");
exit();
}$message = '';
if(isset($_POST["login"]))
{
$query = "
SELECT * FROM register_user
WHERE user_email = :user_email
";
$statement = $connect->prepare($query);
$statement->execute(
array(
'user_email' => $_POST["user_email"]
)
);
$count = $statement->rowCount();
if($count > 0)
{
$result = $statement->fetchAll();
foreach($result as $row)
{
if($row['user_email_status'] == 'verified')
{
if(password_verify($_POST["user_password"], $row["user_password"]))
//if($row["user_password"] == $_POST["user_password"])
{
$_SESSION['user_id'] = $row['register_user_id'];
header("location:index.php");
}
else
{
$message = "<label>Wrong Password</label>";
}
}
else
{
$message = "<label class='text-danger'>Please First Verify, your email address</label>";
}
}
}
else
{
$message = "<label class='text-danger'>Wrong Email Address</label>";
}
}
[/PHP]
credendo (erroneamente) che modificando questo avrei ottenuto la sessione user
-
Nel codice che hai postato hai
[PHP]
$_SESSION['user_id'] = $row['register_user_id'];
[/PHP]Fai lo stesso per il nome utente, se il campo nel DB è register_user_name
[PHP]
$_SESSION['user_name'] = $row['register_user_name'];
[/PHP]
-
provato cosi
[PHP]
$_SESSION['user_name'] = $row['user_name'];
header("location:index.php");
[/PHP]
e in index.php
[PHP]
6 session_start();
7
8 $_SESSION["user_name"];
9 echo $_SESSION['user_name'];
[/PHP]
ma mi da erroreAvviso: indice non definito: nome_utente in \ xampp \ htdocs \ copia_email_address \ index.php sulla riga 8 e 9
non riesco a recuperare 'user_name'
-
Ma nello script in cui inizializzi le variabili di sessione lo hai messo session_start()?
A cosa ti serve nell'index l'istruzione 8? La puoi rimuovere.
-
si session_start() è in cima
[PHP]
<?php
//index.php
session_start();
include('database_connection.php');//$_SESSION["user_name"];
echo $_SESSION['user_name'];[/PHP]
se metto 'echo' ottengo il solito errore....indice non definito
probabilmente c'è qualcosa di sbagliato in 'login.php'