Cita:
Iniciado por estibaliz2006
vaya pateketrueke con ayudas como la tuya para que queremos las novatas más verdad? vaya tela
![en desacuerdo](http://static.forosdelweb.com/fdwtheme/images/smilies/dedosabajo.png)
![Pensando](http://static.forosdelweb.com/fdwtheme/images/smilies/scratchchin.gif)
y que tipo de ayuda esperas??
--
¿algo así?, "prueba esto..."
Código PHP:
//si pulsamos el botón enviar del formulario
if(isset($_POST['submit']))
{
// Creamos nombres de variables cortos
$nombre = trim( $_POST['nombre'] );
$cifrest = trim( $_POST['cifrest '] );
// validamos que se hayan enviado los campos
if((!empty($nombre ) ) {
//si todos los campos están bien cumplimentados hacemos el ingreso enla base de datos
mysql_query("INSERT INTO alumnos(nombre, cifrest ) VALUES ('$nombre','$cifrest ')");
}
else
{
echo "<br><div style=\"background-color: #FFFFFF; border: #FFA500 1px solid; padding: 6px;\"><span class=\"text1\">Se han detectado los siguientes errores. Por favor, corríjalos y reenvíe la información</span><br><br>";
if(empty($nombre)) {
echo "<span class=\"text14\">El campo Nombre es obligatorio</span></br>";
$nombre= $nombre."\" style=\"background-color: #FFE4E1\"";
}
//APARTADO ESPECIAL VALIDACION CIF
//preparación de los datos
$cifrest = strtoupper($cifrest);
for ($i = 0; $i < 9; $i ++)
$num[$i] = substr($cifrest, $i, 1);
//si está vacío el campo devuelve error
if(empty($cifrest)) {
echo "<span class=\"text14\">El campo CIF/NIF es obligatorio</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\"";
}
//si no tiene un formato valido devuelve error
elseif (!empty($cifrest) && !ereg('((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)', $cifrest)) {
echo "<span class=\"text14\">Introduzca un NIF válido</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\"";
}
//comprobacion de NIFs estandar
if (ereg('(^[0-9]{8}[A-Z]{1}$)', $cifrest)) {
if ($num[8] == substr('TRWAGMYFPDXBNJZSQVHLCKE', substr($cifrest, 0, 8) % 23, 1)) {}
else {
echo "<span class=\"text14\">Introduzca un NIF válido</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\""; }
}
//algoritmo para comprobacion de codigos tipo CIF
$suma = $num[2] + $num[4] + $num[6];
for ($i = 1; $i < 8; $i += 2)
$suma += substr((2 * $num[$i]),0,1) + substr((2 * $num[$i]),1,1);
$n = 10 - substr($suma, strlen($suma) - 1, 1);
//comprobacion de NIFs especiales (se calculan como CIFs)
if (ereg('^[KLM]{1}', $cifrest)) {
if ($num[8] == chr(64 + $n)) {}
else {
echo "<span class=\"text14\">Introduzca un NIF válido</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\""; }
}
//comprobacion de CIFs
if (ereg('^[ABCDEFGHJNPQRSUVW]{1}', $cifrest)) {
if ($num[8] == chr(64 + $n) || $num[8] == substr($n, strlen($n) - 1, 1)) {}
else
{
echo "<span class=\"text14\">Introduzca un CIF válido</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\""; }
}
//comprobacion de NIEs
//T
if (ereg('^[T]{1}', $cifrest)) {
if ($num[8] == ereg('^[T]{1}[A-Z0-9]{8}$', $cifrest)) {}
else
{
echo "<span class=\"text14\">Introduzca un NIE válido</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\""; }
}
//XYZ
if (ereg('^[XYZ]{1}', $cifrest)) {
if ($num[8] == substr('TRWAGMYFPDXBNJZSQVHLCKE', substr(str_replace(array('X','Y','Z'), array('0','1','2'), $cifrest), 0, 8) % 23, 1)) {}
else
{
echo "<span class=\"text14\">Introduzca un NIE válido</span></br>";
$cifrest = $cifrest."\" style=\"background-color: #FFE4E1\""; }
}
//FINAL APARTADO ESPECIAL VALIDACION CIF
}
//y este es el formulario
echo "<form action=\"".$_SERVER['PHP_SELF']."\" method=\"POST\">";
echo "Nombre<br><input type=\"text\" name=\"nombre\" class=\"caja\" size=\"50\" value=\"$nombre\"></br>";
echo "CIF/NIF<br><input type=\"text\" name=\"cifrest\" class=\"caja\" size=\"50\" value=\"$cifrest\"></br>";
echo "<br><input type=\"submit\" name=\"submit\" class=\"caja\" value=\"Enviar\">";
o que tipo de "ayuda"... ¿necesitas??
--
lee bien lo que escribes:
Cita: no claro...si el tema es el siguiente:
Posibilidades:
1.- Campo nombre vacío y Campo cif vacío----valida y dice que el campo nombre no puede estar vacío y el campo CIF/NIF no puede estar vacío.
2.- Campo nombre vacío y Campo cif erróneo (porque la letra esté equivocada, o haya menos de 9 dígitos o lo que sea)----valida y dice que el campo nombre no puede estar vacío y que se debe introducir un NIF válido.
3.- Campo nombre completo y Campo CIF vacío----valida y dice que el campo CIF/NIF no puede estar vacío.
4.- Campo nombre completo y Campo CIF completo (aunque sea con un NIF/CIF erróneo por erro en la letra o porque sea inferior a 9 dígitos, lo que sea)--No valida el campo CIF y lo registra.
Alguna idea de por qué sucede? yo no veo que falte un paréntesis y sea ese el motivo
como te he dicho, las expresiones no son las del problema... según lo describes es la lógica la que se te complica...
obviamente no tenemos idea de lo que sucede, no somos videntes... por eso te sugieren depurar por tu cuenta....
y lo mejor de todo: el titulo del tema
pues de curioso nada, y de expresiones regulares... menos!!