Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/01/2004, 17:53
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Bien, ahora es problema del ambito de las variables. No se puede acceder desde fuera de una funcion a una variable creada dentro de una funcion; y tampoco se puede acceder directamente a una variable creada fuera de una funcion desde dentro de una funcion. Es decir, el $error definido dentro de tu funcion no es accesible desde el codigo que muestra el formulario.

Tienes mas info en http://www.php.net/manual/en/languag...bles.scope.php

La solucion aqui seria no usar la funcion Validar() en el if, sino usar comprobar_email() y poner un else a ese if que asignara el valor a la variable $error. Algo como:
Código PHP:
$ok=true;
$error='';
if (isset(
$_POST['Submit']) && $ok=comprobar_email($_POST['email'])){



// build the form action

$editFormAction $HTTP_SERVER_VARS['PHP_SELF'] . (isset($HTTP_SERVER_VARS['QUERY_STRING']) ? "?" $HTTP_SERVER_VARS['QUERY_STRING'] : "");



if ((isset(
$HTTP_POST_VARS["MM_insert"])) && ($HTTP_POST_VARS["MM_insert"] == "form1")) {

  
$insertSQL sprintf("INSERT INTO formulario (apellido, email) VALUES (%s, %s)",

                       
GetSQLValueString($HTTP_POST_VARS['nombre'], "text"),

                       
GetSQLValueString($HTTP_POST_VARS['email'], "text"));



  
$Result1 $db2->Execute($insertSQL) or die($db2->ErrorMsg());

}



} else {
  if (!
$ok$error=$error="El email ".$_POST['email']." es incorrecto";

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.