¿En qué me estoy equivocando?

Jackass89 Seguir

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Mar 2014
Mensajes
99
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:
Insertar CODE, HTML o PHP:
Parse error: syntax error, unexpected 'elseif' (T_ELSEIF) in C:\xampp\htdocs\Uru\registro.php on line 12
el código:
Insertar CODE, HTML o 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 :(
 

Xkeeper

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
17 Dic 2012
Mensajes
419
¿Estás seguro que antes de "elseif" hay un "if"?

PHP:
if(xxx) {
}
elseif(xxx) {
}
 

Jackass89

Beta
Programador
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Mar 2014
Mensajes
99
Me dí cuenta que por ahí me faltaba un ";", ahora sucede lo siguiente:
Insertar CODE, HTML o 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:
Insertar CODE, HTML o 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) {
}
 

Xkeeper

Gamma
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
17 Dic 2012
Mensajes
419
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
 

jcdiaz

Beta
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Desde
26 Jun 2014
Mensajes
115
Si estas usando el mismo metodo para enviar los datos, en el form de html y de este lado de php?
 

irwin238

Gamma
Programador
Verificación en dos pasos activada
Verificado por Whatsapp
Desde
27 Nov 2012
Mensajes
459
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 edición:
Arriba