Foros del Web » Programando para Internet » PHP »

Error en código php para enviar mensajes privados

Estas en el tema de Error en código php para enviar mensajes privados en el foro de PHP en Foros del Web. Resulta que tengo una pagina web con registro de sistema de usuarios, tengo tambien un sistema de mensajes privados, pero el problema es que al ...

  #1 (permalink)  
Antiguo 06/08/2012, 18:26
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Pregunta Error en código php para enviar mensajes privados

Resulta que tengo una pagina web con registro de sistema de usuarios, tengo tambien un sistema de mensajes privados, pero el problema es que al enviar un mensaje me sale un error que no existe ese usuario en la base de datos, chequé en la base de datos y sí está el usuario ¿Cómo pueden explicar eso?

Aquí está una parte del código porque aquí es el problema pero no sé donde corregir, el error que me sale es _ERROR_USER_, significa que "el usuario no existe en la base de datos", cuando realmente si existe...

Código PHP:
Ver original
  1. <? if($_POST[enviar]) {
  2.  
  3. function quitar($texto) {
  4. $texto = trim($texto) ;
  5. $texto = htmlspecialchars($texto) ;
  6. return $texto ;
  7. }
  8. $fecha = time() ;
  9. $destinatario = quitar($destinatario) ;
  10. $mensaje = quitar($mensaje) ;
  11. $asunto=quitar($asunto);
  12. $resp = mysql_query("select id from usuarios where nick='$destinatario'") ;
  13. $datos = mysql_fetch_array($resp) ;
  14. if(mysql_num_rows($resp) == 0) {
  15. echo _ERROR_USER_;
  16. }
  17. else {
  18. $resp = mysql_query("select id from mensajes where destinatario='$destinatario'") ;
  19. $mensajes = mysql_num_rows($resp) ;
  20. if($mensajes < $maximo) {
  21. mysql_query("insert into mensajes (fecha,destinatario,remitente,mensaje,asunto) values ('$fecha','$destinatario','$_COOKIE[nick]','$mensaje','$asunto')") ;
  22. ?>

Última edición por luisochonews; 06/08/2012 a las 18:37
  #2 (permalink)  
Antiguo 06/08/2012, 18:38
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

supongo que te has conectado a la base de datos anteriormente y al servidor, suponiendo eso entonces:

$resp = mysql_query("select id from usuarios where nick='$destinatario'") ;

intenta poner luego de la consulta sql la variable de conexion que contiene los datos de conexion al servidor como el nombre del server, el user y pass.

$conexion = mysql_connect("localhost","root","");
.. bla bla...
$resp = mysql_query("select id from usuarios where nick='$destinatario'",$conexion) ;

y en cada mysql_query
  #3 (permalink)  
Antiguo 06/08/2012, 18:52
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Pongo una parte del archivo php porque ahi está el problema,Ya tengo una variable que se llama $conectar, y lo puse como me dijistes, pero sigo con el mismo error.... pero gracias por tu aportación amigo ;)

Última edición por luisochonews; 06/08/2012 a las 19:03
  #4 (permalink)  
Antiguo 06/08/2012, 19:09
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

che el error user ese lo tenes sin comillas, ponelo asi echo "_ERROR_USER_";
  #5 (permalink)  
Antiguo 06/08/2012, 19:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por rodrigo791 Ver Mensaje
che el error user ese lo tenes sin comillas, ponelo asi echo "_ERROR_USER_";
Ya le puse las comillas y sigo igual :/
  #6 (permalink)  
Antiguo 06/08/2012, 19:48
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

bueno suponiendo que también ESTAS RECIBIENDO ESE NICK de algun input de un form el problema debe ser:

Código PHP:
Ver original
  1. function quitar($texto) {
  2. $texto = trim($texto) ;
  3. $texto = htmlspecialchars($texto) ;
  4. return $texto ;
  5. }

esa función que lo que te debe estar haciendo es ponerte diferente lo que escribis vos con esos trim y htmlspecialchars, hace un echo de $texto a ver en que te lo esta convirtiendo a eso que le pasas como parametro, porque seguramente estas haciendo el SELECT en tu tabla de lo que te retorna la función y no es lo mismo a lo que escribis en el formulario vos porque esas 2 funciones trim y htmlspecialchars te lo estan modificando, y es obvio que lo que te esta retornando esa función NO existe en la tabla usuarios.
  #7 (permalink)  
Antiguo 06/08/2012, 19:53
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Podrás creer que sigue igual, quité eso que me pusistes, y también quité la linea 9,10 y 11 porque intervenia la funcion quitar
  #8 (permalink)  
Antiguo 06/08/2012, 19:59
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

o sea se supone que si vos decis que el nick existe en tu tabla de usuarios, entonces si en verdad ESTAS RECIBIENDO ALGO de el formulario donde escribis el nick ( COMPROBALO ), el problema es la funcion quitar que te esta modificando lo que escribis con esas funciones trim y htmlspecialchars, no digo que saques la función quitar, sino que hagas algo como esto:

Código PHP:
Ver original
  1. echo quitar($destinatario);

para ver en realidad en que te esta convirtiendo $destinatario y como para que sea diferente a lo que tenes en la tabla
  #9 (permalink)  
Antiguo 06/08/2012, 20:02
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

ya hicistes un Echo, de la consulta que se esta ejecutando antes de mandarla al servidor? para saber que datos les estas mandando con tus variables?.. en una de esas llegan mal...
la base de datos es la correcta¿.. tabla?.. campo?..tienes algún tipo de error?
  #10 (permalink)  
Antiguo 06/08/2012, 20:03
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

En mi tabla de la base de datos dice que está vacía, no hay mensajes...
  #11 (permalink)  
Antiguo 06/08/2012, 20:04
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por KsrZ Ver Mensaje
ya hicistes un Echo, de la consulta que se esta ejecutando antes de mandarla al servidor? para saber que datos les estas mandando con tus variables?.. en una de esas llegan mal...
la base de datos es la correcta¿.. tabla?.. campo?..tienes algún tipo de error?

Si ahi aparece en la linea 15 lo del echo
Si, la base de datos es correcta al igual que la tabla y campo
  #12 (permalink)  
Antiguo 06/08/2012, 20:05
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por luisochonews Ver Mensaje
En mi tabla de la base de datos dice que está vacía, no hay mensajes...

digo te fijaste desde phpmyadmin y no tenes datos?entonces es obvio nunca te va a mostrar nada si no hay nada
  #13 (permalink)  
Antiguo 06/08/2012, 20:08
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por rodrigo791 Ver Mensaje
digo te fijaste desde phpmyadmin y no tenes datos?entonces es obvio nunca te va a mostrar nada si no hay nada

No no, me refiero a que entré a php my admin y tengo mi tabla creada con los campos correspondientes, pero los datos, o sea los que son subidos dice que está vacía.
  #14 (permalink)  
Antiguo 06/08/2012, 20:10
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por luisochonews Ver Mensaje
No no, me refiero a que entré a php my admin y tengo mi tabla creada con los campos correspondientes, pero los datos, o sea los que son subidos dice que está vacía.
Espera un momento que cada vez entiendo menos, fuiste a phpmyadmin, fuiste a tu tabla, estan los campos todo bien... pero los datos? tiene algun dato tu tabla usuarios? o no? responde con si o con no
  #15 (permalink)  
Antiguo 06/08/2012, 20:12
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Tengo una tabla creada que se llama usuarios, ahi es donde están los usuarios con su informacion, y en esa misma base de datos hay otra tabla llamada mensajes y ahi es donde se suben todos los mensajes.

Lo que hace el codigo php es que para elegir un destinatario lo elige de la tabla de usuarios.
  #16 (permalink)  
Antiguo 06/08/2012, 20:13
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por rodrigo791 Ver Mensaje
Espera un momento que cada vez entiendo menos, fuiste a phpmyadmin, fuiste a tu tabla, estan los campos todo bien... pero los datos? tiene algun dato tu tabla usuarios? o no? responde con si o con no
si
  #17 (permalink)  
Antiguo 06/08/2012, 20:14
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

podrías pegar cuando se ejecuta la consulta select, cual es el ouput? osea..
darnos lo que sale con el echo "select x from z where a = $b";

otra que me intriga.. que sigue luego de

mysql_query("insert into mensajes (fecha,destinatario,remitente,mensaje,asunto) values ('$fecha','$destinatario','$_COOKIE[nick]','$mensaje','$asunto')") ;

? o bien no tiene que ver con el tema..? porque los corchetes no tienen cierre..
  #18 (permalink)  
Antiguo 06/08/2012, 20:16
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por KsrZ Ver Mensaje
podrías pegar cuando se ejecuta la consulta select, cual es el ouput? osea..
darnos lo que sale con el echo "select x from z where a = $b";

otra que me intriga.. que sigue luego de

mysql_query("insert into mensajes (fecha,destinatario,remitente,mensaje,asunto) values ('$fecha','$destinatario','$_COOKIE[nick]','$mensaje','$asunto')") ;

? o bien no tiene que ver con el tema..? porque los corchetes no tienen cierre..
Esta opción es para elegir al destinatario:
Código PHP:
Ver original
  1. mysql_query("select id from usuarios where nick='$destinatario'")

Y este otro es de que cuando se envía llene estos campos:
Código PHP:
Ver original
  1. mysql_query("insert into mensajes (fecha,destinatario,remitente,mensaje,asunto) values ('$fecha','$destinatario','$_COOKIE[nick]','$mensaje','$asunto')") ;
  #19 (permalink)  
Antiguo 06/08/2012, 20:20
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por luisochonews Ver Mensaje
Este código es para elegir al usuario de destino
Código PHP:
Ver original
  1. ("select id from usuarios where nick='$destinatario'")

Y este otro es de que cuando se envía llene estos campos:
Código PHP:
Ver original
  1. ("insert into mensajes (fecha,destinatario,remitente,mensaje,asunto) values ('$fecha','$destinatario','$_COOKIE[nick]','$mensaje','$asunto')") ;
sin duda, eso lo entendi! pero, necesito que carges tu consulta en una variable, y le agas un echo, y cuando carges el formulario y le des un submit, necesito que tu codigo muestre la consulta que esta ejecutando, que sin duda se que es
1: "select id from usuarios where nick='$destinatario'"
2: "insert into mensajes (fecha,destinatario,remitente,mensaje,asunto) values ('$fecha','$destinatario','$_COOKIE[nick]','$mensaje','$asunto')"

pero, aun no nos muestras que sale de ouput antes de ser ejecutada.. osea, como llegan esas variables a tus consultas, llegan con datos? o vacias?..., si lo explicastes debo aberme salteado algo en la lectura rapida! te pido disculpas
  #20 (permalink)  
Antiguo 06/08/2012, 20:23
Avatar de rodrigo791  
Fecha de Ingreso: noviembre-2009
Ubicación: Uruguay
Mensajes: 1.339
Antigüedad: 14 años, 5 meses
Puntos: 168
Respuesta: Error en código php para enviar mensajes privados

Tenes que fijarte vos mismo que te esta retornando la función quitar luego de que le pasas como parametro el destinatario, asi ves en que te lo esta convirtiendo, entendes o no? obviamente si es que en realidad te esta llegando un tal destinatario...
hace un echo como te dije antes
  #21 (permalink)  
Antiguo 06/08/2012, 20:24
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Aquí está el link de descargar del archivo .php por si lo quieren ver. También pido disculpas porque apenas empiezo con php.

https://dl.dropbox.com/u/69007781/mensajes.php
  #22 (permalink)  
Antiguo 06/08/2012, 20:24
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

en otras palabras entre la linea 11 y 12, coloca esto...
echo "select id from usuarios where nick='$destinatario'";
y muestranos que hay donde esta $destinatario, lo mismo para el insert into..
  #23 (permalink)  
Antiguo 06/08/2012, 20:29
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por KsrZ Ver Mensaje
en otras palabras entre la linea 11 y 12, coloca esto...
echo "select id from usuarios where nick='$destinatario'";
y muestranos que hay donde esta $destinatario, lo mismo para el insert into..
Aquí está el link de descargar https://dl.dropbox.com/u/69007781/mensajes.php , puedes buscar $destinatario usando dreamweaver en la opción Edicion> Buscar y Reemplazar, es que son muchos
  #24 (permalink)  
Antiguo 06/08/2012, 20:30
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

no encuentro ningun.. $_POST['destinatario'] o bien $_GET['destinatario']..

o me perdi en el codigo? no se de donce sale la variable $destinatario.. donde se carga?
solo veo que la declaras asi
$destinatario = quitar($destinatario) ;
pero no veo carga de la misma..

en lugar de eso.. no seria?

$destinatario = quitar($_POST['destinatario']) ;

¿?

Última edición por KsrZ; 06/08/2012 a las 20:32 Razón: .¿?
  #25 (permalink)  
Antiguo 06/08/2012, 20:33
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por KsrZ Ver Mensaje
no encuentro ningun.. $_POST['destinatario'] o bien $_GET['destinatario']..

o me perdi en el codigo? no se de donce sale la variable $destinatario.. donde se carga?
solo veo que la declaras asi
$destinatario = quitar($destinatario) ;
pero no veo carga de la misma..

en lugar de eso.. no seria?

$destinatario = quitar($_POST['destinatario']) ;

¿?
Tienes toda la razón, a $destinatario no le aclaré en ningún momento, sólo lo hice con variables. ¿Qué podré hacer para aclarar a $destinatario?
  #26 (permalink)  
Antiguo 06/08/2012, 20:35
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Ya YA SE PUDOOOOOOOOOOOOOOOOOOOOOOO:aplau so::a plauso:


Te alabo, mil respetos
  #27 (permalink)  
Antiguo 06/08/2012, 20:36
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

$destinatario = quitar($_POST['destinatario']) ;
ahi te lo deje ;) en teoría lo obtienes mediante post..
solo tienes que cambiar la linea 161 de tu código, donde la declaras por primera ves, pero vacía..
  #28 (permalink)  
Antiguo 06/08/2012, 20:36
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Cita:
Iniciado por KsrZ Ver Mensaje
no encuentro ningun.. $_POST['destinatario'] o bien $_GET['destinatario']..

o me perdi en el codigo? no se de donce sale la variable $destinatario.. donde se carga?
solo veo que la declaras asi
$destinatario = quitar($destinatario) ;
pero no veo carga de la misma..

en lugar de eso.. no seria?

$destinatario = quitar($_POST['destinatario']) ;

¿?
Eres el mejor, ya se pudo, te alabo, mil respetos, gracias por ayudarme
  #29 (permalink)  
Antiguo 06/08/2012, 20:37
Avatar de KsrZ  
Fecha de Ingreso: abril-2011
Ubicación: /home/KsrZ/Desktop
Mensajes: 156
Antigüedad: 13 años
Puntos: 26
Respuesta: Error en código php para enviar mensajes privados

perfecto entonces!
de nada ^^
suerte con el trabajo / proyecto!
  #30 (permalink)  
Antiguo 06/08/2012, 20:38
 
Fecha de Ingreso: agosto-2012
Mensajes: 77
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Error en código php para enviar mensajes privados

Espera, ya se pudo enviar PERO TENGO OTRO ERROR, no se puede enviar el asunto ni el mensaje :(

Etiquetas: html, mensajes, mysql, privados, registro, sql, usuarios
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 17:21.