Em que estou errando?

  • Autor Autor Jackass89
  • Data de início Data de início
Tradução em andamento: em alguns minutos este tópico estará em português. Por enquanto, o conteúdo está no original em espanhol. Ver original
J

Jackass89

Beta
Programador
Usuário com poucas negociações! Use sempre o saldo do ForoBeta!
Betas!!, necesito de su ayuda. Estoy haciendo la parte de "verificar que las contraseñas coincidan" de un formulario de registro y tengo este error:

el error:
Inserir CODE, HTML ou PHP:
Parse error: syntax error, unexpected 'elseif' (T_ELSEIF) in C:\xampp\htdocs\Uru\registro.php on line 12
el código:
Inserir CODE, HTML ou PHP:
	elseif($_POST['contrasena'] != $_POST['contrasena_conf']) 
		{ // comprobamos que las contraseñas ingresadas coincidan 		
            echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>"; 			
        }

Pruebo de todo pero no logro arreglarlo 🙁
 
Foi útil? Participe da conversa

Com sua conta grátis você pode responder, mandar mensagem privada ao autor e comprar com Saldo retido: o pagamento é liberado quando você recebe o combinado.

Leva 30 segundos · você volta a este tópico ao terminar
¿Estás seguro que antes de "elseif" hay un "if"?

PHP:
if(xxx) {
}
elseif(xxx) {
}
 
Me dí cuenta que por ahí me faltaba un ";", ahora sucede lo siguiente:
Inserir CODE, HTML ou PHP:
Notice: Undefined index: contrasena in C:\xampp\htdocs\Uru\registro.php on line 12
Notice: Undefined index: contrasena_conf in C:\xampp\htdocs\Uru\registro.php on line 12
Fatal error: Call to undefined function valida_email() in C:\xampp\htdocs\Uru\registro.php on line 17

código:
Inserir CODE, HTML ou PHP:
<?php 
    include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos 
    if(isset($_POST['enviar'])) { // comprobamos que se han enviado los datos desde el formulario 

        function valida_email($correo) 
		{ 
           // if (eregi("^[_.0-9a-z-]+@[0-9a-z._-]+.[a-z]{2,4}$", $correo)) return true; 
		  if ( preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo)) return true; 
            else return false; 
        } 
		
		}elseif($_POST['contrasena'] != $_POST['contrasena_conf']) 
		{ 	
            echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>"; 			
        }
		
		elseif(!valida_email($_POST['mailpersona'])){ 
		 
            echo "El Email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
        }else {..............
....
...

¿Estás seguro que antes de "elseif" hay un "if"?

PHP:
if(xxx) {
}
elseif(xxx) {
}
 
Mmm, lo ordené para que sea más legible:

PHP:
include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos 

function valida_email($correo) {
	return preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo);
}

if(isset($_POST['enviar'], $_POST['contrasena'], $_POST['contrasena_conf'], $_POST['mailpersona'])) {
	if($_POST['contrasena'] == $_POST['contrasena_conf']) {
		if(valida_email($_POST['mailpersona'])) {
			// Las contraseñas coinciden y el email es válido
			// Ejecutar funciones
		}
		else echo "El Email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
	}
	else echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
}

Hay una función para validar emails: PHP: filter_var - Manual
 
Si estas usando el mismo metodo para enviar los datos, en el form de html y de este lado de php?
 
No se si ya lo solucionaste, pero con este codigo no deberias tener problemas :encouragement:


PHP:
<?php


include('acceso_db.php'); // incluimos el archivo de conexión a la Base de Datos 

function valida_email($correo) {
    return preg_match('/^[A-Za-z0-9-_.+%]+@[A-Za-z0-9-.]+\.[A-Za-z]{2,4}$/', $correo);
}

function limpiar($val) { 
    $val = htmlentities(strip_tags($val), ENT_QUOTES, 'UTF-8');
    return $val;
} 
$enviar = empty($_POST['enviar']) ? NULL : limpiar($_POST['enviar']);
$contrasena = empty($_POST['contrasena']) ? NULL : limpiar($_POST['contrasena']);
$contrasena_conf = empty($_POST['contrasena_conf']) ? NULL : limpiar($_POST['contrasena_conf']);
$mailpersona =  empty($_POST['mailpersona']) ? NULL : limpiar($_POST['mailpersona']);



if(isset($enviar) && !empty($enviar) && isset($contrasena) && !empty($contrasena) && isset($contrasena_conf) && !empty($contrasena_conf) && isset($mailpersona) && !empty($mailpersona)) {
    if($contrasena == $contrasena_conf) {
        if(valida_email($mailpersona)) {
            // Las contraseñas coinciden y el email es válido
            // Ejecutar funciones
        }
        else echo "El Email ingresado no es válido. <a href='javascript:history.back();'>Reintentar</a>";
    }
    else echo "Las contraseñas ingresadas no coinciden. <a href='javascript:history.back();'>Reintentar</a>";
} else{
	echo "Por favor completa todos los campos";
}
 
Última edição:

Tópicos similares

Voltar
Topo