Esta página contiene comentarios ampliados con fragmentos de código PHP.
Volver al principio de la página
print "<form action=\"pagina.php">";
print "<form action=\"$_SERVER[PHP_SELF]\">";
Las dos opciones son correctas. La ventaja de la segunda opción es que seguiría funcionando aunque cambiaramos el nombre del fichero php.
creación de la sesión recogida y validacion de datos (sin imprimir nada aunque se detecten errores) destrucción de la sesión (en su caso) cabecera mensajes de error (en su caso) formulario imprimir valroes guardado en $_SESSION pie
En el ejemplo no hay dos botones submit, sólo hay uno (el otro botón del formulario es un botón reset, para borrar los valores del formulario antes de enviarlo), pero hay un enlace que llama a la propia página enviando una acción como si fuera un botón, así que es como si hubiera dos botones.
$numeroDatos = count($_SESSION);
if ($nombreOk && ($nombre!='')) {
$_SESSION['nombre_'.$numeroDatos] = $nombre;
}
En el ejemplo, el botón Añadir tiene el atributo name, pero no es imprescindible, se puede hacer el programa sin ponerle name, ya que si llega el campo nombre sabemos que se ha hecho clic en Añadir.
print "<p>Datos introducidos:</p>\n<ul>\n";
foreach ($_SESSION as $valor) {
print " <li>$valor</li>\n";
}
print "</ul>\n";
print "<p><a href=\"$_SERVER[PHP_SELF]?accion=Cerrar\">Cerrar sesión (se perderán los datos almacenados).</a></p>\n";
Es equivalente poner un formulario con un botón submit con name "accion" y value "Cerrar" que poner un enlace cuyo href sea el mismo al que produciría un formulario (un formulario de method GET, claro).
Volver al principio de la página
Esta página forma parte del curso "Páginas web con PHP" disponible en ttp://www.mclibre.org
Esta obra está bajo una licencia de Creative
Commons Reconocimiento-CompartirIgual 3.0 España.