Foros del Web » Programando para Internet » PHP »

editar perfil de usuario desde la pagina web

Estas en el tema de editar perfil de usuario desde la pagina web en el foro de PHP en Foros del Web. Saludos cordiales Me encuentro realizando una aplicación web en php, y voy en la parte del sistema de sesión, en base a esto desarrolle los ...
  #1 (permalink)  
Antiguo 24/02/2016, 22:17
Avatar de Hernand67890  
Fecha de Ingreso: febrero-2016
Ubicación: Cundinamarca
Mensajes: 15
Antigüedad: 8 años, 1 mes
Puntos: 0
Pregunta editar perfil de usuario desde la pagina web

Saludos cordiales

Me encuentro realizando una aplicación web en php, y voy en la parte del sistema de sesión, en base a esto desarrolle los formularios de registrarse e iniciar sesión la persona, por ende la parte de registrar me funciona bien, iniciar sesion me funciona bien, pero lo que me gustaría que me funcione, es una opcion denominada ver y editar perfil del usuario, desde la aplicacion web sin necesidad de estar accediendo a la BD en mysql, ¿de que manera o que extructura de codigo es mas aconsejable para que al ingresar a la opcion perfil, se pueda ver y editar la informacion registrada en la BD ya creada?


Gracias.
  #2 (permalink)  
Antiguo 24/02/2016, 23:02
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: editar perfil de usuario desde la pagina web

Lo que yo hago es cuando el usuario hace clic sobre su nombre de usuario en la parte superior derecha de la página accede al perfil y allí hay un botón que dice editar perfil. Obviamente sólo le dejo editar ciertos datos como el teléfono, correo electrónico o su nombre más no el nombre de usuario por ejemplo, también le doy la opción de cambiar la contraseña desde la misma página de edición de perfil.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #3 (permalink)  
Antiguo 25/02/2016, 07:43
Avatar de Hernand67890  
Fecha de Ingreso: febrero-2016
Ubicación: Cundinamarca
Mensajes: 15
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: editar perfil de usuario desde la pagina web

Bueno, efectivamente eso lo que deseo hacer pero tengo algo en el codigo, que aun no permite traer la informacion guardada en la BD para poderla modificar directamente desde la pagina web.
Anexo el codigo del archivo editar.html

<?php
session_start();
if(isset ($_SESSION['id'])) {
?>

<!DOCTYPE html>
<link rel="stylesheet" href="../css/estilo.css" type="text/css" media="all">
<html lang="en">
<head>
<title>Mi perfil de operario</title>
<body><a href ="../view/login.php" class = "dos">Cerrar Sesion...</a>
<p id ="title">Bievenido operario
<?php
echo $_SESSION['name'] ;
echo " " ;
echo $_SESSION['apellido'];
?>
</p>

<?php include("../controller/crear.php");
$id = @$_GET["id"];
$ssql = "select * from users where id= ". $id; $editar = mysql_query($ssql);
$ssql = "select * from users where id= 12". $id.$editar = mysql_query($ssql);
$ssql=mysql_query("UPDATE usuarios SET nombre = '$nombre', apellido = '$apellido' usuario = '$usuario', contraseña = '$contraseña', WHERE ID_USUARIO = $ID_USUARIO")OR die (mysql_error());
?>


<form action="../controller/crear.php" method="post"> <input type="hidden" name="id" value="<?php echo $id;?>">
<br />
Nombre:
<br />
<input type="text" name="nombre" value="<?php echo set_value('nombre',$users->nombre_usuario); @$name =;?>">
<br />
Apellido:
<br />
<input type="text" name="apellido" value="<?php echo @$name =;?>">
<br />
Usuario:
<br />
<input type="text" name="usuario" value="<?php echo @$name =;?>">
<br/>
Contraseña:
<br />
<input type="text" name="contraseña" value="<?php echo @$name =;?>">
<br/>

<center> <input class="form-btn" name="submit" type="submit" value="Actualizar Informacion" /></center>

<!-- footer -->
<footer>
<div class="wrapper">
<section class="lower">
<h3> <span></span></h3>


</section>
<section class="lower">
<h3></h3>

</html>
<?php
}else{echo "Lo sentimos, debes iniciar sesion antes de acceder a esta pagina"; } ?>

Gracias.
  #4 (permalink)  
Antiguo 25/02/2016, 09:58
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: editar perfil de usuario desde la pagina web

Usas php y el archivo lo tienes como html? Vaya vaya, error desde ahí.

Usar @ es muy muy malo, es preferible que corrijas los errores a que los ocultes, y además eso lo alenta, si intentas captar los errores prueba con try/catch.

También, llamas a la variable "name" pero en ningún momento la estás definiendo, o hay más código aparte de ese?

Usa el highlight también, saludos :D
  #5 (permalink)  
Antiguo 25/02/2016, 10:04
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: editar perfil de usuario desde la pagina web

Tienes muchos errores en el código. Primero hay un campo hidden en el formulario cuyo value es la variable $id pero esa variable la tomas por GET cuando según veo al comienzo del código la estas pasando es por SESSION no por GET. Ahora, estas haciendo el update sin siquiera confirmar que se haya enviado el formulario por lo cual siempre va a entrar a hacer el update incluso antes de mostrar el formulario. Usa if isset para confirmar si se hizo submit del formulario. Luego verifica que sean los datos correctos y ahí si haces el update.Lo otro que te recomiendo es que no permitas que se cambien los campos que sean claves primarias. Yo p ej tengo dos claves principales en mi tabla de usuarios el id autonumerico y el nombre de usuario, los cuales siempre deben ser únicos por lo cual al editar el perfil no les permito cambiar el nombre de usuario
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #6 (permalink)  
Antiguo 25/02/2016, 10:41
Avatar de Hernand67890  
Fecha de Ingreso: febrero-2016
Ubicación: Cundinamarca
Mensajes: 15
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: editar perfil de usuario desde la pagina web

Muy amable por su respuesta oportuna.
Acerca del archivo editar ya lo guarde con la extension .php

Al acceder nuevamente al archivo editar.php me salen dos errores en pantalla de color rojo:



Anexo nuevamente el codigo, suprimiendo en la linea numero 32 eliminando el @.

<?php
session_start();
if(isset ($_SESSION['id'])) {
?>

<!DOCTYPE html>
<link rel="stylesheet" href="../css/estilo.css" type="text/css" media="all">
<html lang="en">
<head>
<title>Mi perfil de operario</title>
<body><a href ="../view/login.php" class = "dos">Cerrar Sesion...</a>
<p id ="title">Bievenido operario
<?php
echo $_SESSION['name'] ;
echo " " ;
echo $_SESSION['apellido'];
?>
</p>

<?php include("../controller/crear.php");
$id = @$_GET["id"];
$ssql = "select * from users where id= ". $id; $editar = mysql_query($ssql);
$ssql = "select * from users where id= 12". $id.$editar = mysql_query($ssql);
$ssql=mysql_query("UPDATE usuarios SET nombre = '$nombre', apellido = '$apellido' usuario = '$usuario', contraseña = '$contraseña', WHERE ID_USUARIO = $ID_USUARIO")OR die (mysql_error());
?>


<form action="../controller/crear.php" method="post"> <input type="hidden" name="id" value="<?php echo $id;?>">
<br />
Nombre:
<br />
<input type="text" name="nombre" value="<?php echo @$name =;?>">
<br />
Apellido:
<br />
<input type="text" name="apellido" value="<?php echo @$name =;?>">
<br />
Usuario:
<br />
<input type="text" name="usuario" value="<?php echo @$name =;?>">
<br/>
Contraseña:
<br />
<input type="text" name="contraseña" value="<?php echo @$name =;?>">
<br/>

<center> <input class="form-btn" name="submit" type="submit" value="Actualizar Informacion" /></center>

<!-- footer -->
<footer>
<div class="wrapper">
<section class="lower">
<h3> <span></span></h3>


</section>
<section class="lower">
<h3></h3>

</html>
<?php
}else{echo "Lo sentimos, debes iniciar sesion antes de acceder a esta pagina"; } ?>


No comprendo realmente porque me sale error de "Scream" y el error en la linea 32

Gracias.
  #7 (permalink)  
Antiguo 25/02/2016, 10:47
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: editar perfil de usuario desde la pagina web

Código PHP:
Ver original
  1. <?php echo @$name =; ?>

Que intentas hacer con eso?
  #8 (permalink)  
Antiguo 25/02/2016, 11:23
Avatar de Hernand67890  
Fecha de Ingreso: febrero-2016
Ubicación: Cundinamarca
Mensajes: 15
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: editar perfil de usuario desde la pagina web

Revisando detenidamente me faltaba definir cada una de las variables @$name, también realice la corrección por usar solo una sola variable $_Session,
pero ahora me salen varios errores en rojo y al final de la pagina indica "No database Selected" mi pregunta es ¿de que manera puedo indicarle a la aplicación para que acceda a la base de datos la cual se encuentra ya creada?

Anexo imagenes del error:




Anexo el codigo editar.php con las correcciones realizadas.

Código PHP:
Ver original
  1. <?php
  2. if(isset ($_SESSION['id'])) {
  3. ?>
  4.  
  5. <!DOCTYPE html>
  6. <link rel="stylesheet" href="../css/estilo.css" type="text/css" media="all">
  7. <html lang="en">
  8. <head>
  9. <title>Mi perfil de operario</title>
  10. <body><a href ="../view/login.php" class = "dos">Cerrar Sesion...</a>
  11.     <p id ="title">Bievenido operario
  12.     <?php
  13.     echo $_SESSION['name'] ;
  14.     echo " " ;
  15.     echo $_SESSION['apellido'];
  16.     ?>
  17.     </p>
  18.  
  19. <?php include("../controller/crear.php");
  20.   $id = @$_SESSION["id"];
  21.   $ssql = "select * from users where id= ". $id; $editar = mysql_query($ssql);
  22.   $ssql = "select * from users where id= 1". $id.$editar = mysql_query($ssql);
  23.   $ssql=mysql_query("UPDATE usuarios SET nombre = '$nombre', apellido = '$apellido' usuario = '$usuario', contraseña = '$contraseña', WHERE ID_USUARIO = $ID_USUARIO")OR die (mysql_error());
  24. ?>
  25.  
  26.  
  27. <form action="../controller/crear.php" method="post"> <input type="hidden" name="id" value="<?php echo $id;?>">
  28. <br />
  29.   Nombre:
  30. <br />
  31.     <input type="text" name="nombre" value="<?php echo  @$name =nombre;?>">
  32. <br />
  33.   Apellido:
  34. <br />
  35.     <input type="text" name="apellido" value="<?php echo @$name =apellido;?>">
  36. <br />
  37.   Usuario:
  38. <br />
  39.     <input type="text" name="usuario" value="<?php echo @$name =usuario;?>">
  40. <br/>
  41.   Contraseña:
  42. <br />
  43.     <input type="text" name="contraseña" value="<?php echo @$name =contraseña;?>">
  44. <br/>
  45.  
  46. <center> <input class="form-btn" name="submit" type="submit" value="Actualizar Informacion" /></center>
  47.  
  48. <!-- footer -->
  49.             <footer>
  50.                 <div class="wrapper">
  51.                     <section class="lower">
  52.                         <h3> <span></span></h3>
  53.                      
  54.  
  55.                     </section>
  56.                     <section class="lower">
  57.                         <h3></h3>
  58.  
  59. </html>
  60. <?php
  61. }else{echo "Lo sentimos, debes iniciar sesion antes de acceder a esta pagina"; } ?>

Anexo codigo del archivo crear.php

Código PHP:
Ver original
  1. <?php
  2.  
  3. include ("../model/wish.php");
  4.  
  5.  
  6.  
  7. $nombre= $_POST['nombre'];
  8. $apellido= $_REQUEST['apellido'];
  9. $usuario= $_REQUEST['usuario'];
  10. $pass1= $_REQUEST['pass1'];
  11. $pass2= $_REQUEST['pass2'];
  12.  
  13.  
  14. $wish = new wish();
  15. $igual= $wish->verificar($pass1, $pass2);
  16.  
  17. if($igual == true){
  18.    
  19.    
  20. $wish->registrar($nombre, $apellido, $usuario, $pass1);
  21.  
  22.  
  23. }else if ($igual == false){
  24.    
  25.     echo "<h1> LAS CONTRASEÑAS NO COINCIDEN</h1>";
  26.    
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. ?>

Gracias.
  #9 (permalink)  
Antiguo 25/02/2016, 12:07
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: editar perfil de usuario desde la pagina web

Y dónde recibes los valores que le atribuyes a $nombre por ejemplo? Veo que tienes ahí unas consultas sql, imagino que ya tienes incluido tu archivo de conexión a la bd? Si no, estamos en 0 en todo
  #10 (permalink)  
Antiguo 25/02/2016, 12:40
Avatar de chronos682  
Fecha de Ingreso: febrero-2004
Ubicación: Tunja - Boyacá - Colombia
Mensajes: 627
Antigüedad: 20 años, 2 meses
Puntos: 69
Respuesta: editar perfil de usuario desde la pagina web

Cada vez tienes más errores en el código. Sigues sin usar el if isset para evitar que haga el update sin haberse hecho submit del formulario. Antes del update estas haciendo dos consultas a la bd que no veo cuál es la funcionalidad. El include está apuntando a una dirección que no existe. En el update estás usando variables que no has definido ybque no tienen ningún valor. Son muchas cosas las que tienes que corregir.
__________________
Si te gustó la respuesta dale +1

HERNÁN G. SIABATO M.
[email protected]
  #11 (permalink)  
Antiguo 25/02/2016, 17:35
Avatar de Hernand67890  
Fecha de Ingreso: febrero-2016
Ubicación: Cundinamarca
Mensajes: 15
Antigüedad: 8 años, 1 mes
Puntos: 0
Información Respuesta: editar perfil de usuario desde la pagina web

Muy amable por sus indicaciones.

he realizado las correspodientes modificaciones, cambiando el type por "if isset"

Anexo el codigo del archivo editar.php

Código PHP:
Ver original
  1. <?php
  2. if(isset ($_SESSION['id'])) {
  3. ?>
  4.  
  5. <!DOCTYPE html>
  6. <link rel="stylesheet" href="../css/estilo.css" type="text/css" media="all">
  7. <html lang="en">
  8. <head>
  9. <title>Mi perfil de operario</title>
  10. <body><a href ="../view/login.php" class = "dos">Cerrar Sesion...</a>
  11.     <p id ="title">Bievenido operario
  12.     <?php
  13.     echo $_SESSION['name'] ;
  14.     echo " " ;
  15.     echo $_SESSION['apellido'];
  16.     ?>
  17.     </p>
  18.  
  19. <?php include("../controller/crear.php");
  20.   $id = @$_SESSION["id"];
  21.   $ssql = "select * from users where id= ". $id; $editar = mysql_query($ssql);
  22.   $ssql = "select * from users where id= 1". $id.$editar = mysql_query($ssql);
  23.   //$ssql=mysql_query("UPDATE usuarios SET nombre = '$nombre', apellido = '$apellido' usuario = '$usuario', contraseña = '$contraseña', WHERE ID_USUARIO = $ID_USUARIO")OR die (mysql_error());
  24. ?>
  25.  
  26.  
  27. <form action="../controller/crear.php" method="post"> <input type="if isset" name="id" value="<?php echo $id;?>">
  28. <br />
  29.   Nombre:
  30. <br />
  31.     <input type="text" name="nombre" value="<?php echo  @$name =nombre;?>">
  32. <br />
  33.   Apellido:
  34. <br />
  35.     <input type="text" name="apellido" value="<?php echo @$name =apellido;?>">
  36. <br />
  37.   Usuario:
  38. <br />
  39.     <input type="text" name="usuario" value="<?php echo @$name =usuario;?>">
  40. <br/>
  41.   Contraseña:
  42. <br />
  43.     <input type="text" name="contraseña" value="<?php echo @$name =contraseña;?>">
  44. <br/>
  45.  
  46. <center> <input class="form-btn" name="submit" type="submit" value="Actualizar Informacion" /></center>
  47.  
  48. <!-- footer -->
  49.             <footer>
  50.                 <div class="wrapper">
  51.                     <section class="lower">
  52.                         <h3> <span></span></h3>
  53.                      
  54.  
  55.                     </section>
  56.                     <section class="lower">
  57.                         <h3></h3>
  58.  
  59. </html>
  60. <?php
  61. }else{echo "Lo sentimos, debes iniciar sesion antes de acceder a esta pagina"; } ?>

Anexo la imagen la cual me muestra solo dos errores y el formulario pero sin los datos almacenados en la base de datos.



Anexo el codigo crear.php el cual va apuntado el archivo editar.php desde el include.

Código PHP:
Ver original
  1. <?php
  2.  
  3. include ("../model/wish.php");
  4.  
  5.  
  6.  
  7. $nombre= $_POST['nombre'];
  8. $apellido= $_REQUEST['apellido'];
  9. $usuario= $_REQUEST['usuario'];
  10. $pass1= $_REQUEST['pass1'];
  11. $pass2= $_REQUEST['pass2'];
  12.  
  13.  
  14. $wish = new wish();
  15. $igual= $wish->verificar($pass1, $pass2);
  16.  
  17. if($igual == true){
  18.    
  19.    
  20. $wish->registrar($nombre, $apellido, $usuario, $pass1);
  21.  
  22.  
  23. }else if ($igual == false){
  24.    
  25.     echo "<h1> LAS CONTRASEÑAS NO COINCIDEN</h1>";
  26.    
  27. }
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. ?>

Anexo el codigo wish.php el cual apunta hacia la base de datos.

Código PHP:
Ver original
  1. <?php
  2.  
  3. include 'conexion.php';
  4.  
  5. class wish extends conexion {
  6.        
  7.         private $fine;
  8.     private $user ;
  9.     private $password;
  10.     private $consulta ;
  11.     private $conexion;
  12.     private $row, $pas1 , $pas2;
  13.         private $penombre, $peapellido, $peusuario, $pepassword, $verificar ;
  14.  
  15.     public function wish(){
  16.  
  17.     $conect = new conexion();
  18.     $this->conexion = $conect -> conectar();
  19.     $conect -> seleccion_db();  
  20.  
  21.     }
  22.  
  23.     public  function login($usuario, $pass){
  24.         $this->user = $usuario;
  25.         $this->password= $pass;
  26.         $this->consulta= mysql_query("SELECT usuario , password FROM wisher where usuario = '".$this->user."' and  password = '".$this->password."'", $this->conexion);
  27.                 if($this->row = mysql_fetch_array($this->consulta)){
  28.                     session_start();
  29.                     $this->consulta = mysql_query("SELECT * FROM wisher where usuario = '".$this->user."' ",  $this->conexion);  
  30.                     $this->row = mysql_fetch_array($this->consulta);
  31.                     //Id
  32.                     $this->id = $this->row['id'];
  33.                     $_SESSION['id'] = $this->id;
  34.                     $this->ini = 1;
  35.                     //Nombre
  36.                     $this->id = $this->row['nombre'];
  37.                     $_SESSION['name'] = $this->id;
  38.                     //apellido
  39.                     $this->id = $this->row['apellido'];
  40.                     $_SESSION['apellido'] = $this->id;
  41.                          header("Location: ../Aplication/index.html");      
  42.                 }else{
  43.                         echo " usuario o password incorrecto ";
  44.  
  45.                        
  46.                 }
  47.                 return $this->consulta ;
  48.     }
  49.  
  50.         public function registrar($nom, $ape, $use, $pass){
  51.            
  52.             $this->penombre = $nom;
  53.             $this->peapellido = $ape;
  54.             $this->peusuario = $use;
  55.             $this->pepassword = $pass;
  56.            
  57.             $this->verificar = mysql_query("SELECT usuario FROM wisher where usuario = '".$this->peusuario."' " ,  $this->conexion );
  58.  
  59.             if($this->row = mysql_fetch_array($this->verificar)){
  60.                
  61.                 echo "<h1>EL USUARIO QUE ACABA DE INGRESAR YA EXISTE</h1>";  
  62.                
  63.             }else if(!$this->row = mysql_fetch_array($this->verificar)){
  64.            
  65.                 mysql_query("INSERT INTO wisher(nombre, apellido, usuario, password) values('$this->penombre', '$this->peapellido', '$this->peusuario' , '$this->pepassword')", $this->conexion );
  66.                
  67.              
  68.                
  69.                header("location: ../view/login.php");
  70.            
  71.             }
  72.            
  73.            
  74.            
  75.            
  76.            
  77.            
  78.         }
  79.        
  80.        
  81.         public function verificar($pass1 , $pass2){
  82.            
  83.             $this->fine = false;
  84.            
  85.             $this->pas1 = $pass1;
  86.             $this->pas2 = $pass2;
  87.            
  88.            
  89.             if($this->pas1 == $this->pas2){
  90.                
  91.                 $this->fine = true ;
  92.                
  93.                
  94.             }
  95.            
  96.            
  97.             return $this->fine ;
  98.         }

Gracias.
  #12 (permalink)  
Antiguo 25/02/2016, 19:29
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 4 meses
Puntos: 39
Respuesta: editar perfil de usuario desde la pagina web

Olvidate de todo esto y vamos a leer un poco.

Manual de php

Tienes más errores que código funcional :$
  #13 (permalink)  
Antiguo 25/02/2016, 19:32
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: editar perfil de usuario desde la pagina web

Cita:
Iniciado por rodocoyote15 Ver Mensaje
Olvidate de todo esto y vamos a leer un poco.

Manual de php

Tienes más errores que código funcional :$
Completamente de acuerdo.

Por favor, Hernand67890, debes aprender la sintaxis básica del lenguaje antes de seguir modificándolo sin entender nada.

Los errores de sintaxis son tan graves que por muchas ganas que uno tenga de ayudarte será imposible llegar a algo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: formulario, mysql, perfil, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:19.