<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/tutorial.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'tutorial.forms.php',
    1 => 'Utilizar un formulario',
    2 => 'Utilizar un formulario',
  ),
  'up' => 
  array (
    0 => 'tutorial.php',
    1 => 'Una introducci&oacute;n a PHP',
  ),
  'prev' => 
  array (
    0 => 'tutorial.useful.php',
    1 => 'Trucos pr&aacute;cticos',
  ),
  'next' => 
  array (
    0 => 'tutorial.whatsnext.php',
    1 => '&iquest;Y despu&eacute;s?',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'chapters/tutorial.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="tutorial.forms" class="section">
   <div class="info"><h1 class="title">Utilizar un formulario</h1></div>
   <p class="para">
    Uno de los puntos fuertes de PHP es su capacidad para manejar formularios.
    El concepto básico que es importante entender es que todos los
    campos de un formulario estarán automáticamente disponibles en el
    script PHP de acción. Lea el capítulo del manual relativo a las
    <a href="language.variables.external.php" class="link">variables desde fuentes externas a PHP</a>
    para más información y ejemplos sobre cómo utilizar los
    formularios. Aquí hay un ejemplo de formulario HTML :
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <div class="info"><p><strong>Ejemplo #1 Un formulario HTML simple</strong></p></div>
     <div class="example-contents">
<div class="htmlcode"><pre class="htmlcode">&lt;form action=&quot;action.php&quot; method=&quot;post&quot;&gt;
   &lt;label&gt;Su nombre :&lt;/label&gt;
   &lt;input name=&quot;nombre&quot; id=&quot;nombre&quot; type=&quot;text&quot; /&gt;

   &lt;label&gt;Su edad :&lt;/label&gt;
   &lt;input name=&quot;edad&quot; id=&quot;edad&quot; type=&quot;number&quot; /&gt;&lt;/p&gt;

   &lt;button type=&quot;submit&quot;&gt;Validar&lt;/button&gt;
&lt;/form&gt;</pre>
</div>
     </div>

    </div>
   </p>
   <p class="para">
    No hay nada especial en este formulario. Está en HTML
    puro, sin ninguna configuración especial. Cuando el visitante
    rellena el formulario, y hace clic en el botón OK, se llama al fichero <var class="filename">action.php</var>. En este
    fichero, se puede escribir el siguiente script :
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <div class="info"><p><strong>Ejemplo #2 Mostrar datos de un formulario</strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">Hola, <span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo </span><span style="color: #0000BB">htmlspecialchars</span><span style="color: #007700">(</span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'nombre'</span><span style="color: #007700">]); </span><span style="color: #0000BB">?&gt;</span>.<br />Tienes <span style="color: #0000BB">&lt;?php </span><span style="color: #007700">echo (int) </span><span style="color: #0000BB">$_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'edad'</span><span style="color: #007700">]; </span><span style="color: #0000BB">?&gt;</span> años.</span></code></div>
     </div>

     <div class="example-contents"><p>
      Aquí está el resultado que podría obtener, según
      los valores que haya introducido :
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Hola Juan.
Tienes 29 años.
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Aparte de las partes <span class="function"><a href="function.htmlspecialchars.php" class="function">htmlspecialchars()</a></span> y
    <code class="literal">(int)</code>, este script solo hace cosas evidentes.
    <span class="function"><a href="function.htmlspecialchars.php" class="function">htmlspecialchars()</a></span> se asegura de que todos los caracteres
    especiales HTML se codifiquen correctamente para evitar inyecciones
    de etiquetas HTML y de Javascript en sus páginas. Para la edad, dado que
    sabemos que es un entero, se puede
    <a href="language.types.type-juggling.php#language.types.typecasting" class="link">convertir</a> en un
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span>. También se puede pedir a PHP que lo haga
    automáticamente por usted utilizando la extensión
    <a href="ref.filter.php" class="link">filter</a>.
    Las variables <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST['nombre']</a></var> y
    <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST['edad']</a></var> son creadas automáticamente por PHP.
    Un poco antes en este tutorial, hemos utilizado la variable
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var>, una superglobal. Ahora, hemos introducido otra superglobal <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST</a></var>
    que contiene todos los datos enviados por el método POST. Tenga en cuenta que
    en nuestro formulario, hemos elegido el <em>método</em> POST.
    Si hubiéramos utilizado el <em>método</em> GET entonces nuestro formulario
    habría colocado esta información en la variable <var class="varname"><a href="reserved.variables.get.php" class="classname">$_GET</a></var>,
    otra superglobal. También se puede utilizar la variable
    <var class="varname"><a href="reserved.variables.request.php" class="classname">$_REQUEST</a></var>, si no desea preocuparse por el método utilizado. Contiene
    una mezcla de los datos de GET, POST, COOKIE y FILE.
   </p>
  </div><?php manual_footer($setup); ?>