⊗ppPmRdSWP 407 of 447 menu

Autoredirección con adición de parámetros en PHP

Supongamos que en la página index.php se pasa un parámetro GET con el nombre arg. Mostremos su contenido en pantalla:

<?php echo $_GET['arg']; ?>

Supongamos que nuestra página no puede funcionar correctamente sin el parámetro GET. En nuestro caso esto es cierto, ya que, si el parámetro no se pasa, el acceso a $_GET['arg'] provocará un error.

Puede surgir la pregunta, ¿por qué alguien accedería a nuestra página sin el parámetro? Después de todo, podemos poner enlaces en todo nuestro sitio con este parámetro. Sin embargo, esto no es una garantía: el usuario de nuestro sitio podría, por ejemplo, copiar un enlace desde algún lugar y perder en el proceso el parámetro. O simplemente eliminarlo accidentalmente al editar la barra de direcciones.

En general, en cualquier caso, nuestro código debe prever esta situación y hacer algo al respecto. ¿Qué se puede hacer?

Podemos verificar la existencia de nuestro parámetro GET y mostrarlo solo si existe:

<?php if (isset($_GET['arg'])) { echo $_GET['arg']; } else { // reaccionamos de alguna manera, por ejemplo, con un mensaje } ?>

Podemos actuar de manera más astuta:

<?php if (!isset($_GET['arg'])) { $_GET['arg'] = 'default'; // valor por defecto } echo $_GET['arg']; // garantizado que mostrará algo sin error ?>

O podemos hacer que al acceder a la página sin parámetro ocurra una redirección a la misma página con el parámetro:

<?php if (!isset($_GET['arg'])) { header('Location: ?arg=default'); } echo $_GET['arg']; // el parámetro está garantizado ?>

Explica en qué se diferencia la segunda variante de la tercera.

Supongamos que en la página page.php se puede pasar un número mediante un parámetro GET con el nombre num. Haz que al acceder sin este parámetro, se ejecute automáticamente una redirección a esta misma página, pero con el parámetro num con el valor 1.

Español
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Usamos cookies para el funcionamiento del sitio, análisis y personalización. El procesamiento de datos se realiza de acuerdo con la Política de privacidad.
aceptar todas configurar rechazar