¡Buenas!
En esta oportunidad explicar como pasar datos por medio de URL de una pagina a otra, asi tener interactividad.
Espero ser claro y que sirva el tutorial.
Saludos
[center]
[/center]
[center]Pasar variables por la URL con PHP[/center]
Veremos cómo transferir variables de una página a otra por medio de la URL, en PHP.
Muy a menudo necesitamos que nuestros distintos scripts estén conectados unos con otros y que se sirvan de variables comunes.
Por otro lado, el usuario interacciona por medio de links hacia otra pagina o script php que procesara datos pasado por medio vinculos y dar una respuesta. Todo este tipo de factores dinámicos han de ser eficazmente regulados por un lenguaje como PHP.
Es posible que ya habras percatado de que las variables de un script tienen una validez exclusiva para el script y que nos resulta imposible conservar su valor cuando ejecutamos otro archivo distinto aunque ambos estén enlazados. Existen varias formas de enviar las variables de una página a otra de manera a que la página destino reconozca el valor asignado por el script de origen:
Pasar variables por URL
Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino.
La sintaxis sería la siguiente y es HTML puro:
<a href="destino.php?variable1=valor1&variable2=valor2">Mi enlace</a>
Podes observar que estas variables no poseen el símbolo $ delante, como son las variables. Esto es debido a que en realidad este modo de pasar variables no es específico de PHP sino que es utilizado por otros lenguajes, en este caso HTML.
Ahora nuestra variable pertenece también al entorno de la página destino.php y está lista para su explotación.
Nota: No siempre se definen automáticamente las variables recibidas por parámetro en las páginas web, depende de una variable de configuración de PHP: register_globals, que tiene que estar activada en el servidor de PHP para que así sea.
Para aclarar posibles dudas, veamos esto en forma de ejemplo.
Tendremos dos páginas, origen.html (no es necesario darle extensión PHP puesto que no hay ningún tipo de código php que deba procesar) y destino.php (HTML y codigo PHP para procesar las variable recibidas por URL)
Codigos:
Archivo: origen.html
Archivo: destino.php
$HTTP_GET_VARS
Recordamos que es posible recopilar en una variable tipo array (matriz) el conjunto de variables que han sido enviadas al script por este método a partir de la variable de sistema $HTTP_GET_VARS, que es un array asociativo. Utilizándolo quedaría así:
Nota: Aunque podamos recoger variables con este array asociativo o utilizar directamente las variables que se definen en nuestra página, resulta más seguro utilizar $HTTP_GET_VARS por dos razones, la primera que así nos aseguramos que esa varible viene realmente de la URL y la segunda, que así nuestro código será más claro cuando lo volvamos a leer, porque quedará especificado que esa variable estamos recibiéndola por la URL.
$_GET
A partir de la versión 4.1.0 de PHP se ha introducido el array asociativo $_GET, que es idéntico a $HTTP_GET_VARS, aunque un poco más corto de escribir.
Caracteres especiales en URL y su codificación con PHP
Hay algunos caracteres raros que no se pueden pasar, tal cual, por la URL. Por ejemplo, una URL no puede contener espacios en blanco, por lo que si intentas enviar una variable por URL con un valor que tiene un espacio en blanco, te dará problemas. Por ejemplo, el signo "*" o “+” entre otros, no puede figurar tampoco en una URL. Así pues, tenemos que hacer algo para convetir esos caracteres, de modo que no den problemas en la URL.
La solución en PHP es sencilla, simplemente debemos codificar la variable que tiene caracteres conflictivos a formato URL. Para ello utilizamos la función urlenconde(), que viene en la librería de funciones de PHP.
Recordar: Al pasar un parámetro por URL, existen problemas con ciertos valores de los parámetros. Por ejemplo, si un texto que queremos pasar contiene espacios, o símbolos como "+", no lo recibiremos correctamente, a no ser que hagamos algo:
Tienes que codificar la variable a formato URL antes de ponerla en el enlace. Si codificas la variable los caracteres problemáticos (como los espacios) serán cambiados por otros que no te darán problemas. Para ello tienes que utilizar la función de PHP urlencode().
Por ejemplo, mira este código PHP para pasar un par de datos conflictivos por URL:
Este código PHP generará la siguiente salida HTML, donde podemos apreciar cómo se han convertido los caracteres raros en códigos que se pueden pasar correctamente por la URL:
Entonces se podrán recibir los datos en la página a la que se dirige el enlace, como de costumbre:
echo $_GET["var1"];
echo $_GET["var2"];
Las varibles que se reciben ya tiene decodificada la URL, es decir, con los caracteres tal como queremos recibirlos, no por los códigos específicos de la URL.
Este curso se irá ampliando cada vez más, gracias y disculpe las molestias.
En esta oportunidad explicar como pasar datos por medio de URL de una pagina a otra, asi tener interactividad.
Espero ser claro y que sirva el tutorial.
Saludos
[center]
[/center]
[center]Pasar variables por la URL con PHP[/center]
Veremos cómo transferir variables de una página a otra por medio de la URL, en PHP.
Muy a menudo necesitamos que nuestros distintos scripts estén conectados unos con otros y que se sirvan de variables comunes.
Por otro lado, el usuario interacciona por medio de links hacia otra pagina o script php que procesara datos pasado por medio vinculos y dar una respuesta. Todo este tipo de factores dinámicos han de ser eficazmente regulados por un lenguaje como PHP.
Es posible que ya habras percatado de que las variables de un script tienen una validez exclusiva para el script y que nos resulta imposible conservar su valor cuando ejecutamos otro archivo distinto aunque ambos estén enlazados. Existen varias formas de enviar las variables de una página a otra de manera a que la página destino reconozca el valor asignado por el script de origen:
Pasar variables por URL
Para pasar las variables de una página a otra lo podemos hacer introduciendo dicha variable dentro del enlace hipertexto de la página destino.
La sintaxis sería la siguiente y es HTML puro:
<a href="destino.php?variable1=valor1&variable2=valor2">Mi enlace</a>
Podes observar que estas variables no poseen el símbolo $ delante, como son las variables. Esto es debido a que en realidad este modo de pasar variables no es específico de PHP sino que es utilizado por otros lenguajes, en este caso HTML.
Ahora nuestra variable pertenece también al entorno de la página destino.php y está lista para su explotación.
Nota: No siempre se definen automáticamente las variables recibidas por parámetro en las páginas web, depende de una variable de configuración de PHP: register_globals, que tiene que estar activada en el servidor de PHP para que así sea.
Para aclarar posibles dudas, veamos esto en forma de ejemplo.
Tendremos dos páginas, origen.html (no es necesario darle extensión PHP puesto que no hay ningún tipo de código php que deba procesar) y destino.php (HTML y codigo PHP para procesar las variable recibidas por URL)
Codigos:
Archivo: origen.html
<HTML>
<HEAD>
<TITLE>origen.html</TITLE>
</HEAD>
<BODY>
<a href="destino.php?saludo=hola&texto=Esto es una variable texto">Paso variables saludo y texto a la página destino.php</a>
</BODY>
</HTML>
Archivo: destino.php
<HTML>
<HEAD>
<TITLE>destino.php</TITLE>
</HEAD>
<BODY>
<?
echo "Variable $saludo: $saludo <br>n";
echo "Variable $texto: $texto <br>n"
?>
</BODY>
</HTML>
$HTTP_GET_VARS
Recordamos que es posible recopilar en una variable tipo array (matriz) el conjunto de variables que han sido enviadas al script por este método a partir de la variable de sistema $HTTP_GET_VARS, que es un array asociativo. Utilizándolo quedaría así:
<?
echo "Variable $saludo: $HTTP_GET_VARS["saludo"] <br>n";
echo "Variable $texto: $HTTP_GET_VARS["texto"] <br>n"
?>
Nota: Aunque podamos recoger variables con este array asociativo o utilizar directamente las variables que se definen en nuestra página, resulta más seguro utilizar $HTTP_GET_VARS por dos razones, la primera que así nos aseguramos que esa varible viene realmente de la URL y la segunda, que así nuestro código será más claro cuando lo volvamos a leer, porque quedará especificado que esa variable estamos recibiéndola por la URL.
$_GET
A partir de la versión 4.1.0 de PHP se ha introducido el array asociativo $_GET, que es idéntico a $HTTP_GET_VARS, aunque un poco más corto de escribir.
Caracteres especiales en URL y su codificación con PHP
Hay algunos caracteres raros que no se pueden pasar, tal cual, por la URL. Por ejemplo, una URL no puede contener espacios en blanco, por lo que si intentas enviar una variable por URL con un valor que tiene un espacio en blanco, te dará problemas. Por ejemplo, el signo "*" o “+” entre otros, no puede figurar tampoco en una URL. Así pues, tenemos que hacer algo para convetir esos caracteres, de modo que no den problemas en la URL.
La solución en PHP es sencilla, simplemente debemos codificar la variable que tiene caracteres conflictivos a formato URL. Para ello utilizamos la función urlenconde(), que viene en la librería de funciones de PHP.
Recordar: Al pasar un parámetro por URL, existen problemas con ciertos valores de los parámetros. Por ejemplo, si un texto que queremos pasar contiene espacios, o símbolos como "+", no lo recibiremos correctamente, a no ser que hagamos algo:
Tienes que codificar la variable a formato URL antes de ponerla en el enlace. Si codificas la variable los caracteres problemáticos (como los espacios) serán cambiados por otros que no te darán problemas. Para ello tienes que utilizar la función de PHP urlencode().
Por ejemplo, mira este código PHP para pasar un par de datos conflictivos por URL:
<a href="mipag.php?var1=<?echo urlencode("mi valor 1");?>&var2=<?echo urlencode("otro+valor%raro.en*url");?>"> Enlace con paso de variables
</a>
Este código PHP generará la siguiente salida HTML, donde podemos apreciar cómo se han convertido los caracteres raros en códigos que se pueden pasar correctamente por la URL:
<a href="mipag.php?var1=mi+valor+1&var2=otro%2Bvalor%25raro.en%2Aurl">
Enlace con paso de variables
</a>
Entonces se podrán recibir los datos en la página a la que se dirige el enlace, como de costumbre:
echo $_GET["var1"];
echo $_GET["var2"];
Las varibles que se reciben ya tiene decodificada la URL, es decir, con los caracteres tal como queremos recibirlos, no por los códigos específicos de la URL.
Puedes encontrar información sobre esa función en la propia página de PHP:
http://www.php.net/manual/es/function.urlencode.php
Este curso se irá ampliando cada vez más, gracias y disculpe las molestias.