Variables globales en PHP- PHPnovato - 23 de diciembre de 2003

Kiev
27 de Diciembre del 2003
Leí la respuesta anterior, pero no supe hacerlo,
si pudiese corregir mi form.. ( ;:


<html>
<form method="post" action="caralanza.php">
<input type="submit" name="blanza" value="Comprar -10 lanzas"><br>
<?
if (isset($_REQUEST["blanza"])) $lanza=$lanza+10;echo "Tienes " . $lanza . " lanzas <br>";
?>
</form>
</html>

//con eso del isset pretendo decir "al apretar el botón blanza....." Aunque no estoy seguro si esté bien. (esa es otra duda)

Lo que quiero es que al apretar el botón vaya incrementándosele 10 al "tienes x lanzas".
Pero lo que hace es siempre dejar en cero la variable.
Muchas Gracias.

Pachi
27 de Diciembre del 2003
Inicialmente, dado que blanza no tiene valor alguno (ten en cuenta que el php se interpreta antes que el HTML) te sale como resultado 0, dado que no se le suma valor alguno a $lanza. Cuando le pulsas al botón una vez sale un valor de 10 siempre. Esto se debe a que no guardas el valor de $lanza entre una y otra ejecución del script. Si pones algo así como...

<input type="hidden" name=lanza value="<? echo $lanza; ?>" >

antes del submit se te guarda el valor entre ejecuciones en un elemento oculto de formulario y
se incrementará el valor de lanza cada vez que ejecutes el script.

Un saludo.

Pachi
27 de Diciembre del 2003
Se me pasaba que el incremento de lanza lo debes hacer antes la etiqueta que te puse en el mensaje anterior.

Ya ta!!!