Foros del Web » Programando para Internet » PHP »

No me muestra un custom error

Estas en el tema de No me muestra un custom error en el foro de PHP en Foros del Web. Hola señores Estoy trabajando una webapp al que los usuarios pueden enviar un mensaje y no más, por lo que necesito validar que el email ...
  #1 (permalink)  
Antiguo 24/06/2011, 12:47
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 10 meses
Puntos: 7
No me muestra un custom error

Hola señores

Estoy trabajando una webapp al que los usuarios pueden enviar un mensaje y no más, por lo que necesito validar que el email usado para el mensaje ya no esté registrado en la base de datos. Tengo lo siguiente:

Código PHP:
$usr_email $_POST['email'];
$usr_from $_POST['from'];
$usr_to $_POST['to'];
$usr_message $_POST['message'];
$exe $_POST['exe'];

if (
$exe == 'save')
{
    
$db_srh mysql_query ('SELECT * FROM mensajes WHERE usr_email=' $usr_email);
    
$db_srhCan = @mysql_num_rows($db_srh);
    
    if( 
$db_srhCan == )
    {
        
mysql_query ("INSERT INTO mensajes (msgid,usr_email,usr_from,usr_to,usr_msg) VALUES ('NULL','"$usr_email ."','"setAcentos($usr_from) ."','"setAcentos($usr_to) ."','"setAcentos($usr_message) ."')");
        echo 
'mensaje_guardado';
    } else
    {
        echo 
'email_existente';
        break;
    }

Esto funciona. Si no fué usado antes ese correo para enviar mensaje, este sea agrega a la base de datos y muestra la alerta "mensaje_guardado". Mi problema es cuando el correo ya se encuentra en la BD, que aunque no agrega el mensaje, no me muestra el mensaje "email_existente" como entiendo debería.

¿Qué puedo estar haciendo mal?

Como nota adicional, en la tabla de la BD, la variable "usr_email" está definida como única, por eso entiendo que no agrega el nuevo mensaje, aunque no estoy seguro qué estará pasando.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #2 (permalink)  
Antiguo 24/06/2011, 12:51
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 9 meses
Puntos: 336
Respuesta: No me muestra un custom error

debes terminar la consulta de inserción:

$db_srh = mysql_query ('SELECT * FROM mensajes WHERE usr_email=' . $usr_email . "'");

al estar mal eso siempre devuelve 0 filas por lo tanto siempre hace la inserción, pero tal como has dicho no se agrega más de una vez ya que el mail ya existe como clave única.
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 24/06/2011, 12:53
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: No me muestra un custom error

En definitiva la consulta SELECT tiene un grave error de sintaxis, pues imagino que el correo sería un string pero no colocas comillas al rededor de la variable.
Cita:
WHERE columna = 'valor'
Me pregunto si ya te habrás dado cuenta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 24/06/2011, 13:02
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 10 meses
Puntos: 7
Respuesta: No me muestra un custom error

Ambos tenían razón, el problema fué la falta de las comillas. Ya está solucionado, muchas gracias a ambos por su ayuda.
__________________
JuniHH
- Mi blog
- Mi portafolio

Etiquetas: custom, muestra
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 21:34.