Programación Web y Scripting > PHP

 Re: Pasar valores

<< < (2/3) > >>

Avalon:
Hola Diana, la explicación está en la configuración de PHP que utiliza tu servidor.

Para tratar de solucionar algunos problemas de seguridad con PHP, se añadió la variable de configuración safe_mode. Si esta variable tiene un valor ON o 1 será necesario acceder a los valores enviados mediante un formulario a través del array $_POST. A su vez, los valores enviados literalmente en la URL, como por ejemplo los valores action, fid y tid de esta dirección
http://foros.solocodigo.com/post.php?ac ... 2&tid=1893, se accederían mediante el array $_GET.


Si la variable de configuración safe_mode se encuentra en estado OFF o 0 en tu archivo php.ini podrás acceder a los valores simplemente por el nombre de la variable.


El problema de seguridad que se plantearía en este caso es que si safe_mode no está activado, y tienes por ejemplo un formulario que solicita login y password, en lugar de utilizar tu formulario de entrada, yo podría poner esto directamente en la barra de dirección del navegador y funcionaría igual:

http://www.tuweb.com/tuscript.php?login ... rd=2713576

y me saltaría tu formulario. Es este caso no hay problema porque igual necesitaría saber el login y contraseña, pero puede haber casos en que esto pueda representar un problema de seguridad para tu script.


Lo que hacen las líneas que puse antes

while ($HTTPVAR = each($_POST)) {
   ${$HTTPVAR[0]} = $HTTPVAR[1];
}

es simplemente leer todos los datos enviados a través del formulario, crear las variables con su nombre correspondiente $login, $password, etc... y asignarles el valor introducido en el formulario. De esta forma no es necesario hacer ninguna otra modificación en el código.


Si en lugar de enviarse a través de un formulario se envían los datos en la propia URL sería lo mismo pero con el array $_GET.

while ($HTTPVAR = each($_GET)) {
   ${$HTTPVAR[0]} = $HTTPVAR[1];
}


Espero haber aclarado un poco este asunto, anda que no me he enrollado ni nada... -_-

Salu2,
Avalon

Diana Serna:
Hola Avalon..
Primero mil gracias por tu respuesta, fue todo un exito..

ahora tengo otra inquietud:
en el sitio que estoy desarrollando aplique tus instrucciones y localmente me funciona perfecto ya que la variable safe_mode = off, pero cuado subo el sitio al hosting me saca error en la lineas que agrege y necesito quitarlas para que las pagina php trabajen. mi pregunta es: que tengo que cambiar en la configuracion de mi php.ini para no necesitar estas lineas de codigo???

gracias de nuevo

Avalon:
Hola Diana. ¿Qué versión de PHP tienes en el servidor de hosting? Las variables $_GET y $_POST se añadieron en la versión 4.1.0 por lo que si tienes una versión anterior no funcionará.

¿Cuál es el error que te aparece?


Otra cosa. Dices que en tu servidor local tienes safe_mode = off. En ese caso el script debería funcionar aunque quites esas líneas de código, pero por tu pregunta deduzco que no es así. ¿Qué error te da el servidor local si quitas esas líneas? :question:

Salu2,
Avalon

Diana Serna:
Hola Avalon..
Que pena no responderte antes, pero la persona que maneja el hosting necesito un año para contestar mi pregunta acerca de cual version de php tiene el servidor. bueno te doy la informacion:
el servidor tiene 4.0.0. por esta razon no funciona el codigo que agrege en mi servidor local (la version que tengo en mi servidor loca es: 4.3.1) sin embargo sigo si entender por que al activar safe_mode = off  sigo necesitando el codigo en mis paginas locales???

bueno ahora te molesto con otra inquietud: quiero almacenar las siguientes variables cuando una persona accede a mi sitio web: HTTP_REFERER, SCRIPT_NAME, HTTP_USER_AGENT, cuando trato de ver la informacion en mi servidor local de estas variables, me saca dice que no estan declaradas, pero si lo hago en el hosting, me muestra la informacion correta. Creo que necesito tambien una instruccion especial para ello, sin embargo no se cual seria, trate de probar con las instrucciones para metogo get o post.

Bueno me despido, mil gracias de nuevo
Diana Serna

Avalon:
Hola Diana,

Es sorprendente que haya hostings que todavía utilicen la versión 4.0.0! :brickwall:

Sobre tu pregunta, prueba a utilizar la función getenv( )

 
--- Código: Text --- $http_referer = getenv("HTTP_REFERER");$script_name = getenv("SCRIPT_NAME");$http_user_agent= getenv("HTTP_USER_AGENT"); 
Espero que te sirva.

Salu2,
Avalon

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa