Foros del Web » Programando para Internet » PHP »

Problema con el código de envio de formulario

Estas en el tema de Problema con el código de envio de formulario en el foro de PHP en Foros del Web. Hola!! Tengo un formulario donde el usuario puede insertar, modificar o borrar productos pero cuando pulsa en el botón para aceptar, me da un error ...

  #1 (permalink)  
Antiguo 19/05/2008, 03:59
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Problema con el código de envio de formulario

Hola!!

Tengo un formulario donde el usuario puede insertar, modificar o borrar productos pero cuando pulsa en el botón para aceptar, me da un error interno del servidor y no sé cual es el problema. Os pongo el código que se debería procesar cuando pulsa el botón de aceptar:

Código PHP:
if ($_GET["accion"] == "insertar")
{
    
$sql "INSERT INTO " $subcategoria " (referencia, descripcion, colores, 25, 50, 100, 250, 500, 1000, 5000, 10000, codigo_marcaje, medida_marcaje, colores_maximos, incremento) VALUES ('" $_POST["referencia"] . "', '" $_POST["descripcion"] . "', '" $_POST["colores"] . "', " $_POST["25"] . ", " $_POST["50"] . ", " $_POST["100"] . ", " $_POST["250"] . ", " $_POST["500"] . ", " $_POST["1000"] . ", " $_POST["5000"] . ", " $_POST["10000"] . ", '" $_POST["codigo_marcaje"] . "', '" $_POST["medida_marcaje"] . "', '" $_POST["colores_maximos"] . "', " $_POST["incremento"] . ")";
    
mysql_query($sql$conexion);
    
$tipo_imagen $_FILES["imagen"]['size'];
    
$nombre_imagen $_FILES["imagen"]['name'];
    if (!((
strpos($tipo_imagen"gif") || strpos($tipo_imagen"jpeg") || strpos($tipo_imagen"jpg")))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">La extensión de la imagen no es correcta. Se permiten imágenes .gif, .jpeg o .jpg.</td></tr>";
        
header('Location: demogestionar2.php');
    }
    else
    {
        
$destino_imagen "imagenes/" $nombre_imagen;
    } 
    if (empty(
mysql_error($conexion)) && copy($_FILES["imagen"]['tmp_name'], $destino_imagen))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha introducido satisfactoriamente.</td></tr>";
        
header('Location: demogestionar.php');
    }
    else
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al insertar el producto. Inténtelo de nuevo.</td></tr>";
        
header('Location: demogestionar.php');
    }
}
elseif (
$_GET["accion"] == "modificar")
{
    
$sql "UPDATE " $subcategoria " SET descripcion = '" $_POST["descripcion"] . "', colores = '" $_POST["colores"] . "', 25 = " $_POST["25"] . ", 50 = " $_POST["50"] . ", 100 = " $_POST["100"] . ", 250 = " $_POST["250"] . ", 500 = " $_POST["500"] . ", 1000 = " $_POST["1000"] . ", 5000 = " $_POST["5000"] . ", 10000 = " $_POST["10000"] . ", codigo_marcaje = '" .  $_POST["codigo_marcaje"]. "', medida_marcaje = '" $_POST["medida_marcaje"] . "', colores_maximos = '" $_POST["colores_maximos"] . "', incremento = " $_POST["incremento"] . " WHERE referencia = '" $_POST["referencia"] . "'";        
    
mysql_query($sql$conexion);
    
$tipo_imagen $_FILES["imagen"]['size'];
    
$nombre_imagen $_FILES["imagen"]['name'];
    if (!((
strpos($tipo_imagen"gif") || strpos($tipo_imagen"jpeg") || strpos($tipo_imagen"jpg")))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">La extensión de la imagen no es correcta. Se permiten imágenes .gif, .jpeg o .jpg.</td></tr>";
        
header('Location: demogestionar2.php');
    }
    else
    {
        
$destino_imagen "imagenes/" $nombre_imagen;
    } 
    if (empty(
mysql_error($conexion)) && copy($_FILES["imagen"]['tmp_name'], $destino_imagen))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha modificado satisfactoriamente.</td></tr>";
        
header('Location: demogestionar.php');
    }
    else
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al modificar el producto. Inténtelo de nuevo.</td></tr>";
        
header('Location: demogestionar.php');
    }
}
elseif (
$_GET["accion"] == "borrar")
{
    
$sql "DELETE * FROM " $subcategoria "WHERE referencia = '" $_POST["referencia"] . "'";
    
mysql_query($sql$conexion);
    if (empty(
mysql_error($conexion)))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha borrado satisfactoriamente.</td></tr>";
        
header('Location: demogestionar.php');
    }
    else
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al borrar el producto. Inténtelo de nuevo.</td></tr>";
        
header('Location: demogestionar.php');
    }

Espero que me puedan ayudar.
  #2 (permalink)  
Antiguo 19/05/2008, 05:02
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con el código de envio de formulario

Qué te dice ese error del servidor?
  #3 (permalink)  
Antiguo 19/05/2008, 08:47
isra00
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con el código de envio de formulario

A primera vista parece que puede estar dando problemas el uso de $_FILES. Usa en su lugar $HTTP_POST_FILES, suele fallar menos, y, si falla, da error de PHP, no error interno del servidor.
  #4 (permalink)  
Antiguo 20/05/2008, 01:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Ya he probado a cambiarlo por $HTTP_POST_FILES pero me sigue dando el mismo problema. Os pongo lo que me sale:

Cita:
No se puede mostrar la página

Hay un problema con la página solicitada y no puede ser mostrada..

--------------------------------------------------------------------------------

Pruebe lo siguiente:
  • Abra la página principal de localhost y busque vínculos a la información que desea.
  • Haga clic en el botón Actualizar o vuelva a intentarlo más tarde.
  • Haga clic en Búsqueda para buscar información en Internet.
  • También puede ver una lista de sitios relacionados.


HTTP 500 - Error interno del servidor
Internet Explorer
Muchas gracias.
  #5 (permalink)  
Antiguo 20/05/2008, 01:54
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 5 meses
Puntos: 48
Respuesta: Problema con el código de envio de formulario

Tienes echo antes de header, y header(Location) sin un exit despues.
  #6 (permalink)  
Antiguo 20/05/2008, 02:08
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Muchas gracias DarkJ!!

¿Cómo puedo hacer para poner el echo y el header? Es que me interesa que el usuario vea el problema pero que luego se redireccione a la página donde le ha dado el error para que lo vuelva a intentar.
  #7 (permalink)  
Antiguo 20/05/2008, 04:14
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

He cambiado el header por:

Código PHP:
echo "<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar2.php\"></head>"
Pero tampoco me funciona me sigue dando el mismo error que antes. Ya no sé como hacerlo porque todo el rato me sale el mismo problema.

Espero que me puedan ayudar. Muchas gracias.
  #8 (permalink)  
Antiguo 20/05/2008, 04:45
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con el código de envio de formulario

Prueba comentar todos los header("Location: ");

Por otro lado, te aconsejaría instanciar el resultado del proceso en variables de sesión (o pasarlas por url) y luego en la página destino tratar ese resultado.
  #9 (permalink)  
Antiguo 21/05/2008, 01:15
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Buenos días!!

Ya he comentado todos los header y he vuelto a probar y nada, me sigue dando exactamente el mismo error que antes.

No sé a que te refieres con lo de instanciar el resultado en variables de sesión, ¿qué guarde lo que el usuario escribe en variables de sesión? Y eso lo hago en la página en la que tengo el formulario, ¿no?

Muchas gracias por las respuestas, !!
  #10 (permalink)  
Antiguo 21/05/2008, 01:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con el código de envio de formulario

si sabes ke no debe haber ningun echo/print o HTML antes de enivar algun header() ????

si no lo sabias, procura evitar imprimir algo... si es que vas a enviar algun header... sobre todo location

digo.... para ke imprimir ALGO si vas a cambiar de pagina inmediatamente... incluso, si usaras header() con refresh... NO debes imprimir nada... antes, luego... SI, despues
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #11 (permalink)  
Antiguo 21/05/2008, 02:46
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Ya he probado a quitar los header y dejar sólo el mensaje pero me sigue dando el mismo error, el http 500 - error interno del servidor y no tengo ni idea de porque me lo da.

Llevo lo menos dos semanas con esta página y no encuentro solución, voy a acabar medio loca, .
  #12 (permalink)  
Antiguo 21/05/2008, 04:18
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con el código de envio de formulario

Según Goggle, puede ser por motivos de permisos sobre el fichero de php.

¿Qué permisos tiene el fichero? ¿Eres el propietario del mismo?
  #13 (permalink)  
Antiguo 21/05/2008, 04:34
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Si que tengo todos los permisos porque soy el propietario. Y en la base de datos lo mismo, también dispongo de todos los permisos para insertar, modificar, ...
  #14 (permalink)  
Antiguo 21/05/2008, 04:35
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con el código de envio de formulario

Comenta todo el código y ves descomentando poco a poco para aislar el error.

Suerte.
  #15 (permalink)  
Antiguo 21/05/2008, 04:39
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Voy a intentarlo a ver que pasa. Ya os comentare.

Muchas gracias por vuestro tiempo!!
  #16 (permalink)  
Antiguo 21/05/2008, 04:47
Avatar de malucha  
Fecha de Ingreso: abril-2005
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
Pregunta Respuesta: Problema con el código de envio de formulario

NOTA: Edito para indicar que por fin me inspiré y puse la ruta completa. El problema era la odiosa ruta! Vaya! XDD Un saludo a todos y gracias por vuestro tiempo!

¡Hola!

Ya hacía tiempo que no me pasaba por aquí y como siempre, con problemas.
Retomo este hilo porque también yo estoy teniendo problemas con el formulario a la hora de subir archivos, bueno, más bien a la hora de moverlo.

Tengo el siguiente código:
Código PHP:
if (is_uploaded_file($HTTP_POST_FILES['adjunto']['tmp_name'])) {
            if (
$HTTP_POST_FILES['adjunto']['size'] < 8400000) {
                
$ruta_destino="../adjuntos/";
                
$ruta_destino2=$_SERVER['DOCUMENT_ROOT'].$ruta_destino;
                
$movido=move_uploaded_file ($HTTP_POST_FILES['adjunto']['tmp_name'], $ruta_destino2 "pepito1");
                if (
$movido) {
                    
//tenemos que comprobar cual es el id del ultimo boletin insertado
                    //una vez comprobado y obtenido, tenemos que hacer la ejecución del insert
                    //INSERT into adjunto (localizacion, nombre, id_bol VALUES ('../adjuntos/', $HTTP_POST_FILES['archivo']['tmp_name'], $id_boletin);
                    
echo ("Se ha movido correctamente el archivo adjunto");
                }
                else { echo (
"Error. No se ha podido guardar correctamente el archivo adjunto");}
            }
            else { echo (
"El tamaño del archivo subido superaba el límite máximo permitido de 1MB"); }
        } 
He probado poniendo la ruta de mil formas diferentes pero se ve que no debo estar muy inspirada que no doy con la solución.
El directorio adjuntos tiene todos los permisos. También estoy trabajando en Windows.

El error que me muestra al enviar los archivos es el siguiente:

Warning: move_uploaded_file(C:/AppServ/www../adjuntos/pepito1) [function.move-uploaded-file]: failed to open stream: No such file or directory in C:\AppServ\www\pruebas\webIgleva\Privado\admin\cre arbol.php on line 15

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\Windows\Temp\php7D8.tmp' to 'C:/AppServ/www../adjuntos/pepito1' in C:\AppServ\www\pruebas\webIgleva\Privado\admin\cre arbol.php on line 15
Error. No se ha podido guardar correctamente el archivo adjunto


Vamos, que teóricamente me falla por los permisos ¿no? pero vaya, que soy la propietaria, y fui a la carpeta y le di todos los permisos a todo kiski pues no me explico.

Os agradecería una ayudita para salir del atolladero!! Gracias!!

Última edición por malucha; 21/05/2008 a las 05:27 Razón: Solucionado
  #17 (permalink)  
Antiguo 22/05/2008, 02:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Hola de nuevo!!

A mi, a diferencia de malucha, todavía me trae por la calle de la amargura.

Tengo una duda que me pasaba en otra página y no sé si en ésta será por lo mismo. Cuando paso el formulario lo hago con el método post, luego en la otra página todas las variables que le paso las puedo recoger con $_POST, ¿no?

Es que en otra página que tenía cuando recogía un valor con $_post, el siguiente valor que recogía con $_post no me funcionaba y ahora que he cambiado eso me funciona.

No creo que sea eso porque supuestamente al enviarlo con el método post es la forma de recoger todos los datos pero es que ya no sé por que falla.

Probé a comentarlo y no me hace ni la consulta y por más que la miro creo que está bien.
  #18 (permalink)  
Antiguo 27/05/2008, 02:11
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Nadie sabe como resolver el problema, es que ya no sé ni que intentar llevo demasiado tiempo con este código y yo creo que ya no veo más allá de mis narices.

Agradecería en el alma una ayuda con este código.
  #19 (permalink)  
Antiguo 27/05/2008, 02:49
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Ahora ya no me da el error interno del servidor y me pone algo más concreto. El error que me da es:

Cita:
Fatal error: Can't use function return value in write context in Pruebaconfirmargestion.php on line 78
Y esa línea se corresponde con:

Código PHP:
if (empty(mysql_error($conexion)) && copy($HTTP_POST_FILES["imagen"]['tmp_name'], $destino_imagen)) 
¿Sabeis por qué me da ese error? Es que no he utilizado nunca las funciones para subir imágenes a una carpeta del servidor y no sé si lo estoy haciendo bien.

Espero vuestras respuestas.

Muchas gracias.
  #20 (permalink)  
Antiguo 27/05/2008, 03:40
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Nadie sabe por qué es ese error??
  #21 (permalink)  
Antiguo 27/05/2008, 03:49
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: Problema con el código de envio de formulario

Hola Malucha

prueba a quitarle los dos puntos a la ruta

$ruta_destino="../adjuntos/";
  #22 (permalink)  
Antiguo 27/05/2008, 04:07
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con el código de envio de formulario

La función empty no permite pasarle funciones ni objetos.
Deberías hacer algo así:
Código PHP:
$var funcion();
empty(
$var); 
  #23 (permalink)  
Antiguo 28/05/2008, 01:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Gracias por tu respuesta Jerkan!!

Ahora ya no me da errores pero la consulta no se me hace y luego siempre se hace el else donde pongo que ha habido un error y que lo vuelva a intentar.

Os pongo de nuevo el código como lo tengo ahora a ver si alguien sabe por qué ya que yo no veo el error.

Código PHP:
require_once("conexion.inc.php");
$conexion mysql_connect($servidor$usuario$passwd);
$db mysql_select_db($basedatos$conexion);
if (!
$conexion)
{
    echo 
"Error al establecer la conexión con la base de datos: " mysql_error();
    exit();
}
if (!
$db)
{
    echo 
"Error seleccionando la base de datos: " mysql_error();
    exit();
}
$subcategoria $_GET["subcategoria"];
if (
$_GET["accion"] == "insertar")
{
    
$sql "INSERT INTO " $subcategoria " (referencia, descripcion, colores, 25, 50, 100, 250, 500, 1000, 5000, 10000, codigo_marcaje, medida_marcaje, colores_maximos, incremento) VALUES ('" $_POST["referencia"] . "', '" $_POST["descripcion"] . "', '" $_POST["colores"] . "', " $_POST["25"] . ", " $_POST["50"] . ", " $_POST["100"] . ", " $_POST["250"] . ", " $_POST["500"] . ", " $_POST["1000"] . ", " $_POST["5000"] . ", " $_POST["10000"] . ", '" $_POST["codigo_marcaje"] . "', '" $_POST["medida_marcaje"] . "', '" $_POST["colores_maximos"] . "', " $_POST["incremento"] . ")";
    
$insertar mysql_query($sql$conexion);
    
$tipo_imagen $HTTP_POST_FILES["imagen"]['type'];
    
$nombre_imagen $HTTP_POST_FILES["imagen"]['name'];
    if (!(
strpos($tipo_imagen"gif") || strpos($tipo_imagen"jpeg") || strpos($tipo_imagen"jpg")))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">La extensión de la imagen no es correcta. Se permiten imágenes .gif, .jpeg o .jpg.</td></tr>";
        echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar3.php?accion=insertar\"></head>";
    }
    else
    {
        
$destino_imagen "imagenes/" $nombre_imagen;
        if (
$insertar && move_uploaded_file($HTTP_POST_FILES["imagen"]['tmp_name'], $destino_imagen))
        {
            echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha introducido satisfactoriamente.</td></tr>";
            echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar1.html\"></head>";
        }
        else
        {
            echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al insertar el producto. Inténtelo de nuevo.</td></tr>";
            echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar2.php?accion=insertar\"></head>";
        }
    }
}
elseif (
$_GET["accion"] == "modificar")
{
    
$sql "UPDATE " $subcategoria " SET descripcion = '" $_POST["descripcion"] . "', colores = '" $_POST["colores"] . "', 25 = " $_POST["25"] . ", 50 = " $_POST["50"] . ", 100 = " $_POST["100"] . ", 250 = " $_POST["250"] . ", 500 = " $_POST["500"] . ", 1000 = " $_POST["1000"] . ", 5000 = " $_POST["5000"] . ", 10000 = " $_POST["10000"] . ", codigo_marcaje = '" .  $_POST["codigo_marcaje"]. "', medida_marcaje = '" $_POST["medida_marcaje"] . "', colores_maximos = '" $_POST["colores_maximos"] . "', incremento = " $_POST["incremento"] . " WHERE referencia = '" $_POST["referencia"] . "'";
    
$modificar mysql_query($sql$conexion);
    
$tipo_imagen $HTTP_POST_FILES["imagen"]['type'];
    
$nombre_imagen $HTTP_POST_FILES["imagen"]['name'];
    if (!(
strpos($tipo_imagen"gif") || strpos($tipo_imagen"jpeg") || strpos($tipo_imagen"jpg")))
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">La extensión de la imagen no es correcta. Se permiten imágenes .gif, .jpeg o .jpg.</td></tr>";
        echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar3.php?accion=modificar\"></head>";
    }
    else
    {
        
$destino_imagen "imagenes/" $nombre_imagen;
        if (
$modificar && move_uploaded_file($HTTP_POST_FILES["imagen"]['tmp_name'], $destino_imagen))
        {
            echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha modificado satisfactoriamente.</td></tr>";
            echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar1.html\"></head>";
        }
        else
        {
            echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al modificar el producto. Inténtelo de nuevo.</td></tr>";
            echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar2.php?accion=modificar\"></head>";
        }
    }
}
elseif (
$_GET["accion"] == "borrar")
{
    
$sql "DELETE * FROM " $subcategoria "WHERE referencia = '" $_POST["referencia"] . "'";
    
$borrar mysql_query($sql$conexion);
    if (
$borrar)
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha borrado satisfactoriamente.</td></tr>";
        echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar1.html\"></head>";
    }
    else
    {
        echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al borrar el producto. Inténtelo de nuevo.</td></tr>";
        echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar2.php?accion=borrar\"></head>";
    }

Muchas gracias de antemano.

Saludos, .

Última edición por Janire; 28/05/2008 a las 01:34
  #24 (permalink)  
Antiguo 28/05/2008, 02:01
Avatar de malucha  
Fecha de Ingreso: abril-2005
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Hoja Janire:

No sé si siempre has utilizado esto:
Código PHP:
$HTTP_POST_FILES["imagen"]['type']; 
Desde luego yo, probaría a poner comillas simples en 'imagen' y en todas las variables que utilizas de esa forma
Código PHP:
$HTTP_POST_FILES['imagen']['type'
.

Ya sabes que PHP diferencia entre comillas simples y dobles y tal vez te esté dando un error por eso (aunque evidentemente yo soy bastante ignorante en este tema, por probar no pasa nada, es más, descartas una posibilidad).

Un saludo
  #25 (permalink)  
Antiguo 28/05/2008, 02:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Acabo de probar lo de las comillas y nada, no era por eso, .

Yo creo que el fallo me lo da en la consulta porque la realizo antes del if y cuando miro en la base de datos no se me ha insertado nada y como eso me da false pues siempre se me hace el else pero es que por más que la miro no veo el fallo, .

Los campos int y float no necesitan comillas en la consulta, ¿no?
  #26 (permalink)  
Antiguo 28/05/2008, 03:35
Avatar de malucha  
Fecha de Ingreso: abril-2005
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Bueno, pues prueba a poner la comprobación debajo de la inserción, es decir poner: si se ejecutó, hacer las siguientes cosas (sabes que devuelve verdadero o falso, o eso creo) si no se ejecutó mostrar el error.

Pero vamos, que no tengo claro donde dices que te falla, en la inserción¿? Pues prueba así:

Código PHP:
if ($_GET["accion"] == "insertar")
{
    
$sql "INSERT INTO " $subcategoria " (referencia, descripcion, colores, 25, 50, 100, 250, 500, 1000, 5000, 10000, codigo_marcaje, medida_marcaje, colores_maximos, incremento) VALUES ('" $_POST["referencia"] . "', '" $_POST["descripcion"] . "', '" $_POST["colores"] . "', " $_POST["25"] . ", " $_POST["50"] . ", " $_POST["100"] . ", " $_POST["250"] . ", " $_POST["500"] . ", " $_POST["1000"] . ", " $_POST["5000"] . ", " $_POST["10000"] . ", '" $_POST["codigo_marcaje"] . "', '" $_POST["medida_marcaje"] . "', '" $_POST["colores_maximos"] . "', " $_POST["incremento"] . ")";
    
$insertar mysql_query($sql$conexion);

    if !(
$insertar) {
        echo 
"Ha fallado la inserción";
        echo 
mysql_error();
    }
    else { ... 
//todo lo demás ... } 
No te puedo asegurar que pasa pero haciendo echos a los pocos puedes comprobar donde te falla exactamente y localizar el problema. Con el error de mysql debería mostrarte un error si hubiese alguno en la inserción, pero ya te digo que tengo poca idea de php :P
  #27 (permalink)  
Antiguo 28/05/2008, 04:03
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Ya he probado lo que me dices y si que me da el error en la inserción. El error que me da es:

Cita:
Ha fallado la inserción. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '25, 50, 100, 250, 500, 1000, 5000, 10000, codigo_marcaje, medida_marcaje, colore' at line 1
No sé porque me da ese error porque en la base de datos es así como se llaman los campos y hasta ahora en los selects no me ha dado ningún problema y los campos son los mismos.

¿Sabeís como puedo resolver este error?

Muchas gracias.
  #28 (permalink)  
Antiguo 28/05/2008, 04:36
Avatar de malucha  
Fecha de Ingreso: abril-2005
Mensajes: 70
Antigüedad: 19 años
Puntos: 0
Respuesta: Problema con el código de envio de formulario

¿Por qué no le das nombres a las variables que recoges por post? Yo creo que te debe dar problema con tanto lío de comillas que tienes ahí montado en la inserción. Evidente no puedo asegurarlo. Tampoco utilicé nunca números como nombre de campo pero me imagino que si la base de datos te permitió crearlos será por que se puede. :P

No tengo ni idea de qué más decirte. Prueba lo de las variables en lugar de utilizar tantos post, tal vez sea el problema porque lo que es seguro es que el problema está en esa línea y hay que "depurar" responsabilidades :P
  #29 (permalink)  
Antiguo 29/05/2008, 01:54
 
Fecha de Ingreso: septiembre-2007
Mensajes: 100
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Problema con el código de envio de formulario

Al final lo que hice fue cambiar el nombre de las variables en la base de datos y en vez de números puse letras y ahora ya funciona insertar y modificar productos pero el borrar productos no me funciona. La consulta que hago es:

Código PHP:
$subcategoria $_GET["subcategoria"];
$referencia $_POST["referencia"];
$sql "DELETE * FROM " $subcategoria " WHERE referencia = '" $referencia "'";
$borrar mysql_query($sql$conexion);
if (
$borrar)
{
    echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">El producto se ha borrado satisfactoriamente.</td></tr>";
    echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar1.html\"></head>";
}
else
{
    echo 
"<tr bgcolor=\"#FFFFFF\"><td width=\"836\" height=\"30\">Ha habido un error al borrar el producto. Inténtelo de nuevo.</td></tr>";
    echo 
"<head><meta http-equiv=\"refresh\" content=\"5; url=http://www.Pruebademogestionar2.php?accion=borrar\"></head>";

¿Está bien? Es que no me funciona, siempre me hace el else. Sé que la referencia me la coge porque he probado a escribirla y si que le llega.
  #30 (permalink)  
Antiguo 29/05/2008, 03:21
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Respuesta: Problema con el código de envio de formulario

Para saber más sobre el error mysql, puedes utilizar la funcion mysql_error.
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 03:01.