Foros del Web » Programando para Internet » PHP »

Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Estas en el tema de Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario en el foro de PHP en Foros del Web. Hola comunidad tengo el siguiente problema con un formulario de reservas de entradas, cuando se realiza la primera reserva todo bien, pero al momento de ...
  #1 (permalink)  
Antiguo 16/11/2010, 07:28
 
Fecha de Ingreso: noviembre-2010
Ubicación: Santiago
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Exclamación Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Hola comunidad tengo el siguiente problema con un formulario de reservas de entradas, cuando se realiza la primera reserva todo bien, pero al momento de hacer la segunda esta no se realiza y ademas debo limpiar el Cache del CMS donde aplique este formulario para poder reservar de nuevo pero como reitero solo 1 vez a la segunda pasa lo mismo, el fomulario en si no es el problema es el proceso de enviar a la base de datos y el correo donde se detiene.

Aqui mi Codigo de Envio:
Código PHP:
<?php
//Rescatamos las varaiables y las 'limpiamos' inmediatamentw para envitar cualquier tipo de tonteras.
$pelicula strip_tags(addslashes(utf8_decode($_POST['pelicula'])));
$complejo strip_tags(addslashes(utf8_decode($_REQUEST['complejo'])));
$horario strip_tags(addslashes(utf8_decode($_POST['horario'])));
$hora strip_tags(addslashes(utf8_decode($_POST['hora'])));
$valoroculto strip_tags(addslashes(utf8_decode($_POST['valoroculto'])));

$cantidad strip_tags(addslashes(utf8_decode($_POST['cantidad'])));
$total strip_tags(addslashes(utf8_decode($_POST['total'])));
$name strip_tags(addslashes(utf8_decode($_POST['name'])));
$rut strip_tags(addslashes(utf8_decode($_POST['rut'])));
$email strip_tags(addslashes(utf8_decode($_POST['email'])));
$phone strip_tags(addslashes(utf8_decode($_POST['phone'])));
$phonemovil strip_tags(addslashes(utf8_decode($_POST['phone-movil'])));

//Funcion para leer titulos  de las opciones todo a traves del id




            
$peliculasql mysql_query("SELECT * FROM modx_site_content WHERE id = '$pelicula'  ");
            
$peliculabdd mysql_fetch_row($peliculasql);

           
$peliculaname strip_tags(addslashes(utf8_decode($peliculabdd[3])));

            
$complejosql mysql_query("SELECT * FROM modx_site_content WHERE id = '$complejo'  ");
            
$complejobdd mysql_fetch_row($complejosql);

            
$comlejoname strip_tags(addslashes(utf8_decode($complejobdd[3])));

            
$fechafuncionsql mysql_query("SELECT * FROM modx_site_content WHERE id = '$horario'  ");
            
$fechafuncionbdd mysql_fetch_row($fechafuncionsql);

            
$fechafuncionname strip_tags(addslashes(utf8_decode($fechafuncionbdd[3])));

            
$horasql mysql_query("SELECT * FROM modx_site_content WHERE id = '$hora'  ");
            
$horabdd mysql_fetch_row($horasql);

            
$horaname strip_tags(addslashes(utf8_decode($horabdd[3])));
            
$descripcionsql $peliculaname.'<br />'.$comlejoname;

$detallesql '<strong>Pelicula:</strong>'.$peliculaname.'<br />
<strong>Complejo:</strong>'
.$comlejoname.'<br />
<strong>Fecha Funcion:</strong>'
.$fechafuncionname.'<br />
<strong>Hora Funcion:</strong>'
.$horaname.'<br />
<strong>Valor:</strong> $ '
.$valoroculto.'<br />
<strong>Cantidad de Tickets:</strong> '
.$cantidad.'<br />
<strong>Total:</strong> $ '
.$total.'<br />
<strong>Nombre Completo:</strong> '
.$name.'<br />
<strong>RUT:</strong> '
.$rut.'<br />
<strong>E-mail:</strong> '
.$email.'<br />
<strong>Telefono:</strong> '
.$phone.'<br />
<strong>Telefono Movil:</strong> '
.$phonemovil;

$link mysql_connect("localhost","usuario","clave");
mysql_select_db("modx_cinestar",$link);

// Con esta sentencia SQL insertaremos los datos en la base de datos
mysql_query("INSERT INTO  modx_manager_shopkeeper (short_txt,description,price) VALUES
('$descripcionsql', '$detallesql', '$total')"
,$link);

//Mandamos email.    
$tipo 'Reserva de Entradas';
$mail '<strong>Pelicula:</strong> '.$peliculaname.'<br />
<strong>Complejo:</strong> '
.$comlejoname.'<br />
<strong>Fecha Funcion:</strong> '
.$fechafuncionname.'<br />
<strong>Hora Funcion:</strong> '
.$horaname.'<br />
<strong>Valor:</strong> $ '
.$valoroculto.'<br />
<strong>Cantidad de Tickets:</strong> '
.$cantidad.'<br />
<strong>Total:</strong> $ '
.$total.'<br /></font> 
   
   </td>
   <td valign="top" width="230px" height="161px">
   <font  size="-3" face="Trebuchet MS, Arial, Helvetica, sans-serif" color="#999999">
<strong>Nombre Completo:</strong> '
.$name.'<br />
<strong>RUT:</strong> '
.$rut.'<br />
<strong>E-mail:</strong> '
.$email.'<br />
<strong>Telefono:</strong> '
.$phone.'<br />
<strong>Telefono Movil:</strong> '
.$phonemovil;

$contenido '<table  align="center" border="0" cellpadding="0" cellspacing="0" width="600">
  <tr>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="38" height="1" border="0" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="292" height="1" border="0" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="230" height="1" border="0" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="40" height="1" border="0" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="1" height="1" border="0" alt="" /></td>
  </tr>
  <tr>
   <td colspan="4"><img name="ticket12356_r1_c1" src="http://www.cinestar.cl/assets/templates/superticket/ticket-12356_r1_c1.jpg" width="600" height="61" border="0" id="ticket12356_r1_c1" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="1" height="61" border="0" alt="" /></td>
  </tr>
  <tr>
   <td rowspan="2"><img name="ticket12356_r2_c1" src="http://www.cinestar.cl/assets/templates/superticket/ticket-12356_r2_c1.jpg" width="38" height="189" border="0" id="ticket12356_r2_c1" alt="" /></td>
   <td valign="top" width="292px" height="161px">
   <font  size="-3" face="Trebuchet MS, Arial, Helvetica, sans-serif" color="#999999">'
.$mail.'</font>  
   </td>
   <td rowspan="2"><img name="ticket12356_r2_c4" src="http://www.cinestar.cl/assets/templates/superticket/ticket-12356_r2_c4.jpg" width="40" height="189" border="0" id="ticket12356_r2_c4" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="1" height="161" border="0" alt="" /></td>
  </tr>
  <tr>
   <td colspan="2"><img name="ticket12356_r3_c2" src="http://www.cinestar.cl/assets/templates/superticket/ticket-12356_r3_c2.jpg" width="522" height="28" border="0" id="ticket12356_r3_c2" alt="" /></td>
   <td><img src="http://www.cinestar.cl/assets/templates/superticket/spacer.gif" width="1" height="28" border="0" alt="" /></td>
  </tr>
</table>'
;

$para '[email protected],'.$email.'';

$headers "From: [email protected]"."\r\n";
$headers .= 'MIME-Version: 1.0'."\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n";

mail($para$tipo$contenido$headers);

header('location:http://www.cinestar.cl/servicios/reserva-finalizada');
?>
  #2 (permalink)  
Antiguo 16/11/2010, 07:36
Avatar de Nano_  
Fecha de Ingreso: febrero-2006
Ubicación: Bogotá, Colombia
Mensajes: 1.866
Antigüedad: 13 años, 9 meses
Puntos: 96
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Saludos

1. Verifica que el indentificador de conexion sea diferente
2. Indica en tus sentecias el identificador de conexion
3. Utiliza la funcion mysql_error() por si el error persiste saber por que ocurre

Hasta Pronto
__________________
:.:Nano.:: @nano_hard - Retornando al foro
  #3 (permalink)  
Antiguo 16/11/2010, 07:55
 
Fecha de Ingreso: noviembre-2010
Ubicación: Santiago
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Hola Gracias por la respuesta voy a probar ahora estaba viendo la forma de hacerlo por session porque en la bdd de datos aveces recibe los datos de la misma pelicula como si estos persistieran.
  #4 (permalink)  
Antiguo 16/11/2010, 08:04
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 4 meses
Puntos: 150
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

¿Probaste en varios navegadores? Pon el codigo HTML de tu formulario, para ir acotando de donde viene el error. Lo veo muy raro eso que la segunda vez que envias el mismo formulario grabe la peli anterior...
  #5 (permalink)  
Antiguo 16/11/2010, 08:45
 
Fecha de Ingreso: noviembre-2010
Ubicación: Santiago
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Si es raro pero lo que descubri ahora es que yo estoy usando un sistema de usuarios logiados, por lo que me tomaba el mismo usuario, asi que hice el llamado directo desde la base de datos, y me funciono pero me sigue fallando la segunda vez que pruebo y no entiendo, por otro lado hice lo que me digo Nano_ de darle un identifcador pero nose como darsela a mi sentencias si lo tenog que hacer con mi varibales o de otra forma :S


Código PHP:
Ver original
  1. <?php
  2. echo '<form method="post" action="[~116~]" id="ContactForm">
  3.  
  4.     <fieldset>
  5.         <label for="pelcula" id="pelcula-label" ><span><h3>Selecciona Otra Película:</h3></span>
  6.         <select id="pelicula" name="pelicula" >
  7.                <option value="-">Seleccione una Pelicula</option>
  8.                </select></label>
  9. <div class="linea-form">
  10. Ticket
  11. </div>
  12.  
  13.  
  14.        
  15.  
  16.         <label for="complejo"><span>Complejo:</span>
  17.         <select id="complejo" name="complejo" class="input-horario" onchange="habilita()"  eform="::0::">
  18.                <option value="-">Seleccione un Complejo</option>
  19.                </select>
  20.                </label>
  21.  
  22.  
  23.         <label for="fecha-funcion"><span>Fecha Función:</span>
  24.         <select id="horario" name="horario" class="input-horario" onchange="habilita()" eform="::0::">
  25.                <option value="-">Seleccione una Fecha</option>
  26.                </select>
  27.                </label>
  28.  
  29.         <label for="hora"><span>Hora de Función:</span>
  30.         <select id="hora" class="input-horario" name="hora"  eform="::0::" >
  31.                <option value="-">Seleccione una Hora</option>
  32.                </select></label>
  33.  
  34.         <label for="valor"><span>Valor Entrada:</span>
  35.         <div id="valor" style="text-align:left;margin-left:10px;font-size:16px;float:left;"></div></label>
  36.  
  37. <div class="linea-form">
  38. Valor Total
  39. </div>
  40.         <label for="cantidad"><span>Cantidad:</span>
  41.         <select name="cantidad" id="cantidad" class="input-horario" onChange="calculo(this.value,valoroculto.value,total,total);" eform="::0::">
  42.                 <option value="-">Seleccione Cantidad</option>
  43.                 <option value="1">1</option>
  44.                 <option value="2">2</option>
  45.                 <option value="3">3</option>
  46.                 <option value="4">4</option>
  47.                 <option value="5">5</option>
  48.                 <option value="6">6</option>
  49.                 </select>
  50.                 </label>
  51.  
  52.         <label for="total"><span>Total:</span>
  53.                <div id="total-echo" style="text-align:left;margin-left:10px;font-size:16px;float:left;width:200px;"></div></label>
  54.         <input name="total" id="total" class="input-horario" type="text" /></label>
  55.  
  56. <script language="JavaScript" type="text/JavaScript">
  57.    $("#cantidad").change(function () {
  58.      var value =  $("#total").val();
  59.      $("#total-echo").text("$ " + value);
  60.    }).change();
  61. </script>
  62.  
  63.  
  64.  
  65.         <label><input type="submit" name="contact" id="cfContact" class="button" value="" /></label>
  66.  
  67.     </fieldset>
  68.  
  69. </form>';
  70. ?>

Use combos dependientes con jquery que llama a una bdd y un pequeño script de calculo mas algunos ocultos para sacar valores.
  #6 (permalink)  
Antiguo 16/11/2010, 09:40
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 4 meses
Puntos: 150
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

No entiendo bien esto

<form method="post" action="[~116~]" id="ContactForm">

¿?¿?¿? que action es ese?
  #7 (permalink)  
Antiguo 16/11/2010, 10:28
 
Fecha de Ingreso: noviembre-2010
Ubicación: Santiago
Mensajes: 7
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Es el cms que ocupo tiene ese placeholder [~116~] el enlace donde esta la pagina con el script php en este caso se imprime como index.php?id=116
  #8 (permalink)  
Antiguo 16/11/2010, 12:01
Avatar de Vun
Vun
Colaborador
 
Fecha de Ingreso: agosto-2009
Ubicación: Benalmádena, España
Mensajes: 2.265
Antigüedad: 10 años, 4 meses
Puntos: 150
Respuesta: Problema al Insertar datos en una BDD 2 veces seguidas desde fomulario

Bueno, parece que tu CMS esta cacheando tu codigo PHP por lo que solo lo lee la primera vez, tienes que focalizarte en ver la parte del codigo donde hace dicho cache para anularlo en según qué circunstancias. Al principio leí mal y entendí que se hacian 2 inserts iguales, pero ahora leí mejor y lo que ocurre es que la segunda vez no ejecuta tu codigo PHP sino que carga el cache de un archivo aparte.

Etiquetas: bbdd
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 23:22.