Foros del Web » Programando para Internet » PHP »

Duda con error en inserccion en BBDD MySQL

Estas en el tema de Duda con error en inserccion en BBDD MySQL en el foro de PHP en Foros del Web. El codigo en cuestion es este, se supone que deberia de hacer la inserccion correctamente y redireccionar. El caso es que redirecciona pero no hace ...
  #1 (permalink)  
Antiguo 01/03/2006, 15:40
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Duda con error en inserccion en BBDD MySQL

El codigo en cuestion es este, se supone que deberia de hacer la inserccion correctamente y redireccionar. El caso es que redirecciona pero no hace la inserccion.
Lo mas curioso es que lo he probado en servidor local y si funciona, y al subirlo al servidor de internet no funciona, que puede ser el problema... lo unico que se me ocurre es que este haciendo mal la consulta, porque ya os digo que en local me funciona perfectamente.

Código PHP:
<?php

require("functions.php");
    
conectar_bd();

if (isset (
$_POST['email'])){
    
$email $_POST['email'];
        
$consulta mysql_query("INSERT INTO datos (email) VALUE ('$email')"$connect);
            if (
$consulta == ""){echo "Error al insertar el Email";}
        echo 
"<script language=javascript> parent.frames['self'].location = 'http://www.marbodesign.com';</script>";
    
}else if(isset (
$_GET['email'])){
    
$email $_GET['email'];
        
$consulta mysql_query("INSERT INTO datos (email) VALUE ('$email')"$connect);
            if (
$consulta == ""){echo "Error al insertar el Email";}
        echo 
"<script language=javascript> parent.frames['self'].location = 'http://www.marbodesign.com';</script>";

}else{
    echo 
"Error al recibir el E-mail.";
}

?>
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #2 (permalink)  
Antiguo 01/03/2006, 15:43
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
Ummm tengo una duda por que tienes dos metodos? GET y POST? si cuando envias el form lo puedes hacer solo por POST?

Recuerda la seguridad...

Si recibes variables por GET que se insertaran en una base de datos tienes probabilidades de que te hagan algo a tu sistema

Prueba solamente recibiendo la varibale por POST e insertandola a ver.......... y haces tu validación claro.
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #3 (permalink)  
Antiguo 01/03/2006, 15:45
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Tienes los permisos adecuados para acceder a la BD del Servidor?

Te sugiero que agreges die() al final de las sentencia para ver si existe algun error en los querys o en la conexion.

Código PHP:
consulta mysql_query("INSERT INTO datos (email) VALUE ('$email')"$connect)or die("Erro en la insercion"); 
  #4 (permalink)  
Antiguo 01/03/2006, 15:47
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Pues lo puse porke recibe el dato de un Flash se me olvido corregirlo jeje. Muchas gracias, pero sigue sin hacer la inserccion :(
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #5 (permalink)  
Antiguo 01/03/2006, 15:51
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
Hiciste lo que dijo Mauled?
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #6 (permalink)  
Antiguo 01/03/2006, 15:53
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Lo acabo de hacer ahora y me sale el mensaje del "die", asi que el fallo esta en la consulta, pero no se donde el usuario con el que hago la inserccion tiene todos los permisos activos.

Me voy a volver loco jeje
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #7 (permalink)  
Antiguo 01/03/2006, 15:53
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
Código PHP:
//

  
$email $_POST['email'];
        
$consulta mysql_query("INSERT INTO datos (email) VALUE ('$email')"$connect); 
Prueba con eso
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #8 (permalink)  
Antiguo 01/03/2006, 15:57
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Te sugiero tambien que pongas el die() en donde tengas el mysql_connect() si se ejecuta el die es que no tienes los permisos aduecuados para acceder a mysql.
  #9 (permalink)  
Antiguo 01/03/2006, 15:59
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Voy a probar esto ultimo qe me habeis puesto
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #10 (permalink)  
Antiguo 01/03/2006, 16:00
Avatar de carlosfocus  
Fecha de Ingreso: enero-2006
Ubicación: Venezuela
Mensajes: 823
Antigüedad: 11 años, 11 meses
Puntos: 0
Pero tu tienes permisos para acceder al MYSQL?

verifica eso primero. por que debe ser eso.
__________________
Carlos Herrera
Web Developer
www.carlos.com.ve
Para descargar archivos propios a su Teléfono Mobil? www.carlosfocus.com
  #11 (permalink)  
Antiguo 01/03/2006, 16:07
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Si tengo permisos, despues de los cambios y comprobar he descubierto que en la variable $consulta no almacena nada.

Como dato curioso, en otra inserccion que si funciona he puesto algo asi:

Código PHP:
$consulta mysql_query("INSERT INTO `datos` (`id`,`nombre`,`apellidos`) VALUES ('', '$email', '$nombre', '$apellidos')"$connect); 
Puede ser que tenga que enumerar todos los campos aunque como en el caso de "id" haya que poner una cadena vacia?¿
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #12 (permalink)  
Antiguo 01/03/2006, 16:47
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
pues si el id lo pusiste como autoincremental no deberia ningun problema con que pongas una cadena vacia. De hecho si tendria que hacer asi.
  #13 (permalink)  
Antiguo 01/03/2006, 17:07
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Bueno, solo funciona si lo pongo asi:

Código PHP:
$consulta mysql_query("INSERT INTO `datos` (`id`,`email`,`nombre`,`apellidos`) VALUES ('', '$email', '', '')"$connect); 
Es decir, poniendo todos los campos en el primer parentesis y en el segundo cadenas en blanco en los campos que no quiero insertar nada, sino no va.
Se os ocurre a que puede ser debido?¿
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
  #14 (permalink)  
Antiguo 02/03/2006, 02:56
Avatar de bossm4  
Fecha de Ingreso: noviembre-2005
Ubicación: Torrelodones, España
Mensajes: 92
Antigüedad: 12 años, 1 mes
Puntos: 0
Alguien me puede confirmar si hay que incluir todos los campos?¿
__________________
Madrid - Zaragoza - Sevilla | www.hucaconsulting.es | Desarrollo gráfico y web a medida
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:16.