Foros del Web » Programando para Internet » PHP »

echita un lio....

Estas en el tema de echita un lio.... en el foro de PHP en Foros del Web. hola. me estoy volviendo loca. y os comento por qué: tengo una aplicación que estoy desarrollando. la estoy haciendo como web modular con el siguiente ...
  #1 (permalink)  
Antiguo 31/01/2007, 01:10
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
echita un lio....

hola. me estoy volviendo loca. y os comento por qué:
tengo una aplicación que estoy desarrollando. la estoy haciendo como web modular con el siguiente código:
un index.php que recoge los parátmetros básicos.
un conf.php donde se recogen los módulos a cargar, que están en una carpeta llamada 'modulos'.
el tema es el siguiente:
tengo dos formularios: consultas.php., presupuesto.php.
en estos formularios tengo en cada uno un input hidden con un value distinto, por ejemplo, en consultas el value es 'consulta' y en presupuesto es 'presupuesto'. todos estos formularios (sus datos) van todos a un único archivo procesar.php. en este archivo tengo lo siguiente:

Código PHP:
<?php
$cnx 
mysql_connect("localhost""user""pass");  
mysql_select_db("basededatos"$cnx); 
if(
$_POST[formul]=="consulta")
    {
    
$resp1=$_POST[resp1];
    
$resp2=$_POST[resp2];
    
$resp3=$_POST[resp3];
mysql_query("INSERT INTO consultas(resp1,resp2,resp3) VALUES('$resp1','$resp2','$resp3')"); 
    
header("Location: index.php?mod=30"); 
    } 
if(
$_POST[formul]=="presupuesto")
    {
    
$campo1=$_POST[campo1];
    
$campo2=$_POST[campo2];
    
$campo3=$_POST[campo3];
mysql_query("INSERT INTO consultas(campo1,campo2,campo3) VALUES('$campo1','$campo2','$campo3')"); 
    
header("Location: index.php?mod=31"); 
    }
como podéis imaginar los enlaces a los que redirige, index.php?mod=30 y index.php?mod=31 son los archivos de confirmación, en este caso, exito.html y exito1.html, que estan en el directorio 'modulos'.
el problema es el siguiente:
en el primer caso, viniendo del formulario 'consultas', no hay ningún problema. una vez completado el formulario, lo inserta en la base de datos y redirecciona según le tengo dicho a index.php?mod=30, o sea, a exito.html.
el problema es en el segundo caso. en este caso, 'presupuestos' no sé porqué pero cumplimento el formulario, lo inserta en la base de datos y luego no redirecciona porque dice que no encuentra el archivo. y sin embargo existe y está en el directorio 'modulos' y además he comprobado el input hidden y efectivamente es 'presupuesto'. está todo bien.
en el form puede que vengan por ahí los tiros pues yo tengo puesto como 'action=procesar.php'. no sé si tengo que ponerlo también como un enlace a los módulos o como. pero el caso es que no va. podéis ayudarme? gracias
  #2 (permalink)  
Antiguo 31/01/2007, 01:28
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Re: echita un lio....

Que tal si en vez de un if lo haces con un switch ?
Código PHP:
<?php 
$cnx 
mysql_connect("localhost""user""pass");   
mysql_select_db("basededatos"$cnx); 
if(
$_POST[formul]){
    switch(
$_POST[formul]){
        case 
"consulta"
             
$resp1=$_POST[resp1]; 
             
$resp2=$_POST[resp2]; 
             
$resp3=$_POST[resp3];  
             
$sql "INSERT INTO consultas(resp1,resp2,resp3) VALUES('$resp1','$resp2','$resp3')";  
             
$mod "30";
             break;
        case 
"presupuesto":
             
$campo1=$_POST[campo1]; 
             
$campo2=$_POST[campo2]; 
             
$campo3=$_POST[campo3]; 
             
$sql "INSERT INTO consultas(campo1,campo2,campo3) VALUES('$campo1','$campo2','$campo3')";  
             
$mod "31";  
             break;
    }
    
mysql_query($sql);
    
header("Location: index.php?mod=$mod");
}
A lo mejor algo se arregla :D

Suerte!

Pd.: Prueba tambien poniendole error_reporting(E_ALL); al principio del archivo... para saber si existe algun error de mysql o algo.
  #3 (permalink)  
Antiguo 31/01/2007, 01:30
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 22 años, 3 meses
Puntos: 6
Re: echita un lio....

Hola
Si se inserta en labase de datos pero desupes no encuentra el archivo
revisa esto
header("Location: index.php?mod=31");
comprueba el infex.php que recibe la variable mod a ver si esta variable esta correcta.
de todas dormas prueba antes de
header("Location: index.php?mod=31");
hacer un
exit;
header("Location: index.php?mod=31");
solo por si acaso te da probemas el header location
saludos
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #4 (permalink)  
Antiguo 31/01/2007, 02:46
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: echita un lio....

lo primero gracias por vuestras respuestas. no os lo váis a creer. el problema era que el archivo 'procesar.php' estaba en el directorio 'modulos'. lo cambiado de ubicación y lo he puesto en el directorio raiz y se han resuelto todos los problemas. gracias de todos modos
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 01:33.