Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Fatal error: Call to undefined function validar_email()

Estas en el tema de Fatal error: Call to undefined function validar_email() en el foro de PHP en Foros del Web. Error que me tira : Fatal error: Call to undefined function validar_email() in /home/a7456274/public_html/registro.php on line 384 Bueno estoy haciendo un sistema de registro de ...
  #1 (permalink)  
Antiguo 28/01/2013, 13:46
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Fatal error: Call to undefined function validar_email()

Error que me tira:
Fatal error: Call to undefined function validar_email() in /home/a7456274/public_html/registro.php on line 384

Bueno estoy haciendo un sistema de registro de usuarios... todo el codigo lo saqué de otro lugar y lo fui adaptando a mi web!

la linea 384 de error es : if(validar_email($_POST['email']))

Esta linea de error salta en la web ya subida a internet, cuando le doy al boton REGISTRAR me lleva a ese error,

cuando lo pruebo en localhost, me funciona de 10, me registra el usuario y directamente va al login para ingresar con el nuevo usuario.


En sintesis, en localhost me anda perfecto, y en la web me salta ese error!

Alguien sabre qué puede ser??
  #2 (permalink)  
Antiguo 28/01/2013, 13:52
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fatal error: Call to undefined function validar_email()

El mensaje de error te está diciendo que la función no existe, es posible que la estés incluyendo únicamente en local y no la hayas subido también al host.

Los mensajes de error no mienten, así que ahí tienes una pista.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 28/01/2013, 13:57
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Fatal error: Call to undefined function validar_email()

si eso si, sé que me ponia que no existe, pero como hago para subir una funcion al host???
  #4 (permalink)  
Antiguo 28/01/2013, 14:09
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fatal error: Call to undefined function validar_email()

No se suben funciones al host, se sube código fuente, archivos, scripts, y ahí vienen las definiciones de funciones.

Tu función debe estar en un script como cualquier otro, ¿pues como le haces localmente?

Seguramente la tienes en un include y la incluyes, ¿o no?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 28/01/2013, 14:19
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Fatal error: Call to undefined function validar_email()

yo lo que hice fue subir el archivo registro.php al host, del mismo modo lo hice en el localhost.

Entonces dentro de registro.php tengo el formulario de registro que empieza así:
<form action="registro.php" method="post" id="registrar" onsubmit="return validar()" >

Luego más abajo checkeo esa parte lo del mail:

// Comprobamos si el nombre de usuario o la cuenta de correo ya existían
Código PHP:
Ver original
  1. $checkprov = mysql_query("SELECT usuario FROM login WHERE usuario='$username'");
  2. $provname_exist = mysql_num_rows($checkprov);
  3. $checkmail2 = mysql_query("SELECT Email FROM login WHERE Email='$email'");
  4. $provmail_exist = mysql_num_rows($checkmail2);         
  5. $checkuser = mysql_query("SELECT username FROM usuarios WHERE username='$username'");
  6. $username_exist = mysql_num_rows($checkuser);
  7. $checkemail = mysql_query("SELECT email FROM usuarios WHERE email='$email'");
  8. $email_exist = mysql_num_rows($checkemail);
  9.                     if($provmail_exist>0|$provname_exist>0|$email_exist>0|$username_exist>0) {
  10.     echo "El nombre de usuario o la cuenta de email ya estan en uso";
  11.                         formRegistro();
  12.                     }else{
  13.                         if(m($_POST['email']))
  14.                         {
  15.                 $query = "INSERT INTO usuarios (nombre, apellido, dni, email, telefono, username, password, fecha)
  16.                                      VALUES('$nombre',
  17.                                      '$apellido',
  18.                                      '$dni',
  19.                                      '$email',
  20.                                      '$telefono',
  21.                                      '$username',
  22.                                      '$password',
  23.                                      now())";
  24.                             mysql_query($query) or die(mysql_error());
  25.                             header("Location: login_usuarios.php");
  26. ?>



La unica vez que uso el validar_email es en esa parte, no forma parte de ningun include
  #6 (permalink)  
Antiguo 28/01/2013, 14:22
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fatal error: Call to undefined function validar_email()

Si, ¿pero donde está definida dicha función?

Debe estar en algún lado, las funciones no se cargan por arte de magia, y menos si son funciones hechas por alguien mas.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 28/01/2013, 14:26
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Fatal error: Call to undefined function validar_email()

ahh vos decis esta parte?

esto tengo arriba de todo:

Código PHP:
Ver original
  1. <?php
  2. include("cnx.php");
  3. function formRegistro(){
  4. ?>


Así como declaré " function formRegistro(){ "

Tengo que declarar la funcion valida_email ??
  #8 (permalink)  
Antiguo 28/01/2013, 14:28
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fatal error: Call to undefined function validar_email()

Exacto, la función validar_email() debe existir en algún lado de tu proyecto, simplemente no puede existir y funcionar localmente si estar definida y cargada previamente.

No es que tengas que definir la función para resolver tu problema, por el simple hecho de que si en local funciona es porque la función existe.

Debes encontrar el archivo donde está definida para luego incluir dicho script si hace falta.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 28/01/2013, 14:35
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Fatal error: Call to undefined function validar_email()

bien ahí lo puse, arriba del if(validar_email($_POST['email']))


el tema es que ahora cuando apreto REGISTRAR me aparece la web en blanca con un boton que yo hice y nada más!

habré puesto en un lugar equivocado la declaracion de la variable?
  #10 (permalink)  
Antiguo 28/01/2013, 14:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fatal error: Call to undefined function validar_email()

Evidentemente algo hiciste mal, estás parchando tu código sin siquiera comprender el error que tienes, así no vas a llegar lejos.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 28/01/2013, 14:55
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Fatal error: Call to undefined function validar_email()

mas tarde me pongo en casa a mirar bien el codigo y a ponerlo donde debe ser, ahora estoy desde el laburo y estoy pensando así no más, gracias por la ayuda! mas tarde te vuelvo a molestar por cualquier cosa dale?

Saludos!!
  #12 (permalink)  
Antiguo 28/01/2013, 16:24
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
Respuesta: Fatal error: Call to undefined function validar_email()

A mi ma aparecio unas veces ese error cuando hacia el llamado a la funcion antes de haber declarado la funcion.. ejemplo:
Código PHP:
Ver original
  1. <?php
  2. $var= limpiar_var($var);
  3.  
  4. function limpiar_var($param){
  5.      patron = /[0123456789*A-Za-z]/;
  6.      return patron.test(te);
  7.  
  8. }
  9. ?>

Pero cuando lo colocaba en este orden entonces ya me funcionaba
Código PHP:
Ver original
  1. //primero declaro la funcion
  2. function limpiar_var($param){
  3.      patron = /[0123456789*A-Za-z]/;
  4.      return patron.test(te);
  5.  
  6. }
  7.  
  8. //luego hago la  llamada a dicha funcion
  9. $var= limpiar_var($var);

Para ser mas exactos yo mi funcion la tengo en un script aparte, y solo le hago un
include "mifuncion.php"; con la funcion en el script PHP que vaya a utilizar, fijandome siempre
que el include lo haga antes de mandar a llamar dicha funcion... Saludos
  #13 (permalink)  
Antiguo 28/01/2013, 17:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Fatal error: Call to undefined function validar_email()

@art_rockerd el orden no tiene nada que ver, puedes perfectamente poner las funciones al final, y el código se ejecuta igual ;)
  #14 (permalink)  
Antiguo 28/01/2013, 17:10
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Fatal error: Call to undefined function validar_email()

Cita:
Iniciado por GatorV Ver Mensaje
@art_rockerd el orden no tiene nada que ver, puedes perfectamente poner las funciones al final, y el código se ejecuta igual ;)
Cuando la definición de la función está en el mismo script que se utiliza no importa el orden, pero no así cuando la definición y contexto de ejecución están en diferentes lugares.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #15 (permalink)  
Antiguo 29/01/2013, 07:36
 
Fecha de Ingreso: enero-2013
Ubicación: Buenos Aires
Mensajes: 11
Antigüedad: 11 años, 3 meses
Puntos: 3
Respuesta: Fatal error: Call to undefined function validar_email()

buenísimo pateketrueke, ya pude solucionar el problema del registro!!

en la declaracion de la funcion lo puse en la parte de la Conexion, que era lo que me faltaba es todo este codigo:

Código PHP:
Ver original
  1. function validar_email($email){
  2.     $mail_correcto = 0;
  3.     //compruebo unas cosas primeras
  4.     if ((strlen($email) >= 6) && (substr_count($email,"@") == 1) && (substr($email,0,1) != "@") && (substr($email,strlen($email)-1,1) != "@"))
  5.     {
  6.        if ((!strstr($email,"'")) && (!strstr($email,"\"")) && (!strstr($email,"\\")) && (!strstr($email,"\$")) && (!strstr($email," ")))
  7.        {//miro si tiene caracter .
  8.           if (substr_count($email,".")>= 1)
  9.           {//obtengo la terminacion del dominio
  10.              $term_dom = substr(strrchr ($email, '.'),1);
  11.              //compruebo que la terminaci?n del dominio sea correcta
  12.              if (strlen($term_dom)>1 && strlen($term_dom)<5 && (!strstr($term_dom,"@")) )
  13.              {//compruebo que lo de antes del dominio sea correcto
  14.                 $antes_dom = substr($email,0,strlen($email) - strlen($term_dom) - 1);
  15.                 $caracter_ult = substr($antes_dom,strlen($antes_dom)-1,1);
  16.                 if ($caracter_ult != "@" && $caracter_ult != ".")
  17.                 {
  18.                    $mail_correcto = 1;
  19.                 }
  20.              }
  21.           }
  22.        }
  23.     }
  24.     if ($mail_correcto)
  25.        return 1;
  26.     else
  27.        return 0;
  28. }
  #16 (permalink)  
Antiguo 29/01/2013, 09:13
 
Fecha de Ingreso: agosto-2012
Ubicación: México
Mensajes: 106
Antigüedad: 11 años, 8 meses
Puntos: 6
Respuesta: Fatal error: Call to undefined function validar_email()

Cita:
Iniciado por pateketrueke Ver Mensaje
Cuando la definición de la función está en el mismo script que se utiliza no importa el orden, pero no así cuando la definición y contexto de ejecución están en diferentes lugares.
Si, eso me pasaba cuando hacia un include de mi script donde tenia la funcion.

Etiquetas: call, fatal, function, html, registro, undefined, 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 10:06.