Que no sé que he hecho pero ya no se me inserta el distribuidor en la base de datos y todo a sido al crear una session (sesion_start();) para guardar los datos, por que al validar con javascript si habia algun campo erroneo se perdian todos los campos. Y usando la sesion se me guardan los datos introducidos pero....
tengo una doble validacion (la que he hecho con php seguro que me está dando problemas) con php y javascript. os pongo todos los codigos html, javascript y php haber si encontrais el problema.( por que yo no lo encuentro).
secciondistribuidor.php:
Código:
<script language="JavaScript" type="text/javascript"> function revisar(miFormu) { if(miFormu.nombre.value.length ==0) { alert('Tienes que introducir un nombre') ; return false ; } if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(miFormu.email.value)) { alert('Debes poner un email válido.') ; return false ; } if(miFormu.telefono.value.length < 9){ alert('el telefono tiene que tener 9 digitos y tienen que ser numeros') ; return false ; } else{ alert('Distribuidor insertado!!'); return false; } } </script>
html del formulario de secciondistribuidor.php:
Código:
<form name="miformu" method="post" action="validar.php" onSubmit="revisar(this);"> <ul> <li> Nombre: <input type="text" name="nombre" id="nombre" size="40" value="<?php if (isset($_SESSION['nombre'])){ echo $_SESSION['nombre']; } ?>"/> </li> <li>Email: <input type="text" name="email" id="email" size="40"value="<?php if (isset($_SESSION['email'])){ echo $_SESSION['email']; } ?>"/> </li> <li>Telefono: <input type="text" name="telefono" id="telefono" size="9"value="<?php if (isset($_SESSION['telefono'])){ echo $_SESSION['telefono']; } ?>"/> </li> <li>Comentarios: <textarea cols="30" rows="7" name="comentario" id="comentarios" value="<?php if (isset($_SESSION['comentario'])){ echo $_SESSION['comentario']; } ?>"/> </textarea> </li> <li> <input type="submit" name="enviar1" value="Enviar"id="enviar"> </li> </ul> </form>
php que ingresa los datos en la bd al pulsar el boton enviar del formulario:
Código PHP:
<?php if (isset($_POST["enviar1"])) {
$nombre=$_SESSION['nombre'];
$email=$_SESSION['email'];
$telefono=$_SESSION['telefono'];
$comentario=$_SESSION['comentario'];
$ssql = "insert into distribuidor (nombre, email, telefono, comentario) values (('$nombre'),('$email'),('$telefono'),('$comentario'))";
$conexion= mysql_connect("localhost", "root", "");
mysql_select_db("abcerotica", $conexion);
if (mysql_query($ssql, $conexion)){
echo "sentencia ingresada!";
}else{
echo "no inserte nada!" ;
}
}
?>
archivo externo php para crear la sesion_start() y validar de lado del servidor.
validar.php:
Código PHP:
<?php
//iniciamos la sesion
session_start();
//guardamos los valores que fueron enviados por el formulario en variables de sesion
$_SESSION['nombre'] = $_POST['nombre'];
$_SESSION['email'] = $_POST['email'];
$_SESSION['telefono'] = $_POST['telefono'];
$_SESSION['comentario'] = $_POST['comentario'];
//haces la validacion de los mismos...
if ($_POST['nombre']=='')
{
echo "tienes que introducir un nombre";
header ("Location: secciondistribuidor.php");
}
elseif ($_POST['email']==''){
echo "tienes que introducir un email";
header ("Location: secciondistribuidor.php");
}
elseif ($_POST['telefono']==''){
echo "tienes que introducir un telefono y no puedes introducir letras";
header ("Location: secciondistribuidor.php");
}
else
{
header ("Location: secciondistribuidor.php");
session_destroy();
exit;
}
?>