PHP y HTML interactúan mucho: PHP puede generar HTML, y HTML puede pasar información a PHP. Antes de leer estas preguntas frecuentes, es importante que aprenda a recuperar variables de fuentes externas. La página de manual sobre este tema también incluye muchos ejemplos.
¿Qué codificación / decodificación necesito cuando paso un valor a través de un formulario/URL?
Hay varias etapas para las que la codificación es importante., Suponiendo que tiene una cadena string data, que contiene la cadena que desea transmitir de una manera no codificada, estas son las etapas relevantes:
-
interpretación HTML. Para especificar una cadena aleatoria, debe incluirla entre comillas dobles, y htmlspecialchars () el valor completo.
-
URL: una URL consta de varias partes. Si desea que sus datos se interpreten como un elemento, debe codificarlos con urlencode().,
ejemplo #1 Un Ejemplo oculto de formulario HTML element
<?php
echo '<input type="hidden" value="' . htmlspecialchars($data) . '" />'."\n";
?>
Nota: es un error urlencode() $datos, ya que los navegadores responsabilidad urlencode() los datos. Todos los navegadores populares lo hacen correctamente. Tenga en cuenta que esto sucederá independientemente del método (es decir, GET o POST). Sin embargo, solo notará esto en caso de solicitud GET, porque las solicitudes POST generalmente están ocultas.,
Nota: Los datos se muestran en el navegador según lo previsto, porque el navegador interpretará los símbolos HTML escapados. Al enviar, ya sea a través de GET o POST, los datos serán urlencoded por el navegador para la transferencia, y urldecoded directamente por PHP. Así que al final, no es necesario hacer ningún urlencoding / urldecoding usted mismo, todo se maneja automáticamente.,
Ejemplo #3 En una dirección URL
<?php
echo '<a href="' . htmlspecialchars("/nextpage.php?stage=23&data=" .
urlencode($data)) . '">'."\n";
?>
Nota: En el hecho de que usted está fingiendo un HTML solicitud GET, por lo tanto es necesario manualmente urlencode() los datos.
Nota: Necesita htmlspecialchars() toda la URL, porque la URL aparece como valor de un atributo HTML. En este caso, el navegador primero quitará el valor de htmlspecialchars() y luego pasará la URL. PHP entenderá la URL correctamente, porque urlencode () d los datos., Notará que
&
en la URL se reemplaza por&
. Aunque la mayoría de los navegadores se recuperarán si se olvida de esto, esto no siempre es posible. Así que incluso si tu URL no es dinámica, necesitas htmlspecialchars() la URL.
estoy tratando de utilizar un <input type=»image»> etiqueta, pero el $foo.x y Fo foo.las variables y no están disponibles. Get _GET tampoco existe. ¿Dónde están?,
al enviar un formulario, es posible usar una imagen en lugar del botón de Envío Estándar con una etiqueta como:
<input type="image" src="https://www.php.net/manual/en/faq.html.phpimage.gif" name="foo" />
cuando el usuario hace clic en algún lugar de la imagen, el formulario que lo acompaña se transmitirá al servidor con dos variables adicionales: foo.x y foo.Y.
porque foo.x y foo.y haría que los nombres de variables no sean válidos en PHP, se convierten automáticamente a foo_x y foo_y. es decir, los puntos se reemplazan con guiones bajos., Por lo tanto, accedería a estas variables como cualquier otra descrita en la sección sobre recuperación de variables de fuentes externas. Por ejemplo, $_GET.
Nota:
Los espacios en los nombres de variables de solicitud se convierten en guiones bajos.
¿Cómo puedo crear matrices en un HTML <formulario>?,
Para obtener su <formulario> resultado se envía como una matriz para su script PHP el nombre del <entrada>, <seleccione> o <textarea> elementos como este:
<input name="MyArray" /><input name="MyArray" /><input name="MyArray" /><input name="MyArray" />
Aviso de los corchetes después del nombre de la variable, eso es lo que hace que sea una matriz., Puede agrupar los elementos en diferentes arrays asignando el mismo nombre a diferentes elementos:
<input name="MyArray" /><input name="MyArray" /><input name="MyOtherArray" /><input name="MyOtherArray" />
esto produce dos arrays, MyArray y MyOtherArray, que se envían al script PHP. También es posible asignar claves específicas a sus matrices:
<input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" /><input name="AnotherArray" />
el array AnotherArray ahora contendrá las claves 0, 1, Correo electrónico y teléfono.
Nota:
especificar claves de matriz es opcional en HTML., Si no especifica las claves, la matriz se rellena en el orden en que aparecen los elementos en el formulario. Nuestro primer ejemplo contendrá las claves 0, 1, 2 y 3.
vea también funciones y Variables de Array de fuentes externas.
¿Cómo obtengo todos los resultados de una etiqueta HTML múltiple seleccionada?
la etiqueta select multiple en una construcción HTML permite a los usuarios seleccionar varios elementos de una lista. Estos elementos se pasan al controlador de acciones para el formulario. El problema es que todos se pasan con el mismo nombre de widget. I. e.,
<select name="var" multiple="yes">
Cada opción seleccionada se llega a la acción de controlador:
var=option1var=option2var=option3
Cada opción de sobrescribir el contenido de la anterior variable $var. La solución es usar la característica «array from form element» de PHP. Los siguientes deben ser utilizados:
<select name="var" multiple="yes">
Esto le indica a PHP para tratar $var como una matriz y cada asignación de un valor a var agrega un elemento a la matriz. El primer elemento se convierte en var var, el siguiente var var, etc., La función count () se puede usar para determinar cuántas opciones se seleccionaron, y la función sort () se puede usar para ordenar la matriz de opciones si es necesario.
tenga en cuenta que si está utilizando JavaScript, el en el nombre del elemento podría causarle problemas cuando intente referirse al elemento por nombre. Use su ID de elemento de formulario numérico en su lugar, o encierre el nombre de la variable entre comillas simples y úselo como índice de la matriz de elementos, por ejemplo:
variable = document.forms.elements'];
¿Cómo puedo pasar una variable de Javascript a PHP?,
dado que Javascript es (por lo general) una tecnología del lado del cliente, y PHP es (por lo general) una tecnología del lado del servidor, y dado que HTTP es un protocolo «sin estado», los dos lenguajes no pueden compartir variables directamente.
sin embargo, es posible pasar variables entre los dos. Una forma de lograr esto es generar código Javascript con PHP, y hacer que el navegador se actualice, pasando variables específicas al script PHP. El siguiente ejemplo muestra exactamente cómo hacer esto allows permite que el código PHP capture la altura y el ancho de la pantalla, algo que normalmente solo es posible en el lado del cliente.,