Mostrar los ficheros de un directorio
$ruta = "./directorio";
$dir = opendir($ruta);
while (($file = readdir($dir))) {
if (!is_dir("$file")) {
echo "$file\n";
}
}
Usar variables de sesión
Para poder usar variables de sesión lo primero que tenemos que hacer es iniciar la sesión:
session_start();
El uso de las variables de sesión depende de la configuración de register_globals en el php.ini. Es aconsejable que tenga el valor "off".
Cuando register_globals=off, para registrar una variable de sesión tenemos que poner:
$_SESSION['variable_ de_sesion'] = valor;
Si queremos saber si una variable de sesión está registrada simplemente los preguntamos por los cauces habituales:
if (isset($_SESSION['variable_ de_sesion']))
{
echo "Variable registrada";
}
else
{
echo "Variable NO registrada";
}
Cuando register_globals = on entonces las cosas son ligeramente diferentes:
Para registrar una variable en la sesion tienen que hacer
$variable_de_sesion = "valor";
session_register("variable_de_sesion");
Para comprobar si la variable está registrada en la sesion podemos ejecutar
if (session_is_registered("variable_de_sesion"))
{
echo "Variable NO registrada";
}
else
{
echo "Variable NO registrada";
}
A continuación vemos un ejemplo:
<?php
session_start();
if (!isset($_SESSION[sesion]))
$_SESSION[sesion]=0;
echo '<head>
<title>'.$_SERVER[PHP_SELF].'</title>
</head>
<html>
<body>';
echo "Sesion :$_SESSION[sesion]";
$_SESSION[sesion]=$_SESSION[sesion]+1;
echo "<p>";
echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a>";
echo '</body>
</html>';
?>
Eliminar una cookie
Para eliminar una cookie simplemente podemos fijarla con una fecha de caducidad ya pasada. En el siguiente ejemplo observamos como podemos crear o eliminar una cookie:
<?php
if($_GET[fijar_cookie]==1)
setcookie("prueba","activa",time()+3600);
if($_GET[fijar_cookie]==0)
setcookie("prueba","",0);
echo '<head>
<title>'.$_SERVER[PHP_SELF].'</title>
</head>
<html>
<body>';
if (isset($_COOKIE[prueba]))
{
echo "Cookie activa con valor $_COOKIE[prueba]<br>";
}
else
{
echo "Cookie NO activa $_COOKIE[prueba] <br>";
}
echo "<a href=$_SERVER[PHP_SELF]?fijar_cookie=1>Fijar Cookie</a><br>";
echo "<a href=$_SERVER[PHP_SELF]?fijar_cookie=0>Eliminar Cookie</a><br>";
echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a><br>";
echo '</body>
</html>';
?>
Comprobar si el cliente admite cookies
En el siguiente ejemplo comprobamos si el cliente admite cookies: Si la cookie no está activa y se carga la página por primera vez entonces intentamos crear la cookie y recargamos la página para que la cookie esté activa. Una vez hecha la recarga podemos comprobar si efectivamente la operación ha tenido o no éxito.
<?php
if (! isset($_COOKIE[prueba]) && ! isset($_GET[verifica]))
{
setcookie("prueba","activa",time()+3600);
header("Location:$_SERVER[PHP_SELF]?verifica=1");
}
echo '<head>
<title>'.$_SERVER[PHP_SELF].'</title>
</head>
<html>
<body>';
if (isset($_COOKIE[prueba]))
{
echo "El cliente admite cookies: $_COOKIE[prueba]<br>";
}
else
{
echo "El cliente NO admite cookies <br>";
}
echo "<a href=$_SERVER[PHP_SELF]>Recargar la Página</a><br>";
echo '</body>
</html>';
?>
Evitar accesos que no provengan de enlaces de la propia web
Hay páginas en las que se pretende que todos los visitantes pasen por la página principal y no admitan que se enlacen páginas interiores desde web externas. Hay que resaltar que esta política impide el correcto funcionamiento de los buscadores.
Esto se podría resolver poniedo al principio de cada página un código similar al siguiente:
$sitio=$_SERVER[SERVER_NAME]";
if (!ereg($sitio,$_SERVER['HTTP_REFERER']){
header ("Location: /");
exit;
}