Visualizzazione risultati 1 fino 9 di 9

Discussione: profilo utente registrato

  1. #1
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito profilo utente registrato

    Salve a tutti ho un piccolo problema che non riesco a risolvere spero che sono nella sezione giusta, cerco di spiegare il problema, quando un utente fa il login entra in un area riservata, e fin qui tutto ok ora l'utente deve visualizzare i suoi dati es nome email ecc... vi copio qui il codice
    se a posto del $id metto unnumero mi visualizza un utente invece così da errore grazie in anticipo per un aiuto e di capire dove faccio l'errore

    PS la connessione la prende da un file esterno che lo collega con <?php include('../classes/security.php'); ?>

    Grazie per l'aiuto

    Codice PHP:
    <?php
    $query
    = "SELECT * FROM user_form WHERE id='$id'";
    $query_run = mysqli_query($connection, $query);

    ?>
    <tr>
    <th scope="col">ID</th>
    <th scope="col">Username</th>
    <th scope="col">E-Mail</th>
    <th scope="col">Categoria</th>
    <th scope="col">Modifica</th>
    </tr>
    </thead>
    <tbody>
    <?php
    if(mysqli_num_rows($query_run) > 0)
    {
    while(
    $row = mysqli_fetch_assoc($query_run))
    {
    ?>
    <tr>
    <td><?php echo $row['id']; ?></td>
    <td><?php echo $row['name']; ?></td>
    <td><?php echo $row['email']; ?></td>
    <td><?php echo $row['type']; ?></td>
    <td>
    <form action="register_edit.php" method="POST">
    <input type="hidden" name="edit_id" value="<?php echo $row['id']; ?>">
    <button type="submit" style="width:95px;" name="edit_btn" class="btn btn-success">Modifica</button>
    </form>
    </td>
    </td>
    </tr>
    <?php
    }

    }
    else {
    echo
    "Nop record Foond";
    }

    ?>
    Ultima modifica di dreadnaut : 10-02-2024 alle ore 16.28.37 Motivo: + tag [php] per il codice

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    se a posto del $id metto unnumero mi visualizza un utente invece così da errore grazie in anticipo per un aiuto e di capire dove faccio l'errore
    Non sono certo di aver capito la tua domanda 🤔 In teoria dovresti mettere dentro $id l'identificatore dell'utente che si è loggato, ma dove lo fai?

  3. #3
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,681

    Predefinito

    Utilizzi le sessioni? Cosa salvi in sessione?

    Ciao!

  4. #4
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito

    Ciao grazie di avermi risposto, in effetti teoricamente ci va il $id ma mi da errore la riga voe c'è $query = "SELECT * FROM user_form WHERE id='$id'"; , ti chiedo scusa ma non sono molto esperto cerco di segiore dei tutorial, preticamente

    l'errore che mi appare è questo


    Warning
    : Undefined variable $id in
    C:\xampp\htdocs\radio\user\index.php
    on line
    27

    Nop record Foond
    Ultima modifica di ik0yuo : 10-02-2024 alle ore 17.01.01

  5. #5
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    4,251

    Predefinito

    Citazione Originalmente inviato da ik0yuo Visualizza messaggio
    Warning
    : Undefined variable $id in
    C:\xampp\htdocs\radio\user\index.php
    on line
    27
    Salve,
    come ha configurato / posizionato il tutto?

    Quello è un percorso da applicativo in locale, quindi sul pc. Qui sul AlterVista, o meglio nel server, non esiste C:\ nell'area dedicata al sito.

    Il percorso su sui serve AlterVista è qualcosa del tipo /membri/.dummy/ik0yuo/xampp/htdocs/radio/user/index.php. poi dal web il persorso sarà ad es. ik0yuo.altervista.org/xampp/htdocs/radio/user/index.php. Ovviamente la cosa migliore è di gestirlo come percorso relativo e non assoluto, come mostrato nel mio esempio.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 10-02-2024 alle ore 18.11.20

  6. #6
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito

    Salve si esatto è in locale quindi è il percorso è C:\xampp\htdocs\radio\user\index.php però la domanda era riferito all'errore e non capisco dove sbaglio grazie di avermi risposto

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Quando scrivi
    Codice PHP:
    $query = "SELECT * FROM user_form WHERE id='$id'";
    stai dicendo al PHP di prendere il valore di $id e metterlo all'interno della query. Se non hai mai messo un valore dentro $id, ottieni l'errore sopra.

    L'idea di un sistema di login di solito è:

    1. l'utente si autentica con nome e password
    2. uno script controlla che nome e password siano corrette, e crea una sessione, mettendoci dentro le informazioni dell'utente
    3. le altre pagine del sito vedono le informazioni dell'utente nella sessione, e le usano per personalizzare la pagina.

    Per poter prendere i dettagli dell'utente, devi:
    a) averne salvato l'identificatore nella sessione al momento del login, qualcosa tipo
    Codice PHP:
    session_start();
    $_SESSION['id_utente'] = ...
    b) averne estratto all'inizio della pagina, ad esempio:
    Codice PHP:
    $id = $_SESSION['id_utente'] ?? null;

    # se l'utente non è loggato, lo rimandiamo alla pagina di login
    if (!$id) {
    header('Location: /login.php');
    return;
    }
    Vedi anche: sessioni in PHP

  8. #8
    ik0yuo non è connesso Neofita
    Data registrazione
    17-10-2021
    Messaggi
    16

    Predefinito

    Buon giorno allora la verifica la fa vi copio il file così vediamo se sbaglio qualcosa.
    quando un utente effettua il login il file che ho nominato loginuser.php verifica se è l'utente è registrato se non è registrato lo riporta su la pagina del login e questo è lo script che ho fatto
    Codice PHP:
    <?php
    include('../classes/security.php');
    include(
    '../db/config.php');



    if(isset(
    $_POST['login_btn']))
    {
    $email_login = $_POST['emaill'];
    $password_login = $_POST['passwordd'];

    $query = "SELECT * FROM user_form WHERE email='$email_login' AND password='$password_login' LIMIT 1";
    $query_run = mysqli_query($connection, $query);
    $usertypes = mysqli_fetch_array($query_run);

    if(
    $usertypes['type'] == "admin")
    {
    $_SESSION['username'] = $email_login;
    header('Location: ../admin/index.php');
    }
    elseif(
    $usertypes['type'] == "user")
    {
    $_SESSION['username'] = $email_login;
    header('Location: ../user/index.php');
    }
    elseif(
    $usertypes['type'] == "banned")
    {
    $_SESSION['username'] = $email_login;
    header('Location: ../pages/index.php');
    }
    else
    {
    $_SESSION['status'] = "Email / Password is Invalid";
    header('Location: ../auth/login.php');
    }

    }
    ?>

    il file security.php è collegato in tutte le pagine lo script è questo
    <?php
    session_start
    ();

    include(
    '../db/config.php');
    if(
    $connection)
    {
    //echo "Database Connected";
    }
    else
    {
    header("Location: ../db/config.php");
    }

    if(!
    $_SESSION['username'])
    {
    header('Location: ../auth/login.php');
    }
    ?>
    spero ora è più chiaro per capire il problema
    grazie infinite per il vostro aiuto

    Carlo
    Ultima modifica di dreadnaut : 11-02-2024 alle ore 19.18.20 Motivo: + tag [php] per il codice

  9. #9
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    Nel tuo codice salvi l'indirizzo email dell'utente nella sessione, ma non l'identificatore. Qua:
    Codice PHP:
    $_SESSION['username'] = $email_login;
    potresti salvare anche l'id:
    Codice PHP:
    $_SESSION['username'] = $email_login;
    $_SESSION['user_id'] = $usertypes['id'];
    poi l'altra pagina può leggerlo come $_SESSION['user_id'] ed usarlo per recuperare i dettagli.


    A parte: problema di sicurezza in questa riga, dove infili i dati che arrivano dal browser via $_POST direttamente nella query, senza controlli o protezione.
    Codice PHP:
    $query = "SELECT * FROM user_form WHERE email='$email_login' AND password='$password_login' LIMIT 1";
    Un malintenzionato potrebbe manomettere la tua query ed usarla per danneggiare il tuo database. I "prepared statement" ti aiutano ad evitare questo problema — puoi trovare un paio di vecchie discussioni sul forum, o vari tutorial in giro.

    Infine, sul forum puoi usare [ php ] ... [ /php ] per evidenziare il codice, così è più facile da leggere.
    Ultima modifica di dreadnaut : 11-02-2024 alle ore 19.30.48

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •