Foros del Web » Programando para Internet » PHP »

Formulario solo funciona la primera vez

Estas en el tema de Formulario solo funciona la primera vez en el foro de PHP en Foros del Web. Hola, estoy aprendiendo PHP, por lo que no tengo practicamente experiencia, y cada error es una aventura xD, pero en este caso no logro identificarlo. ...
  #1 (permalink)  
Antiguo 10/03/2012, 13:05
 
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona, España
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 1
Formulario solo funciona la primera vez

Hola, estoy aprendiendo PHP, por lo que no tengo practicamente experiencia, y cada error es una aventura xD, pero en este caso no logro identificarlo.
El problema es que estoy haciendo una especie de web donde pruebo todo lo que voy aprendiendo, y en esta, tengo un formulario muy simple para mandar mensajes y guardarlos en la base de datos.
El problema es que la primera vez que envio el formulario funciona a la perfección, pero la segunda me dice (Al enviarlo) que no existe el archivo (Error 404). Os paso el código por si os hace falta, gracias de ante mano.

Código PHP:
<div class="container">
    <
div class="bloque" name="enviar">
    <
p><strong><uEnvia la información al servidor MySQL</u></strong></p>
    <
form action="code/enviar_msj.php" name="enviar.mensaje" method="get">
    <
input type="text" name="mensaje" />
    <
input type="submit" value="Enviar Mensaje" />
    </
form>
    </
div
Código PHP:
<?php
$cnx 
mysql_connect('localhost','root','');
$db 'pruebas';
mysql_select_db($db,$cnx);
$mensaje $_GET['mensaje'];
mysql_query("INSERT INTO mensajes(mensaje) VALUES ('$mensaje')",$cnx);
header ("Location: /index.php");
exit;
?>
  #2 (permalink)  
Antiguo 10/03/2012, 13:11
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 14 años, 5 meses
Puntos: 528
Respuesta: Formulario solo funciona la primera vez

Revisa si haces el redireccionamiento correcto, es decir, que vuelvas a la página del formulario correcto.
  #3 (permalink)  
Antiguo 10/03/2012, 16:52
Avatar de mko
mko
 
Fecha de Ingreso: agosto-2010
Ubicación: la vida es un riesgo
Mensajes: 101
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Formulario solo funciona la primera vez

segun veo esta enviando los datos delformulario por la url a una
al directorio

code/ donde se encuentra tu archivo que ese encarga de insertar el registro

te de el error 404 por estas redireccionando dentro de la mismo directorio code y el archivo no esta ahi lo tines en la carpeta raiz
para que te funcione pon dos puntos antes

header ("Location: ../index.php");
__________________
cuando no esperas nada y obtienes todo eso es destino
  #4 (permalink)  
Antiguo 10/03/2012, 17:22
Avatar de kSebaPerez  
Fecha de Ingreso: marzo-2012
Mensajes: 12
Antigüedad: 10 años, 6 meses
Puntos: 2
Respuesta: Formulario solo funciona la primera vez

'action' es "code/enviar_msj.php", por lo que al enviarse comienza a cargar esa pagina. Luego guarda los parametros en una base de datos y genera una redireccion a /index.php

Ahi esta el problema, en la redireccion. El lugar al que te esta redirigiendo es a "code/index.php", ya que la estas generando dentro de un PHP en ese directorio.

La solucion es hacer referencia a un directorio superior, es decir utilizar:
header ("Location: ../index.php");

Saludos!
  #5 (permalink)  
Antiguo 10/03/2012, 18:40
 
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona, España
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Formulario solo funciona la primera vez

Hola de nuevo, muchísimas gracias por vuestras respuestas, pero ese no es el problema, el script encargado de guardar los datos en mysql redirige correctamente al index, el problema es que cuando intentas enviar otro mensaje,dice que el archivo enviar_msj.php no existe, pero esto sólo pasa cuando ya he mandado un mensaje antes y me ha redirigido a index
  #6 (permalink)  
Antiguo 10/03/2012, 20:25
Avatar de mko
mko
 
Fecha de Ingreso: agosto-2010
Ubicación: la vida es un riesgo
Mensajes: 101
Antigüedad: 12 años, 1 mes
Puntos: 14
Respuesta: Formulario solo funciona la primera vez

si te funciona asi como lo tines imagino
que tines dentro de la carpeta code un archivo index.php
y si la estructura es igual q la del index anterior
esta buscando dentro de la carpeta cabe un subdirectorio con el mismo nombre
__________________
cuando no esperas nada y obtienes todo eso es destino
  #7 (permalink)  
Antiguo 11/03/2012, 08:07
 
Fecha de Ingreso: marzo-2012
Ubicación: Barcelona, España
Mensajes: 4
Antigüedad: 10 años, 6 meses
Puntos: 1
Respuesta: Formulario solo funciona la primera vez

Pero el problema no estas en index, si no en la acción php, que "desaparece" cuando lo intento utilizar la segunda vez
  #8 (permalink)  
Antiguo 11/03/2012, 13:52
 
Fecha de Ingreso: marzo-2012
Ubicación: Mexicali
Mensajes: 9
Antigüedad: 10 años, 6 meses
Puntos: 3
Respuesta: Formulario solo funciona la primera vez

Saludos,

Tu problema esta en el redireccionamiento, ya te han explicado aqui que el problema esta hacia dondes rediriges, segun te estructura de directorios debes tener algo asi.

index.php
/code/index.php
/code/enviar_msj.php

cuando le haces el redirect estas mandando al archivo en /code/index.php, si es exactamente el mismo codigo q tienes en el primer index entonces cuando quieres enviar algo estas tratando de buscar en la carpeta /code/code/enviar_...

por aqui un compañero, te dio la solucion en la redireccion con ../index.php, concuerdo con el.

Etiquetas: formulario, mysql, primera, vez
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:47.