Foros del Web » Programando para Internet » PHP »

¿ Donde está el error ?

Estas en el tema de ¿ Donde está el error ? en el foro de PHP en Foros del Web. Por favor, tengo este script para modificar datos de una tabla: <?php include "../config.php"; $username = $_COOKIE['loggedin']; if (!isset($_COOKIE['loggedin'])) die("You are not logged in, <a ...
  #1 (permalink)  
Antiguo 20/04/2010, 02:36
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
¿ Donde está el error ?

Por favor, tengo este script para modificar datos de una tabla:

<?php
include "../config.php";
$username = $_COOKIE['loggedin'];
if (!isset($_COOKIE['loggedin'])) die("You are not logged in, <a href=../login.htm>click here</a> to login.");
mysql_connect($server, $db_user, $db_pass) or die (mysql_error());
mysql_select_db($database)
or die ("No se pudo seleccionar la base de datos porque ".mysql_error());
mysql_query("UPDATE $table SET name1 = '"$_POST['name1']"' WHERE username = '$username'");
mysql_query("UPDATE $table SET name2 = '".$_POST['name2']."' WHERE username = '$username'");
mysql_query("UPDATE $table SET email = '".$_POST['email']."' WHERE username = '$username'");
mysql_query("UPDATE $table SET password = '".$_POST['newpass']."' WHERE password = '".$_POST['oldpass']."'");
mysql_query("UPDATE $table SET website = '".$_POST['telefono']."' WHERE username = '$username'");
?>


pero al aparecer los datos en el recuadro, en lugar de los datos existente, sale el dato existente precedido de signos como: >Dato size=
El dato en rojo es el campo existente en la tabla. ¿ Como se quitaria esos caracteres que salen junto al dato?
Gracias
  #2 (permalink)  
Antiguo 20/04/2010, 04:07
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: ¿ Donde está el error ?

primero de todo simplifica el numero de consultas a la base de datos:

Código PHP:
mysql_query("UPDATE $table SET name1 = '".$_POST['name1']."',name2 = '".$_POST['name2']."',email = '".$_POST['email']."',website = '".$_POST['telefono']."'  WHERE username = '".$username."'");

mysql_query("UPDATE $table SET password = '".$_POST['newpass']."' WHERE password = '".$_POST['oldpass']."'"); 
y vigila tambien que en la primera sentencia sql te faltava concatenar el post. A ver si asi funciona.

Tambien haz un print_r($_POST[]) para comprobar que los datos que recibes son los que quieres.
  #3 (permalink)  
Antiguo 20/04/2010, 09:33
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

Perdona, pero no se como hacerlo, ¿ como es eso de concatenar el post ? y ¿ donde pondria el Print_r($_POST[]) para que saliesen los datos dentro del cuadro "imput"
  #4 (permalink)  
Antiguo 20/04/2010, 09:47
Avatar de marioms1995  
Fecha de Ingreso: abril-2010
Ubicación: España
Mensajes: 20
Antigüedad: 14 años
Puntos: 3
Respuesta: ¿ Donde está el error ?

campesino, creo que vallu se referia con concatenar el post a que de esto:

mysql_query("UPDATE $table SET name1 = '"$_POST['name1']"' WHERE username = '$username'");

pases a esto:

mysql_query("UPDATE $table SET name1 = '".$_POST['name1']."' WHERE username = '$username'");

y en cuanto a la sugerencia de ver el contenido del array $_POST tan solo tienes que añadir la sentencia:

print_r($_POST);

al principio del script.
Espero que te sirva de ayuda
  #5 (permalink)  
Antiguo 20/04/2010, 09:57
 
Fecha de Ingreso: diciembre-2008
Mensajes: 32
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: ¿ Donde está el error ?

Lo que quizo decir es que en la primera consulta te faltaba un punto para concatenar la variable $_POST, y para concatenar debes agragarle un punto "." despues de la cadena. ejemplo:

"cadena "."$_POST['name1']"."Cadena"

y print_r es una funcion que te permite imprimir los valores de un arreglo para visualizarlos mejor. en este caso haz print_r($_POST)....

observo tambien que aperturas cadenas con comillas dobles " y luego cierras con comillas simples ' , fijate lo que haces "UPDATE $table SET name1 = '.... deberias hacerlo con uno o con otro, pero no una mezcla de los dos... te sugiero que leas tutoriales de concatenacion de cadenas..... suerte

Última edición por margaro; 20/04/2010 a las 10:03 Razón: msd
  #6 (permalink)  
Antiguo 20/04/2010, 11:16
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

He puesto los puntos que faltaban, los quité probando y olvidé colocarlos, el caso es que el problema de aparecer en el recuadro del imput los datos existentes en la base de datos, no aparecen, en su lugar sale este código dentro del cuadro:

<?phpinclude "../config.php";mysql_connect($server, $db_user, $db_pass) or die (mysql_error()); $result = mysql_db_query($database, "select * from $table WHERE username = '$username'") or die (mysql_error()); while ($qry = mysql_fetch_array($result)) { echo "$qry[username]"; } ?>
  #7 (permalink)  
Antiguo 20/04/2010, 13:29
Avatar de marioms1995  
Fecha de Ingreso: abril-2010
Ubicación: España
Mensajes: 20
Antigüedad: 14 años
Puntos: 3
Respuesta: ¿ Donde está el error ?

por favor postea el codigo completo, puede que el problema este en lo que imprimes
  #8 (permalink)  
Antiguo 20/04/2010, 15:24
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

El script completo está en el primer comentario que puse en color azul . Si a ese script le pones una base de datos y datos de identificación lo tienes como yo y al entrar en él, deberian salir los datos existentes en la tabla dentro del recuadro de entrada de datos, pero en lugar de salir los datos, sale el código que he colocado antes, dentro del recuadro.
No se si me he explicado, pero si lo ejecutais lo vereis.
  #9 (permalink)  
Antiguo 20/04/2010, 15:40
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: ¿ Donde está el error ?

no habrás dejado algún lado sin comillas o te sobrarán? :S
  #10 (permalink)  
Antiguo 20/04/2010, 15:45
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

¿ Donde ? No tengo ni idea que puede ser
  #11 (permalink)  
Antiguo 20/04/2010, 15:48
 
Fecha de Ingreso: diciembre-2009
Mensajes: 612
Antigüedad: 14 años, 5 meses
Puntos: 16
Respuesta: ¿ Donde está el error ?

se puede saber que hay en el config.php?

Quitando lo privado, pass, usuarios...
  #12 (permalink)  
Antiguo 21/04/2010, 01:20
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

En config.php esta lo siguiente:

<?php
// Server to connect to, the default is 'LocalHost' but if it does not work use your IP address for your server
$server = "localhost";

// The name of the database, when using cPanel you would normally have your user name first like so: username_DATABASE-NAME
$database = "xxxxxxxxxxx";

// MySQL username to access the database with.
$db_user = "xxxxxxxxxx";

// MySQL password to access the database with.
$db_pass = "";

// The table that this script will set up and use, you can change this but recommended to keep the same so if you require any support we can help faster
$table = "usuarios";
?>
  #13 (permalink)  
Antiguo 21/04/2010, 08:17
Avatar de marioms1995  
Fecha de Ingreso: abril-2010
Ubicación: España
Mensajes: 20
Antigüedad: 14 años
Puntos: 3
Respuesta: ¿ Donde está el error ?

con recuadro te refieres al campo de la base de datos??

si es asi imprime el array $_POST
  #14 (permalink)  
Antiguo 22/04/2010, 00:43
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

El problema está en el formulario de modificacion de datos y está en la parte del codigo señalado en azul, pero como vemos está en alfabeto anglosajon ¿ como se cambiaria para ponerlo que no de error ?

<form action="update.php" method="post" >
<p><font face="Verdana" style="font-size: 120%" color="#666666">Usuario&nbsp;&nbsp;
</font><font face="Verdana"><span style="font-size: 120%">
<font color="#666666">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;
<input name="username" disabled="disabled" value="&lt;?php
include "config.php";
mysql_connect($server, $db_user, $db_pass) or die (mysql_error());
$result = mysql_db_query($database, "select * from $table WHERE username = '$username'") or die (mysql_error());
while ($qry = mysql_fetch_array($result)) {
echo "$qry[username]";
}
?&gt;" size="29"
?></p>
<p><b>¿ Cambiar su password ?</b></p>
<p>Su Password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;
<input type="password" name="oldpass" size="30" />
(sigue el scrpt)
  #15 (permalink)  
Antiguo 22/04/2010, 02:23
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: ¿ Donde está el error ?

Cita:
Iniciado por Campesino Ver Mensaje
El problema está en el formulario de modificacion de datos y está en la parte del codigo señalado en azul, pero como vemos está en alfabeto anglosajon ¿ como se cambiaria para ponerlo que no de error ?

<form action="update.php" method="post" >
<p><font face="Verdana" style="font-size: 120%" color="#666666">Usuario&nbsp;&nbsp;
</font><font face="Verdana"><span style="font-size: 120%">
<font color="#666666">:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;
<input name="username" disabled="disabled" value="&lt;?php
include "config.php";
mysql_connect($server, $db_user, $db_pass) or die (mysql_error());
$result = mysql_db_query($database, "select * from $table WHERE username = '$username'") or die (mysql_error());
while ($qry = mysql_fetch_array($result)) {
echo "$qry[username]";
}
?&gt;" size="29"
?></p>
<p><b>¿ Cambiar su password ?</b></p>
<p>Su Password:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp ;&nbsp;
<input type="password" name="oldpass" size="30" />
(sigue el scrpt)
el codigo php que tienes dentro del value del campo debes iniciarlo y cerrarlo con "<?php y ?>" y no con "&lt;?php y ?&gt;" como aparece en tu post, por eso no se ejecuta como codigo php.

tambien al final del codigo tienes size="29" ?> debes quitar ese ? de ahi.

Saludos
  #16 (permalink)  
Antiguo 22/04/2010, 04:53
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 20 años, 7 meses
Puntos: 1
Respuesta: ¿ Donde está el error ?

Muy bien, ahora me dice que la funcion mysql_db_query es obsoleta, me lo dice en el cuadro de texto mediente este aviso:
<br /><b>Deprecated</b>: mysql_db_query() [<a href='function.mysql-db-query'>function.mysql-db-query</a>]: This function is deprecated; use mysql_query() instead in <b>C:\wamp\www\members\profile.php</b> on line <b>234</b><br />dato del registro size=

Me aparece el dato que hay en el registro pero precedido de esta retaila.
  #17 (permalink)  
Antiguo 22/04/2010, 04:59
 
Fecha de Ingreso: junio-2006
Ubicación: Antofagasta
Mensajes: 216
Antigüedad: 17 años, 10 meses
Puntos: 7
Respuesta: ¿ Donde está el error ?

Cita:
Iniciado por Campesino Ver Mensaje
Muy bien, ahora me dice que la funcion mysql_db_query es obsoleta, me lo dice en el cuadro de texto mediente este aviso:
<br /><b>Deprecated</b>: mysql_db_query() [<a href='function.mysql-db-query'>function.mysql-db-query</a>]: This function is deprecated; use mysql_query() instead in <b>C:\wamp\www\members\profile.php</b> on line <b>234</b><br />dato del registro size=

Me aparece el dato que hay en el registro pero precedido de esta retaila.
tienes que usar la funcion mysql_query , como bien dices, la otra función está obsoleta.

Saludos

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 20:48.