Foros del Web » Programando para Internet » PHP »

Problema con redireccionamiento en PHP

Estas en el tema de Problema con redireccionamiento en PHP en el foro de PHP en Foros del Web. Buenos días. Estoy guardando datos en una base de datos Mysql desde PHP, el problema es que algunas veces guarda los datos hasta tres veces, ...
  #1 (permalink)  
Antiguo 11/01/2013, 10:10
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 9 meses
Puntos: 1
Exclamación Problemas al guardar en base de datos

Buenos días.

Estoy guardando datos en una base de datos Mysql desde PHP, el problema es que algunas veces guarda los datos hasta tres veces, no se si es que al recargar la página vuelve y ejecuta el INSERT del SQL y guarda los datos otra vez.
Como hago para evitar este problema.
Desde ya muchas gracias por su ayuda.
Este es el código:
Código PHP:
<?php
$editFormAction 
$_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO INMUEBLE (ID_INM, ID_TIP_INM, ID_USO_INM, ID_BAR, PRECIO_INM, VALOR_ADMINISTRACION_INM, ESTRATO_INM, NUMERO_HABITACIONES_INM, ENCONDOMINIO_INM, AMOBLADO_INM, NUMERO_BANOS_INM, ESTADO_INM, ANO_CONSTRUCCION_INM, NUMERO_PARQUEOS_INM, PARQUEO_CUBIERTO_INM, CALENTADOR_INM, TIPO_PISO_INM, BANO_SOCIAL_INM, COCINA_INTEGRAL_INM, CUARTO_SERVICIO_INM, ESTAR_TV_INM, BANO_SERVICIO_INM, PARQUEADERO_VICITAS_INM, PLANTA_ELECTRICA_INM, VIGILANCIA_INM, PISCINA_INM, TIPO_ZONA_INM, JARDIN_INM, TERRAZA_INM, PATIO_INM, AREA_INM) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)",
                       
GetSQLValueString($_POST['ID_INM'], "int"),
                       
GetSQLValueString($_POST['ID_TIP_INM'], "int"),
                       
GetSQLValueString($_POST['ID_USO_INM'], "int"),
                       
GetSQLValueString($_POST['ID_BAR'], "int"),
                       
GetSQLValueString($_POST['PRECIO_INM'], "double"),
                       
GetSQLValueString($_POST['VALOR_ADMINISTRACION_INM'], "double"),
                       
GetSQLValueString($_POST['ESTRATO_INM'], "int"),
                       
GetSQLValueString($_POST['NUMERO_HABITACIONES_INM'], "int"),
                       
GetSQLValueString($_POST['ENCONDOMINIO_INM'], "int"),
                       
GetSQLValueString($_POST['AMOBLADO_INM'], "int"),
                       
GetSQLValueString($_POST['NUMERO_BANOS_INM'], "int"),
                       
GetSQLValueString($_POST['ESTADO_INM'], "text"),
                       
GetSQLValueString($_POST['ANO_CONSTRUCCION_INM'], "int"),
                       
GetSQLValueString($_POST['NUMERO_PARQUEOS_INM'], "int"),
                       
GetSQLValueString($_POST['PARQUEO_CUBIERTO_INM'], "int"),
                       
GetSQLValueString($_POST['CALENTADOR_INM'], "int"),
                       
GetSQLValueString($_POST['TIPO_PISO_INM'], "text"),
                       
GetSQLValueString($_POST['BANO_SOCIAL_INM'], "int"),
                       
GetSQLValueString($_POST['COCINA_INTEGRAL_INM'], "int"),
                       
GetSQLValueString($_POST['CUARTO_SERVICIO_INM'], "int"),
                       
GetSQLValueString($_POST['ESTAR_TV_INM'], "int"),
                       
GetSQLValueString($_POST['BANO_SERVICIO_INM'], "int"),
                       
GetSQLValueString($_POST['PARQUEADERO_VICITAS_INM'], "int"),
                       
GetSQLValueString($_POST['PLANTA_ELECTRICA_INM'], "int"),
                       
GetSQLValueString($_POST['VIGILANCIA_INM'], "int"),
                       
GetSQLValueString($_POST['PISCINA_INM'], "int"),
                       
GetSQLValueString($_POST['TIPO_ZONA_INM'], "text"),
                       
GetSQLValueString($_POST['JARDIN_INM'], "int"),
                       
GetSQLValueString($_POST['TERRAZA_INM'], "int"),
                       
GetSQLValueString($_POST['PATIO_INM'], "int"),
                       
GetSQLValueString($_POST['AREA_INM'], "text"));

  
mysql_select_db($database_conexinmo$conexinmo);
  
$Result1 mysql_query($insertSQL$conexinmo) or die(mysql_error());
}
?>
<form method="post" name="form1" action="<?php echo $editFormAction?>">
  <table align="center">
    <tr valign="baseline">
      <td nowrap align="right">ID_INM:</td>
      <td><input type="text" name="ID_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ID_TIP_INM:</td>
      <td><input type="text" name="ID_TIP_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ID_USO_INM:</td>
      <td><input type="text" name="ID_USO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ID_BAR:</td>
      <td><input type="text" name="ID_BAR" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">PRECIO_INM:</td>
      <td><input type="text" name="PRECIO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">VALOR_ADMINISTRACION_INM:</td>
      <td><input type="text" name="VALOR_ADMINISTRACION_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ESTRATO_INM:</td>
      <td><input type="text" name="ESTRATO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">NUMERO_HABITACIONES_INM:</td>
      <td><input type="text" name="NUMERO_HABITACIONES_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ENCONDOMINIO_INM:</td>
      <td><input type="text" name="ENCONDOMINIO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">AMOBLADO_INM:</td>
      <td><input type="text" name="AMOBLADO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">NUMERO_BANOS_INM:</td>
      <td><input type="text" name="NUMERO_BANOS_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ESTADO_INM:</td>
      <td><input type="text" name="ESTADO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ANO_CONSTRUCCION_INM:</td>
      <td><input type="text" name="ANO_CONSTRUCCION_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">NUMERO_PARQUEOS_INM:</td>
      <td><input type="text" name="NUMERO_PARQUEOS_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">PARQUEO_CUBIERTO_INM:</td>
      <td><input type="text" name="PARQUEO_CUBIERTO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">CALENTADOR_INM:</td>
      <td><input type="text" name="CALENTADOR_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">TIPO_PISO_INM:</td>
      <td><input type="text" name="TIPO_PISO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">BANO_SOCIAL_INM:</td>
      <td><input type="text" name="BANO_SOCIAL_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">COCINA_INTEGRAL_INM:</td>
      <td><input type="text" name="COCINA_INTEGRAL_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">CUARTO_SERVICIO_INM:</td>
      <td><input type="text" name="CUARTO_SERVICIO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">ESTAR_TV_INM:</td>
      <td><input type="text" name="ESTAR_TV_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">BANO_SERVICIO_INM:</td>
      <td><input type="text" name="BANO_SERVICIO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">PARQUEADERO_VICITAS_INM:</td>
      <td><input type="text" name="PARQUEADERO_VICITAS_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">PLANTA_ELECTRICA_INM:</td>
      <td><input type="text" name="PLANTA_ELECTRICA_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">VIGILANCIA_INM:</td>
      <td><input type="text" name="VIGILANCIA_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">PISCINA_INM:</td>
      <td><input type="text" name="PISCINA_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">TIPO_ZONA_INM:</td>
      <td><input type="text" name="TIPO_ZONA_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">JARDIN_INM:</td>
      <td><input type="text" name="JARDIN_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">TERRAZA_INM:</td>
      <td><input type="text" name="TERRAZA_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">PATIO_INM:</td>
      <td><input type="text" name="PATIO_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">AREA_INM:</td>
      <td><input type="text" name="AREA_INM" value="" size="32"></td>
    </tr>
    <tr valign="baseline">
      <td nowrap align="right">&nbsp;</td>
      <td><input type="submit" value="Insertar registro"></td>
    </tr>
  </table>
  <input type="hidden" name="MM_insert" value="form1">
</form>
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #2 (permalink)  
Antiguo 11/01/2013, 10:47
Avatar de jotaincubus  
Fecha de Ingreso: mayo-2005
Ubicación: Medellin - Colombia
Mensajes: 1.797
Antigüedad: 19 años, 6 meses
Puntos: 394
Respuesta: Problemas al guardar en base de datos

Mandalo a otra pagina con un mensaje dependiendo si se realizo o no exitosamente la transacción, así cuando refresquen la pagina no pasara nada y se quedara en la pagina del mensaje...
__________________
Por que existe gente que no agradece después de que se le ha brindado tiempo y ayuda ???
  #3 (permalink)  
Antiguo 11/01/2013, 10:57
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 9 meses
Puntos: 1
Respuesta: Problemas al guardar en base de datos

Gracias por responder.

Necesito qeu se quede en la misma página pero que al darle recargar por cualquier motivo no vuelva a guardar los datos.

Más ideas por favor.

Gracias.
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #4 (permalink)  
Antiguo 11/01/2013, 11:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problemas al guardar en base de datos

Pues puedes redirigir hacia la misma pagina, como sea es igual, lo importante es eliminar el estado POST mediante la redirección.

Me imagino que eso de tener ideas y ser creativo no se te da, ¿verdad?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 11/01/2013, 11:13
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 9 meses
Puntos: 1
Respuesta: Problemas al guardar en base de datos

Entiendo lo que me dices, no soy muy practico, me puedes indicar como eliminar el estado POST al redireccionar a la misma página.

Gracias por su ayuda.
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #6 (permalink)  
Antiguo 11/01/2013, 11:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problemas al guardar en base de datos

Con header() puedes hacer la redirección, consulta el manual.
http://php.net/header
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 11/01/2013, 15:29
Avatar de laureano59  
Fecha de Ingreso: febrero-2005
Mensajes: 395
Antigüedad: 19 años, 9 meses
Puntos: 1
Pregunta Problema con redireccionamiento en PHP

Hola Foro.

Espero me puedan ayudar:

Necesito eliminar el estado POST, para ello debo recargar la pagina php y lo hago de la siguiente manera: El código lo pongo en la ultima línea.


Código PHP:
<?php
 header 
("location: crearinmueble.php");
 
?>
y me sale el siguiente error: Error 310 (net::ERR_TOO_MANY_REDIRECTS): Demasiados redireccionamientos.

Gracias por sus ayudas.
__________________
http://www.weblaum.com
Laureano Melo Medina
:arriba:
  #8 (permalink)  
Antiguo 11/01/2013, 15:33
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con redireccionamiento en PHP

Pues si dejas el redirect así como así siempre va volver al mismo lugar, siempre.

Necesitas comparar primero si el request es POST, y de ser cierto redirigir, de otra forma jamás vas a salir de ahí.

Código PHP:
if ( ! empty($_POST)) {
  
// si no está vacío POST entonces redirigimos 

PDTA: te sugiero leer las normas del foro para evitar ser sancionado, ya que estás duplicando: http://www.forosdelweb.com/f18/probl...datos-1031325/
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 11/01/2013, 15:35
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: Problema con redireccionamiento en PHP

Eso es porque redireccionas a una página que está redireccionando. Redirecciona solamente cuando exista $_POST.

saludos
  #10 (permalink)  
Antiguo 11/01/2013, 15:35
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Problema con redireccionamiento en PHP

Código PHP:
Ver original
  1. <?php
  2. if($_POST); header ("location: crearinmueble.php");
  3.  ?>
__________________
>> abimaelmartell.com
  #11 (permalink)  
Antiguo 11/01/2013, 15:37
Avatar de SetheR  
Fecha de Ingreso: enero-2009
Mensajes: 265
Antigüedad: 15 años, 10 meses
Puntos: 44
Respuesta: Problema con redireccionamiento en PHP

3 respuestas simultáneas. Que velocidad..
  #12 (permalink)  
Antiguo 11/01/2013, 15:39
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con redireccionamiento en PHP

Cita:
Iniciado por abimex Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. if($_POST); header ("location: crearinmueble.php");
  3.  ?>
Eso está mal, el ; termina el bloque if() ahí mismo.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #13 (permalink)  
Antiguo 11/01/2013, 15:45
Avatar de abimex
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: ~
Mensajes: 751
Antigüedad: 17 años, 8 meses
Puntos: 137
Respuesta: Problema con redireccionamiento en PHP

cierto, quita el ; jjeje se me paso....
Código PHP:
Ver original
  1. if($_POST) header ("location: crearinmueble.php");
__________________
>> abimaelmartell.com

Etiquetas: html, mysql, redireccionamiento, registro, sql
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 21:22.