Alguien me explica que hace este php?

Hola, estoy dando php, y no entiendo que hace esta parte de código, a ver si alguien me echa un cable, gracias

<?php
if (!isset($_REQUEST['enviar'])) {
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">
<p>Radi: <input type="text" name="radi" /></p>
<p><input type="submit" name="enviar" value="Enviar"/></p>
</form>
<?php
} else {
$r=$_REQUEST['radi'];
define ('PI', 3.1415927);
$a= round(PI*$r*$r, 2);
echo "L'àrea de la circumferència de radi $r cm. és: $a cm<sup>2</sup>";
}
?>
usa el tag code cuando pegues código para hacerlo mas legible.

La verdad es que no se que dudas, sin tener ni idea de php el código parece muy claro.

Si haces una petición get (mm.. cargas la página) muestra un formulario para introducir un radio, si le das a enviar haŕas un post sobre la página, por lo que coge el radio del formulario, el cual es enviado en el request y calcula el area, pi*r^2 redondeado con dos decimales.


Una sugerencia, sino entiendes algo tan básico, te falta mucho por aprender, primero aprende estructuras de control y aprende a usarlas, luego ya aprende un poco de html, formularios, un poco de https (get, post, put, delete..)

pd: Puedes usar el mismo hilo para todas tus dudas php
nu_kru escribió:usa el tag code cuando pegues código para hacerlo mas legible.

La verdad es que no se que dudas, sin tener ni idea de php el código parece muy claro.

Si haces una petición get (mm.. cargas la página) muestra un formulario para introducir un radio, si le das a enviar haŕas un post sobre la página, por lo que coge el radio del formulario, el cual es enviado en el request y calcula el area, pi*r^2 redondeado con dos decimales.


Una sugerencia, sino entiendes algo tan básico, te falta mucho por aprender, primero aprende estructuras de control y aprende a usarlas, luego ya aprende un poco de html, formularios, un poco de https (get, post, put, delete..)

pd: Puedes usar el mismo hilo para todas tus dudas php



Hola, muchas gracias por tu ayuda, y por lo del tag code. No tenia claro para que servía parte del código, pero ya lo tengo más claro, estos son los únicos que tengo la duda de la utilidad, muchas gracias por tu ayuda [oki] [oki]

<?php
if (!isset($_REQUEST['enviar'])) { -->este es el que no tengo claro
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get"> -->muestra el .php que estamos utilizando actualmente con el contenido que hemos enviado

$r=$_REQUEST['radi']; -->nos redirige a nuestra pagina .php con el valor de radi que le hayamos puesto
<?php
if (!isset($_REQUEST['enviar'])) { -->este es el que no tengo claro
?>


Ahí comprueba si se ha enviado algún dato llamado «enviar». Si NO existe (de ahí el ! ) muestras el formulario, de lo contrario, calculas y muestras el area.


$r=$_REQUEST['radi']; -->nos redirige a nuestra pagina .php con el valor de radi que le hayamos puesto


No dirige a ningún lado, simplemente obtiene ese valor, hace el cálculo y lo muestra.
elchicosinhada escribió:
<?php
if (!isset($_REQUEST['enviar'])) { -->este es el que no tengo claro
?>


Ahí comprueba si se ha enviado algún dato llamado «enviar». Si NO existe (de ahí el ! ) muestras el formulario, de lo contrario, calculas y muestras el area.


$r=$_REQUEST['radi']; -->nos redirige a nuestra pagina .php con el valor de radi que le hayamos puesto


No dirige a ningún lado, simplemente obtiene ese valor, hace el cálculo y lo muestra.


Hola, muchas gracias, ahora ya lo tengo claro [oki] [oki]

Y en esta parte yo tengo entendido que significa esto:¿Es así?
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">--> devuelve la ruta absoluta al script php en ejecución, osea en el caso del uso de esa variable en un formulario te asegura que, tenga el nombre que tenga ese formulario, al hacerle un submit los datos se postéen a sí mismo con el método get
paco_cs escribió:Y en esta parte yo tengo entendido que significa esto:¿Es así?
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">--> devuelve la ruta absoluta al script php en ejecución, osea en el caso del uso de esa variable en un formulario te asegura que, tenga el nombre que tenga ese formulario, al hacerle un submit los datos se postéen a sí mismo con el método get


Si estás empezando con PHP es conveniente que te pases por la documentación y aprender a consultar las cosas ahí. Cada vez tus dudas serán más concretas y tendrás que buscarte tú las pelotas y para ello necesitarás la documentación y el inglés, porque la gran mayoría de información está SOLO en inglés. Piénsalo de esta forma. Si quieres ser programador, uno de los lenguajes que debes obligatoriamente es el inglés.

The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/foo/bar.php would be /foo/bar.php. The __FILE__ constant contains the full path and filename of the current (i.e. included) file. If PHP is running as a command-line processor this variable contains the script name since PHP 4.3.0. Previously it was not available.


Te dice básicamente que si la URL del script es http://example.com/foo/bar.php te devolvería /foo/bar.php.

De todas formas, es un poco redundante poner eso en el action. Si no pones nada se enviará a la misma dirección en la que estás.
Alecs7k escribió:De todas formas, es un poco redundante poner eso en el action. Si no pones nada se enviará a la misma dirección en la que estás.


Eso viene heredado de otros tiempos donde cada navegador hacía lo que le daba la gana. Lo normal era volver a la misma dirección, pero algunos te añadían los parámetros GET y otros no y se podía liar parda.
Alecs7k escribió:
paco_cs escribió:Y en esta parte yo tengo entendido que significa esto:¿Es así?
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="get">--> devuelve la ruta absoluta al script php en ejecución, osea en el caso del uso de esa variable en un formulario te asegura que, tenga el nombre que tenga ese formulario, al hacerle un submit los datos se postéen a sí mismo con el método get


Si estás empezando con PHP es conveniente que te pases por la documentación y aprender a consultar las cosas ahí. Cada vez tus dudas serán más concretas y tendrás que buscarte tú las pelotas y para ello necesitarás la documentación y el inglés, porque la gran mayoría de información está SOLO en inglés. Piénsalo de esta forma. Si quieres ser programador, uno de los lenguajes que debes obligatoriamente es el inglés.

The filename of the currently executing script, relative to the document root. For instance, $_SERVER['PHP_SELF'] in a script at the address http://example.com/foo/bar.php would be /foo/bar.php. The __FILE__ constant contains the full path and filename of the current (i.e. included) file. If PHP is running as a command-line processor this variable contains the script name since PHP 4.3.0. Previously it was not available.


Te dice básicamente que si la URL del script es http://example.com/foo/bar.php te devolvería /foo/bar.php.

De todas formas, es un poco redundante poner eso en el action. Si no pones nada se enviará a la misma dirección en la que estás.


Lo primero, muchas gracias por resolverme la duda [oki] . Era un ejercicio que tenía que entregar de cara a un exámen, y estoy estudiando a la vez que van saliendo los ejercicios, pero tenía esa duda, lo que pasa esque hay mucho temario, gracias de nuevo [oki] [oki]
7 respuestas