Foros del Web » Programando para Internet » PHP »

Se insertan dos veces el mismo formulario

Estas en el tema de Se insertan dos veces el mismo formulario en el foro de PHP en Foros del Web. Buenas tengo el siguiente proble tengo un formulario dentro de alta_curso.php que llama a grabar.php he inserta los datos, bien mediante una variable de session ...
  #1 (permalink)  
Antiguo 31/08/2006, 04:50
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Se insertan dos veces el mismo formulario

Buenas tengo el siguiente proble tengo un formulario dentro de alta_curso.php que llama a grabar.php he inserta los datos, bien mediante una variable de session controlo que si se refresca la pagina en la barra del navegador o si se pulsa dos veces enviar no inserte dos veces el mismo formulario, y funciona pero al pulsa una sola ves me inserta dos veces la misma fila y no se porke lo hace.

Hos dejo el codigo grabar.php

<form name="fcurso" id="fcurso" action="nombramiento.php" method="post" >
<?php

include("../../funciones/conexion.php");

echo "<div id='izquierdad'><br><br><br><br><br>";

//asignacion de la varibles post del formulario

$asesoria = abs($_POST['asesoria']); $formacion= $_POST['formacion'];
$titulo= $_POST['titulo'] ; $codcons= $_POST['codcons'] ;
$clavecep= $_POST['clavecep'] ; $modalidad= $_POST['modalidad'] ;
$dirigido= $_POST['dirigido']; $justificacion= $_POST['justificacion'] ;
$objetivos= $_POST['objetivos']; $contenidos= $_POST['contenidos'];
$metodologia= $_POST['metodologia']; $requisitos= $_POST['requisitos'];
$nplazas= $_POST['nplazas']; $ncentro= $_POST['ncentro'];
$lcentro= $_POST['lcentro']; $pcentro= $_POST['pcentro'];
$calendario= $_POST['calendario']; $finicio= $_POST['finicio'];
$ffin= $_POST['ffin']; $horario= $_POST['horario'];
$nhoras= $_POST['nhoras']; $inscripcion= $_POST['inscripcion'];
$finicioi= $_POST['finicioi']; $ffini= $_POST['ffini'];
$lprovisional= $_POST['lprovisional']; $ldefinitiva= $_POST['ldefinitiva'];
$cseleccion= $_POST['cseleccion'];
$ponenten=$_POST['iponente'];

//asignación de la variable de sesion para controla la veces que se ejecuta el alta
$si_alta= $_SESSION['alta'];

//si el valor de la variable es 1 entonces es que se ejecuto el script de alta
if ($si_alta==1){


echo "<div id='centrado'>El curso ya fue dado de alta, o a pulsado varias veces enviar, en su defecto a actualizado el navegador.</div><br><br><br><br><br>";

echo "</div>";
}else{
//si el valor de la variable es 0 entonces es que no se ejecuto el script de alta
if ($si_alta==0){

$_SESSION['alta']=1;

//alta del curso
$sent="INSERT INTO cursos VALUES ( ' ',' ','$asesoria','$formacion','$titulo','$codcons', '$clavecep', '$modalidad', '$dirigido', '$justificacion', '$objetivos','$contenidos', '$metodologia' ,'$requisitos','$nplazas', '$ncentro', '$lcentro', '$pcentro', '$calendario', '$finicio', '$ffin' ,'$horario' '$nhoras', '$inscripcion' ,'$finicioi', '$ffini', '$lprovisional', '$ldefinitiva','$cseleccion')";

mysql_query($sent,$conexion) or die(mysql_error());

//busqueda del ultimo curso inscrito
$selec=mysql_query ("SELECT MAX(id_curso) from cursos");

mysql_query($sent,$conexion) or die(mysql_error());


// alta del ponente principal
$id_curso=abs($selec);
$sent="INSERT INTO curso_ponente VALUES( '$id_curso','$ponenten','Ponencia','$finicio')";

mysql_query($sent,$conexion) or die(mysql_error());

$pon=abs($_SESSION['ponente']);


$i=1;
if($pon<>0){
while ( $i <= $pon ){

$ponentes=$_POST['iponente'.($i-1)];

$sent="INSERT INTO curso_ponente VALUES( '$id_curso','$ponentes','Ponencias','$finicio')";
mysql_query($sent,$conexion) or die(mysql_error());
$i++;
}
}

include("../../funciones/cerrar_conexion.php");

echo "<div id='centrado'>El alta del curso ha sido realizada.</div><br><br><br><br><br>";

echo "</div>";
}}


?>
  #2 (permalink)  
Antiguo 31/08/2006, 04:51
 
Fecha de Ingreso: julio-2006
Ubicación: sevilla
Mensajes: 251
Antigüedad: 17 años, 9 meses
Puntos: 5
Perdon lo encontre el fallo repito al sentencia de insersion, perdon abrir tema para un fallo tan tonto, disculpen las molestias, el cansasio hace mella
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 17:58.