Archivo de 1 Abril 2008

Bueno pues vamos a ver como podemos saber con PHP, si una URL existe o no.

Con la función fsockopen, para información mas detallada pulsa aquí, permite iniciar una conexión socket (concepto por el cual dos programas se intercambian información).

El primer parámetro es la dirección URL, el segundo el puerto, los dos siguientes son para errores estándares de PHP y finalmente el último, es el tiempo de vida máximo que se le dará a cada conexión.

Este seria un ejemplo sencillo de uso:

<?php
if(!(@fsockopen(”www.redimensiona.com”, 80, $errnum, $errtxt, 20)))
{
echo “La url www.redimensiona.com no funciona<br />”;
}else{

echo “La url www.redimensiona.com funciona correctamente<br />”;

}

?>

Ahora a probarlo :D

Tags: , , , ,

Comments No Hay Comentarios »

Si después de todo lo comentado aún no entiendes para que sirven las sesiones, veamos un ejemplo práctico. Imagina que quisieras crear un sistema de cesta de la compra, en su forma básica podría ser algo así:

<?php
session_start();
session_register(’itemsEnCesta’);
$item=$_POST[’item’];
$cantidad=$_POST[’cantidad’];
$itemsEnCesta=$_SESSION[’itemsEnCesta’];

if ($item){
if (!isset($itemsEnCesta)){
$itemsEnCesta[$item]=$cantidad;
}else{
foreach($itemsEnCesta as $k => $v){
if ($item==$k){
$itemsEnCesta[$k] =$cantidad;
$encontrado=1;
}
}
if (!$encontrado) $itemsEnCesta[$item]=$cantidad;
}
}
$_SESSION[’itemsEnCesta’]=$itemsEnCesta;
?>

<html>
<body>
<tt>
<form action=”<?=$PHP_SELF.”?”.$SID?>” method=”post”>
Dime el producto <input type=”text” name=”item” size=”20″><br>
Cuantas unidades <input type=”text” name=”cantidad” size=”20″><br>
<input type=”submit” value=”Añadir a la cesta”><br>
</form>

<?
if (isset($itemsEnCesta)){
echo’El contenido de la cesta de la compra es:<br>’;
foreach($itemsEnCesta as $k => $v){
echo ‘Artículo: ‘.$k.’ ud: ‘.$v.’<br>’;
}
}
?>
</tt>
</body>
</html>

Una breve explicación. En la línea 4 comprobamos si el usuario ha pasado algún artículo, desde el formulario. En la 5 si el array itemsEnCesta no existe, lo creamos con el nuevo producto y la cantidad indicada. Si el array existe recorremos su contenido, entre las líneas 8 y 13, y si encontramos un artículo igual, añadimos la cantidad en la línea 10. Si no lo encontramos, es un nuevo artículo, por lo tanto, añadimos el nuevo producto con la correspondiente cantidad a itemsEnCesta en la línea 14.

Y a continuación imprimimos el formulario y los resultados, si los hubiera, a partir de la línea 18, donde empieza el HTML.

¿Te imaginas las posibilidades de un sistema de almacenamiento de información de estas características?. No necesitas ficheros, ni bases de datos, ni tienes que andar pasando valores de una página a otra. PHP va gestionando estos datos por nosotros, hasta el momento en que decidamos almacenar la información donde más nos interese.

Tags: , ,

Comments No Hay Comentarios »

Uno de los errores más comunes cuando se utilizan sesiones es dejar líneas en blanco antes de la inicialización de PHP o enviar alguna salida a la pantalla. Para probarlo crea una línea en blanco o con cualquier cosa antes de <?php.

Si tienes los cookies activados, te encontrarás un error de este tipo:

Warning: Cannot send session cookie - headers already sent by (output started at /home/session.php:2) in /home/session.php on line 4

PHP está informando de que no puede activar los cookies en el navegador del usuario, porque las cabeceras ya han sido enviadas. Simplemente por la existencia de una línea en blanco. Como medida práctica, no dejes espacios ni antes del inicio del script, ni después de la finalización. Te ahorrará muchos disgustos.

Si después de todo lo comentado aún no entiendes para que sirven las sesiones, veamos un ejemplo práctico. Imagina que quisieras crear un sistema de cesta de la compra…

Tags: , ,

Comments No Hay Comentarios »