1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

PHP Editar Utilizador

Discussão em 'Web Development' iniciada por cryteck, 3 de Abril de 2009. (Respostas: 8; Visualizações: 2053)

  1. cryteck

    cryteck Power Member

    Eu fiz um sistema de login usando sessões, mas agora não estou conseguindo fazer a página de editar utilizador .
    Eu faço o login página login.php, depois se errar o login, vai para a página errar_login.php senão cria a sessão e vai para a página principal.php onde aparece logout e editar utilizador.
    Ao clicar em editar utilizador vai para a página editar_utilizador.php onde tem um formulario para por nova password e novo email.
    Eu consigo actualizar a base de dados, mas só com o id que eu puser ex:

    $sql="UPDATE user SET password='$password', email='$email' WHERE id='1'";
    $resultado = mysql_query($sql);
    $exe_resultado = mysql_query($sql) or die (mysql_error());

    O que eu queria é que só actualizasse a base de dados com o id do utilizador que fez login.
    Podiam-me dar sugestões como proceder, é que eu não estou a conseguir.
    Abraços:-D
     
  2. Granadafeup

    Granadafeup Power Member

    Como provavelmente o campo login é único, podes meter um hidden element dentro da form, com essa informação.

    Outra solução era colocares na Sessão o id ou o login
     
  3. cryteck

    cryteck Power Member

    Podias-me especificar melhor isso.
    Obrigado.
     
  4. Granadafeup

    Granadafeup Power Member

    O que estou a dizer é que, tens de ter a informação que identifique a linha da tabela users que queres mudar.

    Por exemplo ao realizares a autenticação no login.php, se o utilizador estiver correcto crias uma sessão. Isso dá te acesso a variável Super Global $_SESSION que é um array. Assim antes de fazeres o redirect para a página principal.php, colocas algures no teu codigo

    Código:
    $_SESSION['username'] = $login;
    Depois é so alterar o codigo que tens para algo parecido com

    Código:
    $sql="UPDATE user SET password='$password', email='$email' 
              WHERE nome="+$_SESSION['username']+"'";
     
  5. marcobjorge

    marcobjorge Power Member

  6. cryteck

    cryteck Power Member

    Bem pessoal eu já consegui passar o id do utilizador pelo link.
    Só que agora não consigo fazer o update á tabela na base de dados.

    principal.php

    Código:
     
    <?php
    include("config.php");
    include("restrito.php");
     
    $sql_pesquisa = "SELECT * FROM user WHERE login = '$login_utilizador'";
    $exe_pesquisa = mysql_query($sql_pesquisa) or die (mysql_error());
    $fet_pesquisa = mysql_fetch_assoc($exe_pesquisa);
    $id= $fet_pesquisa['id'] ; 
    ?>
     
    Olá <? echo $fet_pesquisa['login'];?>
    <a href="logout.php">Logout</a> 
    <a href="editar_utilizador.php?id=<? echo $id; ?>"> Editar Utilizador</a>
     
    editar_utilizador.php
     
    <?php
     
    include("config.php");
     
    $id = $_GET['id'];
    $password = md5($_POST['password']);
    $email = $_POST['email'];
     
    $sql="UPDATE user SET password='$password', email='$email' WHERE id='$id'";
     
    $resultado = mysql_query($sql);
    $exe_resultado = mysql_query($sql) or die (mysql_error());
     
    ?>
     
     
     
    <form id="form" name="form" method="post" action="editar_utilizador.php">
    <table width="100%" border="0">
    <tr>
    <td colspan="2"><div align="center"><strong>Alteração de Dados</strong></div></td>
    </tr>
    <tr>
    <td width="14%"><span class="Style2">Nova Password</span></td>
    <td width="86%"><span class="Style2">
    <label>
    <input name="password" type="password" id="password" />
    </label>
    </span></td>
    </tr>
    <tr>
    <td><span class="Style2">Confirmar Password:</span></td>
    <td><span class="Style2">
    <label>
    <input name="password2" type="password" id="password2" />
    </label>
    </span></td>
    </tr>
    <tr>
    <td><span class="Style2">Novo Email:</span></td>
    <td><span class="Style2">
    <label>
    <input name="email" type="text" id="email" />
    </label>
    </span></td>
    </tr>
    <tr>
    <td><a href="logout.php">Logout</a></td>
    <td><span class="Style2">
    <label>
    <input type="submit" name="Submit" value="Alterar Dados" />
    </label>
    </span></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    </form>
    
    O problema é quando clico no botão alterar dados, não altera nada na BD, parece que as caixas de texto estão sem texto, não sei o que se passa.
    Ajudem-me se faz favor.

    Abraços...
     
    Última edição pelo moderador: 4 de Abril de 2009
  7. darkult

    darkult Power Member

    tenta colocar assim:

    principal.php(onde mostra os dados do utilizador
    PHP:
    <?php
     
    include("config.php");
     
    $id $_GET['id'];
     
    $sql=mysql_query("SELECT * from WHERE id='$id'");
     while(
    $x mysql_fetch_array($sql)){
    echo 
    '
    <table width="0%" border="0" cellspacing="1" bgcolor="#339900">
    <tr>
    <td width="557" align="center" bgcolor="#FFFFFF"><strong><font color="#FF0000" size="1" face="verdana">...:::::Mudar Dados::::......</font></strong></td>
    </tr>
    <tr>
    <td height="50" valign="top" bgcolor="#FFFFFF"> <table width="862" height="50" border="0" cellspacing="0">
    <tr>
    <td width="44"><strong><font size="1" face="verdana">Senha:</font></strong></td>
    <td width="214"><strong><font color="#009900" size="1" face="verdana">'
    .$x['password'].'</font></strong></td>

    <td width="44"><strong><font size="1" face="verdana">Email:</font></strong></td>
    <td width="214"><strong><font color="#009900" size="1" face="verdana">'
    .$x['email'].'</font></strong></td>
    <td width="44" height="21"><strong></strong></td>
    <td width="514" align="right"><strong><font color="#FF0000" size="2" face="verdana"><a href="editar_utilizador.php?id='
    .$x['id'].'">Editar</a></font></strong></td>
    </tr>
    </table>
    '
    ;
    ?>
    editar_utilizador.php(onde se coloca os novos dados.)
    PHP:
    <?php
    include("config.php");

    $id $_GET['id'];
    $sql=mysql_query("SELECT * from WHERE id='$id'");

    while(
    $x mysql_fetch_array($sql)){

    echo 
    '
    <form id="form" name="form" method="post" action="confirmar_editar_utilizador.php?id='
    .$x['id'].'">
    <table width="100%" border="0">
    <tr>
    <td colspan="2"><div align="center"><strong>Alteração de Dados</strong></div></td>
    </tr>
    <tr>
    <td width="14%"><span class="Style2">Nova Password</span></td>
    <td width="86%"><span class="Style2">
    <label>
    <input name="password" type="password" id="'
    .$x['password'].'" />
    </label>
    </span></td>
    </tr>
    <tr>
    <td><span class="Style2">Confirmar Password:</span></td>
    <td><span class="Style2">
    <label>
    <input name="password2" type="password" id="'
    .$x['password2'].'" />
    </label>
    </span></td>
    </tr>
    <tr>
    <td><span class="Style2">Novo Email:</span></td>
    <td><span class="Style2">
    <label>
    <input name="email" type="text" id="'
    .$x['email'].'" />
    </label>
    </span></td>
    </tr>
    <tr>
      <td><a href="logout.php">Logout</a></td>
      <td><span class="Style2">
      <label>
      <input type="submit" name="Submit" value="Alterar Dados" />
      </label>
      </span></td>
    </tr>
    </table>
    <p>&nbsp;</p>
    </form>
    '
    ;
    }
    Confirmar_editar_utilizador.php(Onde é confirmada a troca)
    PHP:
    <?php
    include("config.php");

    $id $_GET['id'];
    $password md5($_POST['password']);
    $email $_POST['email'];

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

    $resultado mysql_query($sql);
    if(
    $resultado){
    echo
    "Dados editados com sucesso <a href=\"principal.php\"> Voltar</a>";
    }else{
    // se a variavel $x nao for verdadeiro ele nao ira alterar o cadastro ou seja ira ser falso
    echo"o dadods nao puderam ser editado";
    }
    ?>
     
  8. cryteck

    cryteck Power Member

    Obrigado a todos já consegui resolver o problema....




    Abraços!!!!
     
  9. paperless

    paperless Power Member

    Convém é escapares as variaveis.
     

Partilhar esta Página