• User

    profilo per utente nel propio sito

    ciao a tutti,
    vorrei includere un profilo per ogni utente nel mio sito web 🙂 come posso fare ?
    grazie 🙂


  • ModSenior

    Ciao max-98,
    la domanda è molto generica.
    Devi avere una tabella(Ma puoi averne anche di più) del database con tutte le informazioni che ti interessano, successivamente crei una pagina php che utilizza una variabile GET per sapere quale profilo vuoi vedere, e fà la query per ottenere le informazioni di quello specifico utente ed infine genera la pagina da mostrare al visitatore.


  • User

    così ? correggimi se trovi errori 😉
    [PHP]<?/per vedere il profilo:.php?id=/<?php if(isset($_SESSION['Nome'])) { $my_id = userId($_SESSION['Nome']); ?> <a href="user.php?id=<?php echo $my_id; ?>">clicca per vedere il tuo profilo </a> <a href="edit_profilo.php">clicca per modificare il tuo profilo</a> <?php } else { ?> <a href="index.php">home</a> <?php } ?>

    // Nome$Nome = $_GET['Nome'];$Nome = mysql_query("SELECT Nome FROM membri WHERE Nome = '$Nome'");$recordset = mysql_fetch_row($Nome);$Nome = $recordset[0];// Cognome $Cognome = $_GET['Cognome']; $cognome = mysql_query("SELECT cognome FROM membri WHERE cognome = '$cognome'");$recordset = mysql_fetch_row($cognome);$cognome = $recordset[0];//Immagine$Img = $_GET['img'];$foto = mysql_query("SELECT foto FROM membri WHERE foto = '$foto' ") // Stampo tutti i dati$datiUtente = mysql_fetch_array(mysql_query("SELECT * FROM membri WHERE Nome LIKE '$Nome'")); ?><!--form che visualizza l'utente nel profilo--><center><h2>Profilo di <?php echo $datiUtente['Nome']; ?></h2><p><strong>Nome: </strong><?php echo $datiUtente['Nome']; ?></p><p><strong>Cognome: </strong><?php echo $datiUtente['cognome']; ?>'</p><p><strong>Descrizione: </strong><?php echo $datiUtente['Descrizione']; ?></p></center><?/*ovviamente ho copiato la tabella da phpmyadmin (quindi copia e incolla */

    //tabella my_sql

    Campo    Tipo    Collation    Attributi     Null         id    int(11)             No        auto_increment                                      Nome    varchar(60)    latin1_swedish_ci                            data _iscrizione    varchar(60)    latin1_swedish_ci                                                Cognome    varchar(60)    latin1_swedish_ci                       Descrizione    varchar(60)    latin1_swedish_ci                                                foto int (60) latin1_swedish_ci                  
    

    PRIMARY("id") ;
    ?>[/PHP]


  • User

    non pensavo che si visualizzasse così 😞

    <?
    /*
    per vedere il profilo:
    .php?id=
    */
    <?php
    if(isset($_SESSION['Nome'])) {
    $my_id = userId($_SESSION['Nome']);
    ?>
    <a href="user.php?id=<?php echo $my_id; ?>">clicca per vedere il tuo profilo </a> <a href="edit_profilo.php">clicca per modificare il tuo profilo</a>
    <?php
    } else {
    ?>
    <a href="index.php">home</a>
    <?php
    }
    ?>

    // Nome
    $Nome = $_GET['Nome'];
    $Nome = mysql_query("SELECT Nome FROM membri WHERE Nome = '$Nome'");
    $recordset = mysql_fetch_row($Nome);
    $Nome = $recordset[0];
    // Cognome
    $Cognome = $_GET['Cognome'];
    $cognome = mysql_query("SELECT cognome FROM membri WHERE cognome = '$cognome'");
    $recordset = mysql_fetch_row($cognome);
    $cognome = $recordset[0];
    //Immagine
    $Img = $_GET['img'];
    $foto = mysql_query("SELECT foto FROM membri WHERE foto = '$foto' ")
    // Stampo tutti i dati
    $datiUtente = mysql_fetch_array(mysql_query("SELECT * FROM membri WHERE Nome LIKE '$Nome'"));

    ?>
    <!--form che visualizza l'utente nel profilo-->
    <center>
    <h2>Profilo di <?php echo $datiUtente['Nome']; ?></h2>
    <p><strong>Nome: </strong><?php echo $datiUtente['Nome']; ?></p>
    <p><strong>Cognome: </strong><?php echo $datiUtente['cognome']; ?>'</p>
    <p><strong>Descrizione: </strong><?php echo $datiUtente['Descrizione']; ?></p>
    </center>
    <?
    /*
    ovviamente ho copiato la tabella
    da phpmyadmin (quindi copia e incolla
    */

    //tabella my_sql

    Campo    Tipo    Collation    Attributi     Null     
    id    int(11)             No        auto_increment                                  
    Nome    varchar(60)    latin1_swedish_ci                        
    data _iscrizione    varchar(60)    latin1_swedish_ci                                            
    Cognome    varchar(60)    latin1_swedish_ci                   
    Descrizione    varchar(60)    latin1_swedish_ci                                            
    foto int (60) latin1_swedish_ci                  
    

    PRIMARY("id") ;

    ?>


  • ModSenior

    Mi sembra un pò confuso, ad esempio non capisco perchè 3 query sulla tabella membri.


  • User

    perchè ? tu come avresti fatto ?


  • ModSenior

    Solitamente si utilizza l'id, anche perchè la chiave primaria di norma utilizzata è l'id. Poi perchè fare 3 query sulla stessa tabella?


  • User

    pensavo che si facesse così 😉 quindi come devo ricrearla ?


  • ModSenior

    Fai la query con WHERE id = $id, e $id ha come valore l'id passato mediante variabile GET.


  • User

    SELECT * FROM user WHERE id = '$id'

    $id = $GET['user']

    così ?


  • ModSenior

    Sostanzialmente si, è quello che devi fare.


  • User

    così ?

    <html>
    <br/><br/>
    <!-- FORM REGISTRATI -->
    <form name="registrati" method="GET" action="">
    Nome:<br/><input type="text" name="Nome"><br/>
    Cognome:<br/><input type="text" name="Cognome"> <br/>
    Descrizione:<br/><input type="text" name="Descrizione"><br/>
    <button>invia</button><br/>
    <?
    // PROFILO :
    print " profilo di $Nome"
    <?php echo htmlspecialchars($_GET['Nome']); ?>
    (mysql_query("SELECT Nome FROM users")

    <?php echo htmlspecialchars($_GET['Cognome']); ?>
    (mysql_query("SELECT Cognome FROM users")
    <?php echo htmlspecialchars($_GET['Descrizione']);
    (mysql_query("SELECT Descrizione FROM users")
    ?>