Foros del Web » Programando para Internet » PHP »

problema al insertar datos en mysql al intentar validar

Estas en el tema de problema al insertar datos en mysql al intentar validar en el foro de PHP en Foros del Web. Holas. Que no sé que he hecho pero ya no se me inserta el distribuidor en la base de datos y todo a sido al ...
  #1 (permalink)  
Antiguo 17/07/2010, 16:37
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
problema al insertar datos en mysql al intentar validar

Holas.

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'))";
    
$conexionmysql_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;
    
}

?>
  #2 (permalink)  
Antiguo 17/07/2010, 18:20
 
Fecha de Ingreso: mayo-2009
Ubicación: Andalucia
Mensajes: 650
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: problema al insertar datos en mysql al intentar validar

ya e solucionado lo de insertar los registros metiendo el codigo que tiene la sentencia sql dentro del archivo externo validar.php

pero ahora tengo un problema para cerrar la sesion si pongo al final de todo el codigo(en validar.php) sesion_destroy() no me guarda la sesion en caso de ke me salte el javascript. y si no pongo sesion_des.... se me quedan guardados indefinidamente los campos en el formulario. os pongo el codigo de validar.php haber si encontrais el fallo.

Código PHP:
<?php

session_start
(); //Iniciamos el sistema de sessiones
//Cargamos las variables a la sesión
$_SESSION['nombre'] = $_POST['nombre']; 
$_SESSION['email'] = $_POST['email']; 
$_SESSION['telefono'] = $_POST['telefono']; 
$_SESSION['comentario'] = $_POST['comentario'];

if ( ! isset(
$_POST['nombre']) OR ! $_POST['nombre']) //(Si no esta definido nombre) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
}
elseif ( ! isset(
$_POST['email']) OR ! $_POST['email']) //(Si no esta definido email) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
}
elseif ( ! isset(
$_POST['telefono']) OR ! $_POST['telefono']) //(Si no esta definido teléfono) o (si no contiene nada ni siquiera un espacio en blanco)
{
    
header ("Location: secciondistribuidor.php");
}
elseif (isset(
$_POST['nombre']) AND $_POST['nombre'] AND isset($_POST['email']) AND $_POST['email'] AND isset($_POST['telefono']) AND $_POST['telefono']AND isset($_POST['comentario']) AND $_POST['comentario'])
{

    

    
$nombre=$_POST['nombre'];
    
$email=$_POST['email'];
    
$telefono=$_POST['telefono'];
    
$comentario=$_POST['comentario'];
    
    
    
$ssql "insert into distribuidor (nombre, email, telefono, comentario) values (('$nombre'),('$email'),('$telefono'),('$comentario'))";
    
$conexionmysql_connect("localhost""root""");
    
    
mysql_select_db("abcerotica"$conexion);
    
    if (
mysql_query($ssql$conexion)){
        echo 
"sentencia ingresada!";
        
header ("Location: secciondistribuidor.php");
    
    }else{
        echo 
"no inserte nada!" ;
        
header ("Location: secciondistribuidor.php");
    }
    
    
    

}


//Redirigimos a la sección del distribuidor
header ("Location: secciondistribuidor.php");
session_destroy();


?>

Etiquetas: mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:02.