PDA

Ver la Versión Completa : URL´s falsas y formularios ¿Imposible?


D-MO
27-05-2006, 18:59:18
hola a todos, como recuerdan hace algunos días se hablaba de este tipo de url´s en este hilo (http://www.clubdelphi.com/foros/showthread.php?t=31285), yo ya había empezado a hacer uso de este ipo de url´s pero no a grandes rasgos, simplemente como "práctica", pero ahora estoy creando una web donde quiero hacerla con este tipo de url's pero me topo con el problema que al enviar los datos de un formulario mediante el método "POST" no me recibe nada, ¿se deberá a alguna configuración del apache que al recibir una url ficticia (pienso que al generar el error 404) elimina/borra los datos que se están enviando?, ¿Ven alguna solucion para esto?

Gracias de antemano por las respuestas

Saludos.

reevil
27-05-2006, 19:09:20
:confused: en el hilo que mencionas se habla de distintos tipos de url... la verdad no entendi muy bien, tal vez con algo de tu codigo puedas ejemplificar mejor lo que quieres

saludos

reevil
27-05-2006, 19:14:53
veamos si esto es lo que ocupas


<form method="post" action="login.php">
<br><input type="text" name="user" size="30">
<br><input type="text" name="pass" size=30>
<input type=submit name=submit value=LOGIN>
<input type=reset>
</form>


enviando asi tus variables, el archivo login.php (que puedes nombrar index.php para que sea el principal de una carpeta de tu sitio) no debe tener problemas para leerlas

dec
27-05-2006, 19:53:18
Hola,

Sólo se me ocurre decir lo que el compañero. Me parece que no deberías tener problemas en el sentido que dices. En alguna que otra prueba que he llevado a cabo (si bien yo tampoco me termino de aclarar con unas URLs y otras, me es más sencillo trabajar con URLs "de toda la vida") no creo recordar, digo, haber tenido ningún problema a ese respecto.

Pienso que Apache se limita a servir una determinada página,... bueno, y, entre otras cosas, a hacer que se encarga la aplicación oportuna de procesarlas primero. Cuando se produce un error 404 (no se puede encontrar un recurso), si tú haces que Apache envíe una página determinada, y esa página contiene código PHP, y PHP la procesa... ¿dónde está puede estar el problema?

De momento no se me ocurre otra cosa, a ver qué dice algún otro compañero y tú mismo. ¡Suerte! ;)

D-MO
27-05-2006, 20:19:59
...el archivo login.php (que puedes nombrar index.php para que sea el principal de una carpeta de tu sitio) no debe tener problemas para leerlas pues bien, precisamente eso fué lo que hice luego de haber abierto el tema, cree un nuevo archivo al que nombre "formdata.php" el cual iva a recibir la información de todos los formularios, los formularios los iva a tener con un identificador, el cual me dijera que debo hacer con los datos que recibo, algo asi:
<form name="formulario" action="formdata.php" method="post" >
....
<input type="hidden" name="identificador" value="Contactar" />
....
</form> Y el archivo formdata.php tendría algo como esto:

session_register("post");
$_SESSION["post"]=$_POST;
switch ($_POST["identificador"]){
case "Contactar" :
header("location: contactar");
break;
case "ActualizarProductos" :
...codigo...

}
y luego en contactar tomaba los datos de $_SESSION["post"] que seria lo mismo que $_POST, pero el problema, que de igual manera, la variable $_SESSION deja de funcionar con este tipo de url.

Veo que el problema aquí es el estar haciendo uso de el error 404 para las url´s del sitio

Tambien intenté usando el ForceType de apache, pero no se si será por la versión de apache (ya me estoy metiendo a lios) que me manda un error 500 al intentar abrir una página.

Si alguien sabe algo será bienvenido.
Saludos.

kayetano
29-05-2006, 11:43:24
Hola

Saliendome del tema que nos preocupa ahora quiero hacer una puntualización.
Si se utilizar el array $_SESSION, NO es necesario usar las funciones session_register() / session_unregister() / session_is_registered(), pero si session_start();

D-MO
29-05-2006, 20:16:40
...NO es necesario usar las funciones session_register() / session_unregister() / session_is_registered(), pero si session_start();
por Dios:eek:, me había olvidado por completo de esta función, aquí está la solución a mi problema utilizando sesiones.

¡¡Que torpe soy!!, 2 días de trabajo perdidos y un fin de semana intranquilo.

Saludos. y muchas gracias.

dec
29-05-2006, 20:30:57
Hola,

Y el caso es que me llamó la atención que usaras la función "session_register", pero, claro... dicho ahora, a toro pasado... tuvo que llegar Kayetano para aclarar el asunto. :D

D-MO
29-05-2006, 20:47:37
Hola,

Y el caso es que me llamó la atención que usaras la función "session_register", pero, claro... dicho ahora, a toro pasado... tuvo que llegar Kayetano para aclarar el asunto. :D
jejeje te imaginas si no hubiese venido Kayetano, se me hubiera ido la semana completa tratando de ver cual era el problema y luego pensaría mejor cambiarme de apache (http://apache.org) a pico (http://www.clubdelphi.com/foros/showthread.php?t=32112) por porque a lo mejor este último me funcionaba mejor:D

Saludos.

kayetano
31-05-2006, 12:54:43
Hola

El tema de las sesiones hay que tomarlo cada vez con mas cuidado.
En este caso se estan mezclando metodos de utilizar sesiones, me explico:
1. Se está utilizando "session_register" para registrar variables.
2. No se utiliza "session_start", no hay problema porque "session_register" lleva implicita esta funcion.
3. Se esta utilizando el array $_SESSION, aquí empieza el marrón, el manual de PHP avisa que no se debe utilizar "session_register" cuando se trabaja con este array y se ha desactiva "register_globals".

En resumen, cuando se trabaje con $_SESSION hay que olvidarse de todo menos "session_star()" y tratarlo como un array mas.

Mi inglés no es muy bueno, pero creo haber leido que a partir de la versión 4.1 no hace falta ni siquiera el "session_start()" yo de todas formas siempre lo pongo ya que me aclara si estoy o no trabajando con sesiones.

dec
31-05-2006, 14:08:09
Hola,


jejeje te imaginas si no hubiese venido Kayetano, se me hubiera ido la semana completa tratando de ver cual era el problema y luego pensaría mejor cambiarme de apache (http://apache.org/) a pico (http://www.clubdelphi.com/foros/showthread.php?t=32112) por porque a lo mejor este último me funcionaba mejor:D

Bueno. Yo tengo que decir en mi favor (no tengo abuelas, pobrecitas ellas y pobrecito yo) que estaba liado en otros temas que me impedieron centrarme verdaderamente en el problema en cuestión. Sí suponía que tú darías con ello, o algo así. O eso quise pensar, en vista de que estaba liado con otros temas... ya sabes, uno se autoengaña con una facilidad pasmosa.

No estoy diciendo que hubiera conseguido dar con la solución de haberme puesto más en serio con el problema, ¡nonsense in basic!, pero, lo dicho, dicho. :D