Foros del Web » Programando para Internet » PHP »

Cual es el error en esto?

Estas en el tema de Cual es el error en esto? en el foro de PHP en Foros del Web. Hola, sigo con este codigo que no lo puedo hacer andar. La cuestion es que tratando de hacer un modificar perfil, con este codigo puedo ...
  #1 (permalink)  
Antiguo 24/03/2010, 12:44
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Cual es el error en esto?

Hola, sigo con este codigo que no lo puedo hacer andar. La cuestion es que tratando de hacer un modificar perfil, con este codigo puedo obtener los datos de la bd, pero no los puedo actualizar.
Les paso el codigo:

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

Y el html con el form:

Código PHP:
Ver original
  1. <form name="form1" method="post" action="modificarperfil.php">
  2.   <table width="573" 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="lastname"  id="lastname" value=" <?php echo $query[lastname];?> " /></td>
  10.     </tr>
  11.     </table>
  12.     <div id="container_submit">
  13.     <input name="save" type="hidden" id="save" value="ok">
  14.        <input type=image height=23 alt=save width=87 src="images/save.jpg" border=0 name=Save> </div>
  15.   </form>
  16.  
  17. </div>


Cual puede ser la solucion a mi problema?

Gracias de antemano
  #2 (permalink)  
Antiguo 24/03/2010, 12:48
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Cual es el error en esto?

query("update prueba set firstname='$firstname',lastname='$lastname' where usuario='$usuario'");

ahi le entregas variables.. y esas variables no estan definidas o polomenos en el codigo que muestras no sale nada ..
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 24/03/2010, 12:54
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: Cual es el error en esto?

Las variables $firstname, $lastname y $save no están definidas tal como te indicó Hidek1. Aparentemente lo que quieres hacer es recibir sus valores desde los campos de formularios. Si ese es el caso deberías hacerlo con $_POST['lastname'] y demás.

Por otra parte nunca, nunca jamáz hagas una consulta a base de datos que contengan variables que pueden haber sido manipuladas por un usuario externo. Siempre filtra y valida esas variables primero!

Saludos.

PD: mi mensaje nº 400! ^^
__________________
R4DS en español | R4DS en inglés
  #4 (permalink)  
Antiguo 24/03/2010, 12:55
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

Tengo estos codigos el function.php:

Código PHP:
Ver original
  1. <?php
  2. function getfname($usuario)
  3. {
  4.     $query = mysql_query("select * from prueba where usuario='$usuario'");
  5.     $getname= mysql_fetch_array($query);
  6.     $firstname= $getname["firstname"];
  7.     return $firstname;
  8. }
  9.  
  10. function getlname($usuario)
  11. {
  12.     $query =mysql_query("select * from prueba where usuario='$usuario' ");
  13.     $getname= mysql_fetch_array($query);
  14.     $lastname=$getname["lastname"];
  15.     return $lastname;
  16. }
  17.  
  18. ?>

El getdata.php:

Código PHP:
Ver original
  1. <?php
  2. include ("connect.php");
  3. $usuario=$_SESSION['usuario'];
  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.  
  10. ?>
  #5 (permalink)  
Antiguo 24/03/2010, 12:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Cual es el error en esto?

felicitaciones por el mensaje 400 ;)


agrego:

aparte de lo que te dice zaqpz fijate <?php echo $query[lastname];?> le estas entregando una constante en ves de un string para reconocer el key de ese array, aunque en algunos servidores funciona (ni idea porque) no es recomendable!

<?php echo $query["lastname"];?>
__________________
More about me...
~ @rhyudek1
~ Github
  #6 (permalink)  
Antiguo 24/03/2010, 12:57
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

Digamos que tendria que poner
Código PHP:
Ver original
  1. $firstname=$_POST['firstname']
?
  #7 (permalink)  
Antiguo 24/03/2010, 14:13
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

Hola ahora cambié el codigo
el modificarperfil.php:

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

y hay otro que se llama cuando se da en editar perfil, update_cuenta.php:

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


el form en la tabla

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


Como hago sigue sin andarme, toma los datos de la bd, pero no actualiza los datos
  #8 (permalink)  
Antiguo 24/03/2010, 14:57
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: Cual es el error en esto?

Cita:
Iniciado por Hidek1 Ver Mensaje
felicitaciones por el mensaje 400 ;)
Gracias!

Ahora en la nueva versión del código que has colocado en update_cuenta.php no veo que estés obteniendo en algún lado la variable $usuario que usas en el WHERE de tu UPDATE.

No te olvides de filtar los datos antes de realizar una consulta en base de datos con ellos.

Saludos.
__________________
R4DS en español | R4DS en inglés
  #9 (permalink)  
Antiguo 24/03/2010, 15:56
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

deberia poner en el update_cuenta.php

$usuario = $_SESSION['usuario'];
  #10 (permalink)  
Antiguo 24/03/2010, 16:54
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

Hola, haciendolo asi tampoco sale, por favor alguien me puede decir donde declaro esa variable?

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


Gracias
  #11 (permalink)  
Antiguo 24/03/2010, 17:10
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Cual es el error en esto?

te falta session_start(); en update_cuenta.php
Revisa la query con var_dump();
__________________
no quiero ser un árbol y caminar
Jacinto Piedra
  #12 (permalink)  
Antiguo 24/03/2010, 17:19
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

No, poniendole session_start(); no me anda :(
  #13 (permalink)  
Antiguo 24/03/2010, 19:17
 
Fecha de Ingreso: agosto-2005
Ubicación: Argentina, Capital Federal
Mensajes: 435
Antigüedad: 18 años, 8 meses
Puntos: 2
Respuesta: Cual es el error en esto?

Por alguno de tus códigos vi que llamabas a la sesión con un nombre distinto al de por defecto con session_name()... ¿la has colocado a esta función también?
__________________
R4DS en español | R4DS en inglés
  #14 (permalink)  
Antiguo 25/03/2010, 20:32
 
Fecha de Ingreso: enero-2010
Mensajes: 198
Antigüedad: 14 años, 3 meses
Puntos: 1
Respuesta: Cual es el error en esto?

Hola, gracias por haber contestado, al final le encontré la solución, el problema era que estaba usando las etiquetas
Código PHP:
Ver original
  1. <? ?>
y debian ser
Código PHP:
Ver original
  1. <?php ?>

Muchas gracias.

den_22

Etiquetas: Ninguno
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 10:49.