Visualizzazione risultati 1 fino 5 di 5

Discussione: [php] profilo utente

  1. #1
    Guest

    Predefinito [php] profilo utente

    ciao a tutti...

    ho un problema con un forum board creato da me... sto implementando il profilo e lo stavo finendo se nn fosse per l'errore che mi da adesso quando modifico il profilo...

    ecco il codice della pagina profile.php:

    Codice PHP:
    <?php

    $id
    = $_GET['id'];
    $sql = mysql_query("SELECT * FROM utenti WHERE id='$id'");
    $row = mysql_fetch_assoc($sql);
    $username = username_dauid($row['id'],true);
    $nome = $row['nome'];
    $email = $row['email'];
    $password = $row['password'];
    $avatar = $row['avatar'];
    $msn = $row['msn'];
    $gruppo = $row['gruppo'];
    $sql_gruppo = mysql_query("SELECT * FROM gruppi WHERE id_identificativo='".$gruppo."'") or die(mysql_error());
    $row_gruppo = mysql_fetch_assoc($sql_gruppo);
    $nome_gruppo = $row_gruppo['nome'];
    $colore_gruppo = $row_gruppo['colore'];
    $tag_prima = $row_gruppo['tag_prima_html'];
    $tag_dopo = $row_gruppo['tag_dopo_html'];

    if(!
    $avatar){
    $avatar = "img/avatar_predefinito.gif";
    }
    if (!
    $nome){
    $nome = "N/D";
    }
    if(!
    $msn){
    $msn = "N/D";
    }
    if(!
    $email){
    $email = "N/D";
    }

    $data_reg = $row['data_reg'];

    $sql2 = mysql_query("SELECT * FROM utenti_online WHERE chiave_utente='".$row['id']."'") or die(mysql_error());

    echo
    "<div id=\"contenuto\">\n";
    pagina_corr("<a href=\"index.php\">$titolo_forum</a> / <span class=\"attivo\">Profile of ".username_dauid($row['id'],false)."</span>");
    echo
    "</div><br>\n";
    echo
    "<center><img src=\"$avatar\" border=\"0\"><br><br>\n";
    echo
    "</center>\n";
    echo
    "<table border=\"0\" cellspacing=\"0\" cellpadding=\"5\" width=\"95%\" align=\"center\">\n";
    echo
    "<tbody><tr><td class=\"forum_header\" align=\"left\" colspan=\"2\">General informations</td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\" width=\"30%\"><b>Username</b></td><td class=\"forum_header2\" width=\"70%\">$username</td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\" width=\"30%\"><b>Real name</b></td><td class=\"forum_header2\" width=\"70%\">$nome</td></tr>\n";
    if(
    mysql_num_rows($sql2) == 0){
    $stato = "<font color=\"ff0000\">Offline</font>\n";
    }else{
    $row2 = mysql_fetch_assoc($sql2);
    $pagina_corrente = $row2['pagina_corrente'];
    $pagina_corrente_admin = substr($pagina_corrente,0,9);
    if(
    $pagina_corrente_admin == "admin.php"){
    $pagina_corrente = "Is viewing a profile";
    }

    $pagina_corrente_profilo = substr($pagina_corrente,0,21);
    if(
    $pagina_corrente_profilo == "index.php?act=profilo"){
    $pagina_corrente = "Is viewing a profile";
    }

    $pagina_corrente_forum = substr($pagina_corrente,0,19);
    if(
    $pagina_corrente_forum == "index.php?act=forum"){
    $pagina_corrente = "Is viewing a forum";
    }

    $pagina_corrente_discussione = substr($pagina_corrente,0,25);
    if(
    $pagina_corrente_discussione == "index.php?act=discussione"){
    $pagina_corrente = "Is viewing a dicussion";
    }

    $pagina_corrente_creadisc = substr($pagina_corrente,0,23);
    if(
    $pagina_corrente_creadisc == "index.php?act=crea_disc"){
    $pagina_corrente = "Is creating a dicussion";
    }

    $pagina_corrente_messaggi = substr($pagina_corrente,0,12);
    if(
    $pagina_corrente_messaggi == "messaggi.php"){
    $pagina_corrente = "Is viewing private messagges";
    }

    if(
    $pagina_corrente == "index.php"){
    $pagina_corrente = "Is viewing the Home Page";
    }
    if(
    $pagina_corrente == "logout.php"){
    $pagina_corrente = "Is doing the Logout";
    }

    $stato = "<font color=\"green\">Online</font>\n";
    $ultima_attivita = "<tr><td class=\"forum_header2\"><b>Last activity</b></td><td class=\"forum_header2\">$pagina_corrente</td></tr>\n";
    }
    echo
    "<tr><td class=\"forum_header2\"><b>Status</b></td><td class=\"forum_header2\">$stato</td></tr>\n";
    echo
    $ultima_attivita;
    echo
    "<tr><td class=\"forum_header\" align=\"left\" colspan=\"3\">Forum informations</td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Group</b></td><td class=\"forum_header2\" width=\"70%\"><font color=\"".$colore_gruppo."\">".$tag_prima . $nome_gruppo . $tag_dopo ."</font></td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Messages</b></td><td class=\"forum_header2\">".messaggi($row['id'])."</td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Date of registration</b></td><td class=\"forum_header2\">$data_reg</b></td></tr>\n";
    if(
    $_SESSION['uid']){
    echo
    "<tr><td class=\"forum_header\" align=\"left\" colspan=\"3\">Informazione contatti</td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Message</b></td><td class=\"forum_header2\"><a href=\"messaggi.php?act=componi&uid=".$row['id']."\">Send a private message</a></td></tr>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Email</b></td><td class=\"forum_header2\">$email</td></tr>\n";
    echo
    "<form class=\"forum_header2\" action=\"inc/updateinfo.php\" method=\"POST\"><tr><td class=\"forum_header2\"><b>Change e-mail:</b></td><td class=\"forum_header2\"><input type=\"text\" value=\"\" name=\"email\"/>&nbsp;&nbsp;<input type=\"submit\" value=\"Change!\"/></td>\n";
    echo
    "Nome: <input type=\"text\" value=\"\" name=\"username\"/>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Change Avatar</b></td><td class=\"forum_header2\">Link: <input type=\"text\" value=\"\" name=\"avatar\"/>&nbsp;&nbsp;<input type=\"submit\" value=\"Change!\"/></td></tr></form>\n";
    echo
    "<tr><td class=\"forum_header2\"><b>Change Password</b></td><td class=\"forum_header2\"><a href=\"change_password.htm\">Change Password?</td></tr>";
    }

    echo
    "</tbody></table><br>\n";



    ?>
    e la pagina updateinfo.php che modifica i dati nel database..:

    Codice PHP:
    <?php

    include "config.php";

    $id = $_POST['id'];
    $email = $_POST['email'];
    $avatar = $_POST['avatar'];


    $sql = "UPDATE `utenti` SET `email` = '$email',`password` = '$password',`avatar` = '$avatar' WHERE id = '$id'";


    mysql_query($sql) or die ("Error: ".mysql_error());



    echo
    "Database updated. <a href='./index.php'>Return to your profile</a>";
    ?>
    non mi viene nessun errore ma non si modificano i dati nel db... provando a mettere 1 nell'ID nella pagina updateinfo.php... da così :

    $sql = "UPDATE `utenti` SET `email` = '$email',`password` = '$password',`avatar` = '$avatar' WHERE id = '$id'";


    a così:

    $sql = "UPDATE `utenti` SET `email` = '$email',`password` = '$password',`avatar` = '$avatar' WHERE id = '1'";



    cioè l'id di un utente... e si modifica alla perfezione.. ma così se gli altri entrano nel loro pannello utente e modificano per esempio l'email modificano quella dell utente ID=1....

    come devo modificare i codici per far si che ogni utente modifichi la loro email usando l'id della loro pagina... cioè ognuno il loro ID..?

    HELP pls

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

    Predefinito

    Prova a controllare $_POST['id'] con la isset() oppure prova a stamparla per vedere cosa contiene.

    Poi, prova anche a togliere dalla query le virgolette: `

    Ciao!
    Ultima modifica di alemoppo : 07-10-2011 alle ore 16.45.10

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da alemoppo Visualizza messaggio
    Prova a controllare $_POST['id'] con la isset() oppure prova a stamparla per vedere cosa contiene.

    Poi, prova anche a togliere dalla query le virgolette: `

    Ciao!
    inanzittutto mi scuso per aver fatto doppio post... poi ti voglio ringraziare per avermi risposto...
    allora... ho provato a stampare $id in una textbox e mi esce l'id giusto dell'utente... il problema è collegarlo con il file updateinfo.php lì avrò sbagliato qualcosa... sono sicuro al 90%...
    ah scusa in quale query devo togliere le virgolette??

    scusa mi puoi spiegare un pò meglio la isset() cn il mio codice è che non riesco a metterla...
    Ultima modifica di sysdown : 07-10-2011 alle ore 18.24.30 Motivo: in quale query????

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

    Predefinito

    qui:

    Codice PHP:
    $sql = "UPDATE `utenti` SET `email` = '$email',`password` = '$password',`avatar` = '$avatar' WHERE id = '$id'";
    Prova a rimuovere i caratteri `

    Comunque, per la isset(), se con l'echo funziona, non è necessaria... (io la metto comunque per controllare se il parametro è stato inviato. Guarda nel link che ti ho lasciato per saperne di più).

    Ciao!

  5. #5
    Guest

    Predefinito

    grazie ancora...
    purtroppo non funziona ne così... mi dice che li a inseriti nela db ma quando guardo nel database è rimasta uguale... :(

Regole di scrittura

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