Parece bastante simple, pero no puedo encontrar una buena manera de hacerlo.
Digamos que en la primera página creo una variable
$myVariable = "Some text";
Y la acción del formulario para esa página es "Page2.php". Entonces, en Page2.php, ¿cómo puedo tener acceso a esa variable? Sé que puedo hacerlo con sesiones, pero creo que es demasiado para una cadena simple, y solo necesito pasar una cadena simple (un nombre de archivo).
¿Cómo puedo conseguir esto?
¡Gracias!
Respuestas:
HTML / HTTP no tiene estado, en otras palabras, lo que hiciste / viste en la página anterior, está completamente desconectado de la página actual. Excepto si usa algo como sesiones, cookies o variables GET / POST. Las sesiones y las cookies son bastante fáciles de usar, y las sesiones son mucho más seguras que las cookies. Más seguro, pero no completamente seguro.
Sesión:
Recuerde ejecutar la
session_start();
declaración en ambas páginas antes de intentar acceder a la$_SESSION
matriz, y también antes de enviar cualquier salida al navegador.Galleta:
La gran diferencia entre sesiones y cookies es que el valor de la variable se almacenará en el servidor si está usando sesiones, y en el cliente si está usando cookies. No se me ocurre ninguna buena razón para usar cookies en lugar de sesiones, excepto si desea que los datos persistan entre sesiones, pero incluso así es mejor almacenarlos en una base de datos y recuperarlos en función de un nombre de usuario o id.
OBTENER Y PUBLICAR
Puede agregar la variable en el enlace a la página siguiente:
Esto creará una variable GET.
Otra forma es incluir un campo oculto en un formulario que se envíe a la página dos:
Y luego en la página dos:
Simplemente cambie el método para el formulario a
post
si desea hacerlo por correo. Ambos son igualmente inseguros, aunque GET es más fácil de hackear.El hecho de que cada nueva solicitud es, a excepción de los datos de la sesión, una instancia totalmente nueva del script me sorprendió cuando comencé a codificar en PHP. Una vez que te acostumbras, es bastante simple.
fuente
Gracias por las respuestas anteriores. Así es como lo hice, espero que ayude a los que siguen. Estoy buscando pasar un número de registro de una página a otra, de ahí regName y regValue :
Crea tu primera página, llámala set_reg.php :
Cree su segunda página, llámela get_reg.php :
Aunque no es tan completo como la respuesta anterior, para mis propósitos esto ilustra de manera simple la relación entre los diversos elementos.
fuente
Pasando datos en la solicitud
Puede incrustarlo como un campo oculto en su formulario o agregarlo a su URL de acción de formularios
o
Tenga en cuenta que esto también ilustra el uso de htmlentities y urlencode al pasar datos.
Pasando datos en la sesión
Si no es necesario pasar los datos al lado del cliente, las sesiones pueden ser más apropiadas. Simplemente llame a session_start () al comienzo de cada página, y puede obtener y establecer datos en la matriz $ _SESSION.
Seguridad
Como usted indica que su valor es en realidad un nombre de archivo, debe conocer las ramificaciones de seguridad. Si el nombre de archivo ha llegado del lado del cliente, suponga que el usuario ha alterado el valor. ¡Verifíquelo para la validez! ¿Qué sucede cuando el usuario pasa la ruta a un archivo importante del sistema, o un archivo bajo su control? ¿Se puede usar su script para "sondear" el servidor en busca de archivos que existen o no?
Como claramente está comenzando aquí, vale la pena recordar que esto se aplica a cualquier dato que llegue en $ _GET, $ _POST o $ _COOKIE: ¡asuma que su peor enemigo creó el contenido de esos arreglos y codifique en consecuencia!
fuente
Hay tres métodos para pasar valor en php.
Estos tres métodos se usan para diferentes propósitos. Por ejemplo, si queremos recibir nuestro valor en la página siguiente, podemos usar el método 'post' ($ _POST) como: -
Si requerimos el valor de variable en más de una página, podemos usar variable de sesión como: -
Antes de usar esta sintaxis para crear la variable SESSION, primero debemos agregar esta etiqueta al comienzo de nuestra página php
El método GET se usa generalmente para imprimir datos en la misma página que solía recibir información del usuario. Su sintaxis es como:
El método POST generalmente es más seguro que GET porque cuando usamos el método Get, puede mostrar los datos en la barra de URL. Si los datos son datos más confidenciales como la contraseña, pueden ser inggeris.
fuente
Las sesiones serían la única buena manera, también podría usar GET / POST pero eso sería potencialmente inseguro.
fuente
prueba este código
usando el campo oculto podemos pasar php varibale a otra página
page1.php
pase la variable php al valor del campo oculto para que pueda acceder a esta variable en otra página
page2.php
fuente
página 2
fuente
Las sesiones serían la única buena manera, también podría usar GET / POST pero eso sería potencialmente inseguro.
Paso de datos en la sesión Si no es necesario pasar los datos al lado del cliente, las sesiones pueden ser más apropiadas. Simplemente llame a session_start () al comienzo de cada página, y puede obtener y establecer datos en la matriz $ _SESSION.
Seguridad Dado que declara que su valor es en realidad un nombre de archivo, debe tener en cuenta las ramificaciones de seguridad. Si el nombre de archivo ha llegado del lado del cliente, suponga que el usuario ha alterado el valor. ¡Verifíquelo para la validez! ¿Qué sucede cuando el usuario pasa la ruta a un archivo importante del sistema o un archivo bajo su control? ¿Se puede usar su script para "sondear" el servidor en busca de archivos que existen o no?
Como claramente está comenzando aquí, vale la pena recordar que esto se aplica a cualquier dato que llegue en $ _GET, $ _POST o $ _COOKIE: ¡asuma que su peor enemigo creó el contenido de esos arreglos y codifique en consecuencia!
fuente