Foros del Web » Programando para Internet » PHP »

Problema con update de perfil!

Estas en el tema de Problema con update de perfil! en el foro de PHP en Foros del Web. Hola ! estoy con un problema les comento, estoy haciendo un perfil de un usuario, en el cual hay un apartado de modificar perfil. Obtengo ...
  #1 (permalink)  
Antiguo 12/03/2010, 17:41
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Problema con update de perfil!

Hola ! estoy con un problema les comento, estoy haciendo un perfil de un usuario, en el cual hay un apartado de modificar perfil. Obtengo los datos de la bd sin ningun problema, pero hay otros que deben ser modificados y posteriormente guardados.

Este es el problema, que al apretar el "editar perfil" los datos no se actualizan en la bd.

El codigo del update_cuenta.php es asi:

Código PHP:
Ver original
  1. <?
  2.  
  3. include('connect.php'); //incluimos el connect.php que contiene los datos de la conexi&oacute;n a la db
  4. include('function.php');
  5. include('getdata.php')
  6.  
  7. $firstname=$_POST['firstname'];
  8. $lastname=$_POST['lastname'];
  9.  
  10.  
  11. //introduccimos la modificacion hecha por el usuario
  12.  
  13.  
  14.  
  15. UPDATE prueba
  16. SET firstname='$firstname',
  17. lastname='$lastname',
  18.  
  19. WHERE usuario='$_SESSION[usuario]' ");
  20. echo '<div class="Estilo7">Datos Guardados con éxito</div>';
  21.  
  22.  
  23.  
  24.  
  25.  
  26. ?>

Y el formulario desde donde el usuario hace la modificacion:

Código PHP:
Ver original
  1. <form action="update_cuenta.php" method="post">
  2.   <table width="330" border="0">
  3.     <tr>
  4.       <td>Nombre(s):</td>
  5.       <td><input type="text" name="firstname"  id="firstname" value=" <?php echo $query[firstname];?> " /></td>
  6.     </tr>
  7.     <tr>
  8.       <td>Apellido:</td>
  9.       <td><input type="text" name="firstname"  id="firstname" value=" <?php echo $query[lastname];?> " /></td>
  10.     </tr>
  11.         <div id="container_submit"> <input name="Submit" type="submit" class="titulo" value="EDITAR PERFIL">   </div>
  12.   </form>

Cual puede ser el problema por el cual no se hace la actualizacion?


Gracias, den_22
  #2 (permalink)  
Antiguo 12/03/2010, 18:18
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Problema con update de perfil!

es un error de sql mi estimado, en tu code, la línea 18 contiene una coma adicional que hace que tu query falle.
  #3 (permalink)  
Antiguo 12/03/2010, 18:22
 
Fecha de Ingreso: octubre-2009
Mensajes: 53
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Problema con update de perfil!

y si pruebas con un

Código PHP:
Ver original
  1. if(isset($_REQUEST['submit'])){
  2. $firstname=$_POST['firstname'];
  3. $lastname=$_POST['lastname'];  //introduccimos la modificacion hecha por el usuario  
  4.  
  5. mysql_query("UPDATE pruebaSET firstname='$firstname', lastname='$lastname' WHERE usuario='$_SESSION[usuario]' ");
  6.  
  7. echo '<div class="Estilo7">Datos Guardados con éxito</div>';
  8. }
  9. [



y lo otro....

Código PHP:
Ver original
  1. <form action="update_cuenta.php" method="post">
  2.   <table width="330" border="0">
  3.     <tr>
  4.       <td>Nombre(s):</td>
  5.       <td><input type="text" name="firstname"  id="firstname" value=" <?php echo $query[firstname];?> " /></td>
  6.     </tr>
  7.     <tr>
  8.       <td>Apellido:</td>
  9.       <td><input type="text" name="firstname"  id="firstname" value=" <?php echo $query[lastname];?> " /></td>
  10.     </tr>
  11.         <div id="container_submit"> <input name="Submit" type="submit" class="titulo" value="EDITAR PERFIL">   </div>
  12.   </form>

tienes 2 veces "firstname" y nunca tienes a "lastname"

lo otro usar el echo"que salio???".$firstname=$_POST['firstname']; para ver que toma...

bueno en eso te puedo acotar.

suerte ! D:

Última edición por gastonemen; 12/03/2010 a las 18:28
  #4 (permalink)  
Antiguo 12/03/2010, 20:09
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
No le encuentro la solución, probé con lo que me dijeron. gastonemen hice lo que dijiste, pero lo toma como undefined.

Para hacerlo mas completo al post, y dar mas informacion para que me puedan ayudar,les comento que el modificarperfil.php se maneja con tres archivos el connect.php, el function.php, y el getdata.php

Estos son:

function.php:
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. function getfname($usuario)
  10. {
  11.     $query = mysql_query("select * from prueba where usuario='$usuario'");
  12.     $getname= mysql_fetch_array($query);
  13.     $firstname= $getname["firstname"];
  14.     return $firstname;
  15. }
  16.  
  17. function getlname($usuario)
  18. {
  19.     $query =mysql_query("select * from prueba where usuario='$usuario' ");
  20.     $getname= mysql_fetch_array($query);
  21.     $lastname=$getname["lastname"];
  22.     return $lastname;
  23. }
  24.  function getgender ($usuario)
  25. {
  26.     $query=mysql_query("select * from prueba where usuario='$usuario' ");
  27.     $getname=mysql_fetch_array($query);
  28.     $gender=$getname["sexo"];
  29.     return $gender;
  30. }
  31. function getestadocivil ($usuario)
  32. {
  33.     $query= mysql_query("select * from prueba where usuario='$usuario'");
  34.     $getname=mysql_fetch_array($query);
  35.     $estadocivil=$getname["estadocivil"];
  36.     return $estadocivil;
  37. }
  38.  
  39. ?>

El getdata.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include ("connect.php");
  4.  
  5. $query=mysql_query("select * from prueba where usuario='$usuario'");
  6. $getusuario=mysql_fetch_array($query);
  7. $firstname=getfname('firstname');
  8. $lastname=getlname('lastname');
  9. $gender=getgender('sexo');
  10. ?>

Esto lo que hace es mostrar los datos de la bd, en un formulario, que es el que quiero modificar con el update_cuenta.php.
Existe otra forma de hacerlo a partir de esos archivos?

Última edición por GatorV; 12/03/2010 a las 22:20
  #5 (permalink)  
Antiguo 13/03/2010, 07:35
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

Hola, como puedo hacer para definir una funcion que llame al action de un formulario
Algo asi if ($action == "save"), como defino $action?
  #6 (permalink)  
Antiguo 13/03/2010, 08:02
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Problema con update de perfil!

De lo primero ya te lo dijeron arriba, por si no lo viste es la línea de la consulta update
Código PHP:
Ver original
  1. UPDATE prueba
  2. SET firstname='$firstname',
  3. lastname='$lastname'
  4. WHERE usuario='$_SESSION[usuario]' ");

La consulta tuya tenía una coma antes del where
De lo segundo, por más q miré no entendí. ¿Te podrías explicar un poco mejor?
  #7 (permalink)  
Antiguo 13/03/2010, 08:11
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

A ver tengo un perfil de usuarios, en éste hay un apartado para modificar perfil.
El modificarperfil.php, muestra los datos de registro de la bd, y también más campos que hay que llenar. Lo que yo quiero hacer es que en este formulario los datos que se introduzcan se actualicen, pero es lo que no puedo lograr. Igual sacandole la "," no hay forma.

Entonces el modificarperfil.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. session_name('pLogin');
  4.  
  5.  
  6.  
  7.  
  8. $usuario = $_SESSION['usuario'];
  9.  
  10. include("function.php");
  11. include("getdata.php");
  12. include("connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
  13.  
  14. if(!isset($usuario)){
  15.  
  16. echo 'No se ha seleccionado ningun usuario.';
  17.  
  18. }else{
  19.  
  20. $query=mysql_query("SELECT * FROM prueba WHERE usuario='$usuario' ");
  21.  
  22. if(mysql_num_rows($query)>0){
  23.  
  24. $query=mysql_fetch_array($query);
  25. //todo comprobado, ahora solo falta mostrar los datos
  26. echo 'Bienvenid@ <b>'.$query['usuario'].'</b><br>';
  27.  
  28. }else{
  29.  
  30. echo 'El usuario seleccionado no existe';
  31.  
  32. }
  33. }
  34. ?>

El connect.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. if(!defined('INCLUDE_CHECK')) {
  4. }else{
  5. echo 'No estas autorizado a ejecutar este archivo directamente';
  6. }
  7.  
  8.  
  9. /* Database config */
  10.  
  11. $db_host        = 'localhost';
  12. $db_user        = 'usr';
  13. $db_pass        = 'xxxx';
  14. $db_database    = 'prueba';
  15.  
  16. /* End config */
  17.  
  18.  
  19.  
  20. $link = mysql_connect($db_host,$db_user,$db_pass) or die('Imposible establecer la conexión a la base de datos');
  21.  
  22. mysql_select_db($db_database,$link);
  23. mysql_query("SET names UTF8");
  24.  
  25. ?>

El function.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. function getfname($usuario)
  10. {
  11.     $query = mysql_query("select * from prueba where usuario='$usuario'");
  12.     $getname= mysql_fetch_array($query);
  13.     $firstname= $getname["firstname"];
  14.     return $firstname;
  15. }
  16.  
  17. function getlname($usuario)
  18. {
  19.     $query =mysql_query("select * from prueba where usuario='$usuario' ");
  20.     $getname= mysql_fetch_array($query);
  21.     $lastname=$getname["lastname"];
  22.     return $lastname;
  23. }
  24.  function getgender ($usuario)
  25. {
  26.     $query=mysql_query("select * from prueba where usuario='$usuario' ");
  27.     $getname=mysql_fetch_array($query);
  28.     $gender=$getname["sexo"];
  29.     return $gender;
  30. }
  31. function getestadocivil ($usuario)
  32. {
  33.     $query= mysql_query("select * from prueba where usuario='$usuario'");
  34.     $getname=mysql_fetch_array($query);
  35.     $estadocivil=$getname["estadocivil"];
  36.     return $estadocivil;
  37. }
  38.  
  39. ?>

El getdata.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include ("connect.php");
  4.  
  5. $query=mysql_query("select * from prueba where usuario='$usuario'");
  6. $getusuario=mysql_fetch_array($query);
  7. $firstname=getfname('firstname');
  8. $lastname=getlname('lastname');
  9. $gender=getgender('sexo');
  10. ?>


El form del modificarperfil.php:

Código PHP:
Ver original
  1. <form method="post" action="updatecuenta.php" >
  2.   <table width="330" border="0">
  3.     <tr>
  4.       <td width="213">Nombre de usuario:</td>
  5.       <td width="101"><input type="text" name="usuario"  id="usuario" value=" <?php echo $query[usuario];?> " /></td>
  6.     </tr>
  7.     <tr>
  8.       <td>Nombre(s):</td>
  9.       <td><input type="text" name="firstname"  id="firstname" value=" <?php echo $query[firstname];?> " /></td>
  10.     </tr>
  11.     <tr>
  12.       <td>Apellido:</td>
  13.       <td><input type="text" name="lastname"  id="lastname" value=" <?php echo $query[lastname];?> " /></td>
  14.     </tr>
  15. </table>
  16. </form>
  #8 (permalink)  
Antiguo 13/03/2010, 08:22
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Problema con update de perfil!

Ahora no veo por ninguna parte una consulta UPDATE. ¿Es todo el code q tienes?.
No debes postear todo el code, mejor el q crees q está fallando junto con una explicación de lo q está pasando, me refiero al update_cuenta del principio, ¿cuando dices falla es q salta algún error o solo q no actualiza nada de la BD?
  #9 (permalink)  
Antiguo 13/03/2010, 08:27
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

Disculpá me olvidé de postear el update_cuenta.php, claro el tema es que no me actualiza nada de la bd. Diciendome el notice de "undefined index:firstname" y el de "undefined index:lastname".

update_cuenta.php:

Código PHP:
Ver original
  1. <?
  2.  
  3. include('connect.php'); //incluimos el connect.php que contiene los datos de la conexi&oacute;n a la db
  4. include('function.php');
  5. include('getdata.php');
  6.  
  7. $firstname=$_POST['firstname'];
  8. $lastname=$_POST['lastname'];
  9.  
  10.  
  11. //introduccimos la modificacion hecha por el usuario
  12.  
  13.  
  14. UPDATE prueba
  15. SET firstname='$firstname',
  16. lastname='$lastname'
  17. WHERE usuario='$_SESSION[usuario]' ");
  18.  
  19. echo '<div class="Estilo7">Datos Guardados con éxito</div>';
  20.  
  21.  
  22.  
  23.  
  24. ?>
  #10 (permalink)  
Antiguo 13/03/2010, 08:30
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Problema con update de perfil!

EN el form HTML tienes el action updatecuenta.php y tu archivo se llama update_cuenta.php. Arréglalo y vuelve a probar
  #11 (permalink)  
Antiguo 13/03/2010, 08:39
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

Ya lo arreglé pero nada.
  #12 (permalink)  
Antiguo 13/03/2010, 08:47
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 5 meses
Puntos: 5
Respuesta: Problema con update de perfil!

Prueba a agregar en la consulta
#
mysql_query("UPDATE prueba SET firstname='$firstname', lastname='$lastname' WHERE usuario='$_SESSION[usuario]' ") or die (mysql_error());
  #13 (permalink)  
Antiguo 13/03/2010, 09:00
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

No, tira los mismos errores.

Por ejemplo estaba pensando en hacer el codigo en el mismo php del modificarperfil.php.
Código PHP:
Ver original
  1. <?php
  2.  
  3.  
  4.  
  5. if ($action == "submit")
  6. {
  7.     mysql_query("update prueba set firstname='$firstname',lastname='$lastname' where usuario=$usuario") or mysql_error();  
  8. }
  9.  
  10. ?>

y en el form:

<form method=post action="#">

y el boton <input type="hidden" name="action" value="submit">

pero el tema es que no sé como tendria que declarar la funcion $action
  #14 (permalink)  
Antiguo 13/03/2010, 09:54
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

Alguien tiene una idea de como podria hacer?. No puedo hacer que ande.
  #15 (permalink)  
Antiguo 13/03/2010, 10:02
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema con update de perfil!

En ese caso, $action no seria una funcion, sino una variable, y si la mandas como un campo del formlario se define igual que los otros campos, recibiendola de $_POST
  #16 (permalink)  
Antiguo 13/03/2010, 10:19
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

A ver digamos que lo pongo asi, quito lo de update_cuenta.php.

modificarperfil.php:

Código PHP:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <?php
  5. error_reporting(E_ALL ^ E_NOTICE);
  6. session_name('pLogin');
  7.  
  8.  
  9.  
  10.  
  11. $usuario = $_SESSION['usuario'];
  12.  
  13. include("function.php");
  14. include("getdata.php");
  15. include("connect.php"); //incluimos el connect.php que contiene los datos de la conexión a la db y la sesión
  16.  
  17.  
  18.  
  19.  
  20.  
  21. if(!isset($usuario)){
  22.  
  23. echo 'No se ha seleccionado ningun usuario.';
  24.  
  25. }else{
  26.  
  27. $query=mysql_query("SELECT * FROM prueba WHERE usuario='$usuario' ");
  28.  
  29. if(mysql_num_rows($query)>0){
  30.  
  31. $query=mysql_fetch_array($query);
  32. //todo comprobado, ahora solo falta mostrar los datos
  33. echo 'Bienvenid@ <b>'.$query['usuario'].'</b><br>';
  34.  
  35. }else{
  36.  
  37. echo 'El usuario seleccionado no existe';
  38.  
  39. }
  40. }
  41. ?>
  42. <?php
  43.  
  44.  
  45.  
  46. if ($action == "submit")
  47. {
  48.     mysql_query("update prueba set firstname='$firstname',lastname='$lastname' where usuario=$usuario") or mysql_error();  
  49. }
  50.  
  51. ?>
  52.  
  53.  
  54. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  55. <title>Modificar perfil|Deemo|</title>
  56. <link href="modificarperfil.css" rel="stylesheet" type="text/css" />
  57. <style type="text/css">
  58. <!--
  59. body {
  60.     background-image: url(../images/fondito.png);
  61.     background-repeat: repeat;
  62. }
  63.  
  64.  
  65. -->
  66. </style>
  67. </head>
  68.  
  69. <body>
  70. <div id="container_logo"></div>
  71. <div id="container_modify"><div id="cont_first">
  72. <div id="container_tabla">
  73. <form method="post"  action="#" >
  74.   <table width="330" border="0">
  75.     <tr>
  76.       <td width="213">Nombre de usuario:</td>
  77.       <td width="101"><input type="text" name="usuario"  id="usuario" value=" <?php echo $query[usuario];?> " /></td>
  78.     </tr>
  79.     <tr>
  80.       <td>Nombre(s):</td>
  81.       <td><input type="text" name="firstname"  id="firstname" value=" <?php echo $query[firstname];  ?> " /></td>
  82.     </tr>
  83.     <tr>
  84.       <td>Apellido:</td>
  85.       <td><input type="text" name="lastname"  id="lastname" value=" <?php echo $query[lastname];?> " /></td>
  86.     </tr>
  87.    
  88.   </table>
  89.     <div id="container_submit"> <input type="hidden" name="action"  value="submit"><input type=image height=23 alt=Save width=87 src="../images/boton_submit.gif"  border=0 name=submit>  </div>
  90.   </form>
  91.  
  92. </div>
  93.  
  94. </div>
  95. </div>
  96.  
  97.  
  98.  
  99.  
  100.  
  101. </body>
  102. </html>

Estaria bien asi?, porque no le veo el cambio
  #17 (permalink)  
Antiguo 13/03/2010, 11:05
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema con update de perfil!

Lo unico que veo es que no estas asignando las variables de $_POST
  #18 (permalink)  
Antiguo 13/03/2010, 11:07
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

En donde deberia asignarlas?
  #19 (permalink)  
Antiguo 13/03/2010, 11:45
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Problema con update de perfil!

Alguien tiene una idea de como poder hacerlo?, el tema es que no me sale :(
  #20 (permalink)  
Antiguo 13/03/2010, 12:51
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: Problema con update de perfil!

Duh, pues en donde las vayas a usar :/
Asigna $action antes de hacer la comparacion con "submit"
y las otras antes de hacer la consulta en la bd donde las utilizas :

Etiquetas: perfil, update
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 04:33.