Variables externas a PHP

Formularios HTML (GET y POST)

Cuando se envía un formulario a un script PHP, las variables de dicho formulario pasan a estar automáticamente disponibles en el script gracias a PHP. Por ejemplo, consideremos el siguiente formulario:

Ejemplo 12-1. Variables de formulario simples
<form action="foo.php" method="POST">
    Name:  <input type="text" name="username"><br>
    Email: <input type="text" name="email"><br>
    <input type="submit" name="submit" value="Submit me!">
</form>

Dependiendo de tu configuración y preferencias personales, existen muchas maneras de acceder a los datos de tus formularios HTML. Algunos ejemplos:

Ejemplo 12-2. Accediendo datos de un formulario simple HTML POST
<?php 
// Available since PHP 4.1.0

   print $_POST['username'];
   print $_REQUEST['username'];

   import_request_variables('p', 'p_');
   print $p_username;

// Available since PHP 3.  As of PHP 5.0.0, these long predefined
// variables can be disabled with the register_long_arrays directive.

   print $HTTP_POST_VARS['username'];

// Available if the PHP directive register_globals = on.  As of 
// PHP 4.2.0 the default value of register_globals = off.
// Using/relying on this method is not preferred.

   print $username;
?>

Usando un formulario GET es similar excepto en el uso de variables predefinidas, que en este caso serán del tipo GET. GET también se usa con QUERY_STRING (la información despues del símbolo '?' en una URL). Por ejemplohttp://www.example.com/test.php?id=3 contiene datos GET que son accesibles con $_GET['id']. Vea también $_REQUEST y import_request_variables().
Nota: Matrices superglobales, como $_POST y$_GET, están disponibles desde PHP 4.1.0.
Como hemos dicho, antes de PHP 4.2.0, el valor por defecto de register_globals era on (activado). Y, en PHP 3 estba siempre activado. La comunidad PHP anima a no confiar en esta directiva ya que es preferible asumir que tiene el valor off (desactivada) y programar teniendo en cuenta esto.
Nota: La directiva de configuración magic_quotes_gpc afecta a valores Get, Post y Cookie, Si esta activada (on) el valor (It's "PHP!") sera convertido automaticamente a (It\'s \"PHP!\"). "Escaping" es necesario en inserciones a bases de datos. Vea también addslashes()stripslashes() y magic_quotes_sybase.
PHP tambien entiende matrices en el contexto de variables de formularios. (vea la faq relacionada). Se puede, por ejemplo, agrupar juntas variables relacionadas ó usar esta característica para obtener valores de una entrada "select2 múltiple. Por ejemplo, vamos a mandar un formulario asi mismo y a presentar los datos cuando se reciban:

Ejemplo 12-3. Variables de formulario más complejas
<?phpif ($HTTP_POST_VARS['action'] == 'submitted') {
    print 
'<pre>';

    
print_r($HTTP_POST_VARS);
    print 
'<a href="'$HTTP_SERVER_VARS['PHP_SELF'] .'">Please try again</a>';

    print 
'</pre>';
} else {
?><form action="<?php echo $HTTP_SERVER_VARS['PHP_SELF']; ?>" method="POST">
    Name:  <input type="text" name="personal[name]"><br>
    Email: <input type="text" name="personal[email]"><br>
    Beer: <br>
    <select multiple name="beer[]">
        <option value="warthog">Warthog</option>
        <option value="guinness">Guinness</option>
        <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
    </select><br>
    <input type="hidden" name="action" value="submitted">
    <input type="submit" name="submit" value="submit me!">
</form>
<?php}?>

en PHP 3, el uso de matrices de variables de formularios está limitado a matrices unidimensionales. En PHP 4, no existe esta restricción.

IMAGE SUBMIT variable names

Cuando mandamos un formulario, es posible usar una imagen en vez del botón estandar de "mandar":


<input type="image" src="image.gif" name="sub">

Cuando el usuario hace click en cualquier parte de la imagen, el formulario que la acompaña se transmitirá al servidor con dos variables adicionales, sub_x y sub_y. Estas contienen las coordenadas del click del usuario dentro de la imagen. Los más experimentados puede notar que los nombres de variable enviados por el navegador contienen un guión en vez de un subrayado (guión bajo), pero PHP convierte el guión en subrayado automáticamente.

No response to “Variables externas a PHP”