Foros del Web » Programando para Internet » PHP »

¿Error de UpDate o de lógica?

Estas en el tema de ¿Error de UpDate o de lógica? en el foro de PHP en Foros del Web. Miren, tengo este código que es donde el usuario ve su perfil y lo puede editar, pero ese es el problema, no edita las cosas ...
  #1 (permalink)  
Antiguo 02/06/2010, 00:52
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 13 años, 11 meses
Puntos: 0
Pregunta ¿Error de UpDate o de lógica?

Miren, tengo este código que es donde el usuario ve su perfil y lo puede editar, pero ese es el problema, no edita las cosas y es que si reconoce al usuario que es $sesion, pero no hace el UpDate, a lo más que he visto es que añadió un 0 en el campo de mensaje personal. ¿algún error? otra cosa, ¿ES SEGURO UTILIZAR CADA ACCIÓN DENTRO DE LA MISMA PÁGINA O ES MÁS SEGURO HACER OTRA PÁGINA PARA EL PROCESAMIENTO DE LOS DATOS?

Código PHP:
if($_GET['NS']=="")
{
if(!isset($sesion))
{echo "Regístrate o Inicia sesión para ver tu perfil.";}
else {
$miperfil=mysql_query("select * from usuarios where nick='$sesion'",$conectar) or die(mysql_error());
$info=mysql_fetch_array($miperfil);
//Checado de Avatar
$avatar="";
if($info['avatar']=="") {$avatar="sinavatar.jpg";} else {$avatar=$info['avatar'];}
//Checado de Sexo
$hom="";
$muj=""; 
if($info['sexo']==1)
{ $hom="checked"; } else { $hom=""; }
if($info['sexo']==2)
{ $muj="checked"; } else { $muj=""; }
//Cabecera
include("./incluir/cabecera.php");
?>
<title>Perfil de ' $sesion;?></title>
<link rel="stylesheet" href="./estilos/plantilla.css"  type="text/css">
<div id='centro'>
<fieldset><legend>Perfíl de <?php echo $sesion?></legend>
<form action='?NS=guardar_perfil' method='POST'>

<b>Avatar actual</b><br>
<img src='./imagenes/avatares/<?php echo $avatar;?>' width='80' height='80'><p>
<b>Cambiar avatar</b> <small>Se recomiendan imagenes de 80px X 80px y con los siguentes formatos [.JPG .JPEG .GIF .PNG]</small><br>
<input type='file' name='avatar'><p>

<b>Cambiar contraseña</b> <br>Contraseña actual <input type='password' name='csaactual'><br> Nueva contraseña <input type='password' name='csanueva'> <small>Repetir nueva contraseña</small>
 <input type='password' name='csanueva2'> <a href='#'>Cambiar</a><p>

 <b>Estado actual</b> <small>Menciona cómo te encuentras o qué estás haciendo ahora.</small><br>
<textarea name='msjpersonal'><?php echo $info['msjpersonal']; ?></textarea><p>

<b>Friends codes</b> <br><small>Tienes un máximo de hasta para <b>3</b> juegos.</small><br>
Juego 1 <input type='text' name='juego1' value='<?php echo $info['juego1'];?>'> FriendCode 1 <input type='text' name='fc1' value='<?php echo $info['fc1'];?>'><br>
Juego 2 <input type='text' name='juego2' value='<?php echo $info['juego1'];?>'> FriendCode 2 <input type='text' name='fc2' value='<?php echo $info['fc2'];?>'><br>
Juego 3 <input type='text' name='juego3' value='<?php echo $info['juego1'];?>'> FriendCode 3 <input type='text' name='fc3' value='<?php echo $info['fc3'];?>'><br><p>

<b>Sexo</b><br>
Hombre <input type="radio" name="sexo" value="1" <?php echo $hom?>>
Mujer <input type="radio" name="sexo" value="2" <?php echo $muj?>><p>

<b>Cumpleaños</b> <br> <select name='dia'>
<option value=''>Día</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
<option value='11'>11</option>
<option value='12'>12</option>
<option value='13'>13</option>
<option value='14'>14</option>
<option value='15'>15</option>
<option value='16'>16</option>
<option value='17'>17</option>
<option value='18'>18</option>
<option value='19'>19</option>
<option value='20'>20</option>
<option value='21'>21</option>
<option value='22'>22</option>
<option value='23'>23</option>
<option value='24'>24</option>
<option value='25'>25</option>
<option value='26'>26</option>
<option value='27'>27</option>
<option value='28'>28</option>
<option value='29'>29</option>
<option value='30'>30</option>
<option value='31'>31</option>

</select> / <select name='mes'>
<option value=''>Mes</option>
<option value='1'>Enero</option>
<option value='2'>Febrero</option>
<option value='3'>Marzo</option>
<option value='4'>Abril</option>
<option value='5'>Mayo</option>
<option value='6'>Junio</option>
<option value='7'>Julio</option>
<option value='8'>Agosto</option>
<option value='9'>Septiembre</option>
<option value='10'>Octubre</option>
<option value='11'>Noviembre</option>
<option value='12'>Diciembre</option>
</select> / <select name='ano'>
<option value=''>Año</option>
<option value='88'>&laquo;1980</option>
<option value='1'>1980</option>
<option value='2'>1981</option>
<option value='3'>1982</option>
<option value='4'>1983</option>
<option value='5'>1984</option>
<option value='6'>1985</option>
<option value='7'>1986</option>
<option value='8'>1987</option>
<option value='9'>1988</option>
<option value='10'>1989</option>
<option value='11'>1990</option>
<option value='12'>1991</option>
<option value='13'>1992</option>
<option value='14'>1993</option>
<option value='15'>1994</option>
<option value='16'>1995</option>
<option value='17'>1996</option>
<option value='18'>1997</option>
<option value='19'>1998</option>
<option value='20'>1999</option>
<option value='21'>2000</option>
<option value='99'>2000&raquo;</option>
</select><p>

<b>País</b><br>
<select>
<option>País...</option>
<option>Argentina</option>
<option>Belice</option>
<option>Bolivia</option>
<option>Chile</option>
<option>Colombia</option>
<option>Costa Rica</option>
<option>Cuba</option>
<option>Ecuador</option>
<option>El Salvador</option>
<option>España</option>
<option>Guatemala</option>
<option>Guinea Ecuatorial</option>
<option>Honduras</option>
<option>México</option>
<option>Nicaragua</option>
<option>Panamá</option>
<option>Paraguay</option>
<option>Perú</option>
<option>Puerto Rico</option>
<option>República Dominicana</option>
<option>Sáhara Occidental</option>
<option>Uruguay</option>
<option>Venezuela</option>
<option>Otro</option>
</select><p>

<b>Ocupación</b><br>
<select>
<option>Ocupación...</option>
<option>Estudios</option>
<option>Negocios</option>
<option>Trabajo</option>
<option>Hogar</option>
<option>Otro</option>
</select>
<p><input type='submit' value='Guardar perfil'>
</form>
</fieldset>
</div>
<?php     
}
}
elseif(
$_GET['NS']=="guardar_perfil")

   
$avatar=depurar(trim($_POST['avatar']));
   
$csaactual=depurar(trim($_POST['csaactual']));
   
$csanueva=depurar(trim($_POST['csanueva']));
   
$csanueva2=depurar(trim($_POST['csanueva2']));
   
$msjpersonal=depurar(prohibir(trim($_POST['msjpersonal'])));
   
//Friends codes
   
$juego1=depurar(prohibir(trim($_POST['juego1']))); $fc1=depurar(prohibir(trim($_POST['fc1'])));
   
$juego2=depurar(prohibir(trim($_POST['juego2']))); $fc2=depurar(prohibir(trim($_POST['fc2'])));
   
$juego3=depurar(prohibir(trim($_POST['juego3']))); $fc3=depurar(prohibir(trim($_POST['fc3'])));
   
$sexo=$_POST['sexo'];
   
$dia=$_POST['dia']; $mes=$_POST['mes']; $ano=$_POST['ano']; //Cumpleaños
   
$pais=$_POST['pais'];
   
$ocupacion=$_POST['ocupacion'];
   
mysql_query("update usuarios set msjpersonal='$msjpersonal' and sexo='$sexo' and dia='$dia' and mes='$mes' and ano='$ano' where nick='$sesion'",$conectar)or die(mysql_error());
   echo 
"Se han guardado los cambios de tu perfil. ".$usuario." ,recuerda que tu perfíl es público, no expongas información que atente tu privacidad.<br><a href='./mi_perfil.php'>Volver</a>";
   } 
?>

Gracias!!!!

Última edición por Geze; 02/06/2010 a las 01:09
  #2 (permalink)  
Antiguo 02/06/2010, 01:19
Avatar de Falhor  
Fecha de Ingreso: diciembre-2005
Ubicación: Buenos Aires
Mensajes: 425
Antigüedad: 18 años, 3 meses
Puntos: 5
Respuesta: ¿Error de UpDate o de lógica?

Hola. ¿Por qué ponés AND? Probá así:

Cita:
mysql_query("update usuarios set msjpersonal='$msjpersonal', sexo='$sexo', dia='$dia', mes='$mes', ano='$ano' where nick='$sesion'",$conectar)or die(mysql_error());
¿Te pone un 0 en msjpersonal? Fijate imprimiendo los valores en pantalla (Antes de cargarlos a la BD) a ver si aparecen bien, probablemente sea un problema de la función depurar.
Si te aparecen bien los valores pero te sigue apareciendo un 0 en la BD fijate que el campo no sea numérico (Si estás insertándole un texto).

Saludos.

Etiquetas: 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 07:42.