Diferencia entre revisiones de «Usuario:ManuelRomero/NewPHP/B2T1/formularios/ejercicios»

De WikiEducator
Saltar a: navegación, buscar
Línea 11: Línea 11:
 
*Con lo que hemos visto hasta ahora (sin usar cookies, ni sesiones, ni ficheros)
 
*Con lo que hemos visto hasta ahora (sin usar cookies, ni sesiones, ni ficheros)
 
Haz un programa que cuente cuantos accesos hacemos a una página en una misma conexión}}
 
Haz un programa que cuente cuantos accesos hacemos a una página en una misma conexión}}
 
+
<font size=4 color=red>[[Usuario:ManuelRomero/NewPHP/formularios/Ejercicios/Ejercicio1 | Solución]]</font>
*Usa campos ocultos para pasar información
+
<hr />
====Planteando una posible solución ====
+
La idea es la siguiente
+
*Cada vez que yo cargo una página php, el servido la ejecuta como si fuera la primera vez que la solicito.
+
*No hay memoria entre una llamada y otra.
+
*Las solicitudes al servidor son solicitudes usando el protocolo http.
+
*Este hecho deja patente y clara la idea de que '''''http''''' es un protocolo sin estado.
+
*En el ejemplo vemos como cada acceso es como si fuera el primero. Cada vez que se ejecuta el script en el servidor es como se se ejecuta la primera vez
+
[[Archivo:EjerccioAcceso1.png]]
+
*El siguiente código no tiene sentido
+
<source lang=php>
+
....
+
$acceso ++
+
...
+
echo "Actualmente llevamos $acceso accesos";
+
</source>
+
*Cada vez que se ejecute $accesos valdrá 0.
+
SOLUCION
+
*Debemos mantener un histórico de cada acceso
+
*El servidor lee la información que le envía el cliente de los input de su formulario
+
*Debemos ir poniendo en un campo oculto esa información y que el servidor
+
#Lea ese valor (los accesos que lleva, al principo valdrá 0)
+
#La incremente en una unidad
+
#La vuelva a enviar al cliente, y así el cliente la próxima vez se la envía al servidor (Un efecto de pelota contra la pared)
+
[[Archivo:EjerccioAcceso2.png]]
+
====Un posible código====
+
;Código
+
<source lang=php>
+
<!DOCTYPE html>
+
<html>
+
    <head>
+
        <meta charset="ISO-8859-1">
+
        <title></title>
+
    </head>
+
    <body>
+
        <?php
+
 
+
        //Esta parte del código solo quiero que se ejecute
+
        //Si se ha cargado el formulario
+
        if ( isset($_POST['enviar'] ) ) {
+
            $accesos = $_POST[ 'accesos' ];
+
        }else
+
            $accesos=0;
+
        //Visualizo los accesos si los hay
+
        echo "Accesos : $accesos";
+
        $accesos ++;
+
 
+
        ?>
+
        <form action="." method=POST>
+
            <input type="submit" value="Acceder al sitio web" name="enviar" />
+
            <input type="hidden" value="<?php echo $accesos ?>" name="accesos" />
+
        </form>
+
    </body>
+
</html>
+
</source>
+

Revisión de 17:25 3 nov 2016






Contador de accesos



Icon activity.jpg

Actividad

  • Con lo que hemos visto hasta ahora (sin usar cookies, ni sesiones, ni ficheros)

Haz un programa que cuente cuantos accesos hacemos a una página en una misma conexión



Solución