• User

    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


  • User Attivo

    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.


  • User

    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


  • User Attivo

    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]


  • User

    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 errore

    Avviso: indice non definito: nome_utente in 😄 \ xampp \ htdocs \ copia_email_address \ index.php sulla riga 8 e 9

    non riesco a recuperare 'user_name'


  • User Attivo

    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.


  • User

    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'