<?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 => 'Tratar con formularios',
    2 => 'Tratar con formularios',
  ),
  'up' => 
  array (
    0 => 'tutorial.php',
    1 => 'Un tutorial sencillo',
  ),
  'prev' => 
  array (
    0 => 'tutorial.useful.php',
    1 => 'Algo &uacute;til',
  ),
  'next' => 
  array (
    0 => 'tutorial.whatsnext.php',
    1 => '&iquest;Qu&eacute; sigue?',
  ),
  '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">Tratar con formularios</h1></div>
   <p class="para">
    Una de las características más poderosas de PHP es la forma en que maneja
    los formularios HTML. El concepto básico que es importante entender es
    que cualquier elemento de formulario estará automáticamente disponible
    para sus scripts PHP. Por favor, lea la sección del manual sobre
    <a href="language.variables.external.php" class="link">Variables desde fuentes
    externas</a> para obtener más información y ejemplos sobre el uso
    de formularios con PHP. 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 sencillo</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 for=&quot;name&quot;&gt;Su nombre:&lt;/label&gt;
    &lt;input name=&quot;name&quot; id=&quot;name&quot; type=&quot;text&quot;&gt;

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

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

    </div>
   </p>
   <p class="para">
    No hay nada especial en este formulario. Es un formulario HTML directo
    sin ninguna etiqueta especial. Cuando el usuario rellena este formulario
    y pulsa el botón de enviar, se invoca la página <var class="filename">action.php</var>.
    En este fichero escribiría algo como esto:
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <div class="info"><p><strong>Ejemplo #2 Mostrar datos de nuestro 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">'name'</span><span style="color: #007700">]); </span><span style="color: #0000BB">?&gt;</span>.<br />Tiene <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">'age'</span><span style="color: #007700">]; </span><span style="color: #0000BB">?&gt;</span> años.</span></code></div>
     </div>

     <div class="example-contents"><p>
      Una salida de ejemplo de este script podría ser:
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Hola Joe. Tiene 22 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>, debería ser obvio lo que hace esto.
    <span class="function"><a href="function.htmlspecialchars.php" class="function">htmlspecialchars()</a></span> asegura que cualquier carácter que
    sea especial en HTML se codifique correctamente para que la gente no pueda
    inyectar etiquetas HTML o Javascript en su página. Para el campo de edad,
    ya que sabemos que es un número, podemos simplemente
    <a href="language.types.type-juggling.php#language.types.typecasting" class="link">convertirlo</a> a un
    <span class="type"><a href="language.types.integer.php" class="type int">int</a></span> que automáticamente eliminará cualquier carácter
    adicional. También puede hacer que PHP haga esto automáticamente por usted
    usando la <a href="ref.filter.php" class="link">extensión filter</a>.
    Las variables <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST['name']</a></var> y
    <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST['age']</a></var> son establecidas automáticamente por PHP.
    Anteriormente usamos la superglobal <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var>; arriba
    acabamos de introducir la superglobal <var class="varname"><a href="reserved.variables.post.php" class="classname">$_POST</a></var> que
    contiene todos los datos POST. Observe cómo el <em>método</em>
    de nuestro formulario es POST. Si hubiéramos usado el método
    <em>GET</em> entonces nuestra información del formulario viviría
    en la superglobal <var class="varname"><a href="reserved.variables.get.php" class="classname">$_GET</a></var> en su lugar.
    También puede usar la superglobal <var class="varname"><a href="reserved.variables.request.php" class="classname">$_REQUEST</a></var> si no le
    importa la fuente de sus datos de petición. Contiene la información
    combinada de los datos GET, POST y COOKIE.
   </p>
  </div><?php manual_footer($setup); ?>