Hola:
Estoy leyendome un libro sobre la iniciación de PHP 5 con objetos. El problema es que hay un código para crear un libro de visitas que no funciona.
Código:
<?php
class libro_visitas
{
private $tamano;
private $nombre;
private $descriptor;
private $contenido;
function construct($nombre)
{
$this->nombre = $nombre;
}
public function leer_libro()
{
$this->descriptor = fopen ($this->nombre,"a+");
$this->tamano=filesize($this->nombre);
if ($this->tamano > 0) {
$this->contenido = fread($this->descriptor, $this->tamano);
}
fclose($this->descriptor);
return $this->contenido;
}
public function escribir_libro ($nombre, $texto)
{
$this->descriptor = fopen ($this->nombre,"a+");
$nombre = "<tr><td bgcolor=\"#CCCCCC\">$nombre</td></tr>";
$texto = "<tr><td bgcolor=\"#FFFFFF\">$texto</td></tr>";
fwrite($this->descriptor,$nombre);
fwrite($this->descriptor,$texto);
fclose($this->descriptor);
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loóse.dtd">
<html>
<head>
<title>Libro de visitas</title>
<meta http-eguiv="Content-Type" content="text/html; charset=iso-8859-l">
</head>
<body>
<p align="center"><strong>Libro de visitas</strong></p>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<?php
if (isset ($_POST["nombre" ] ) || isset($_POST["texto"])) {
$libro = new libro_visitas("libro.txt");
$libro->escribir_libro($_POST["nombre"],$_POST["texto"]);
}
$libro_ver = new libro_visitas("libro.txt");
echo $libro_ver->leer_libro();
?>
</table>
<form action="libro.php" method="POST">
Nombre:
<input name="nombre" type="text" id="nombre">
</p>
<p>Texto:
Ficheros y almacenamiento de datos:
<textarea name="texto" id="texto"></textarea>
</p>
<p>
<input type="submit" name="Submit" value="Enviar" >
</p>
</form>
</body>
</html>
Los errores que me dan son:
Warning: fclose(): supplied argument is not a valid stream resource in C:\wamp\www\curso_php\libro.php on line 20
Este nada más abrir la página para rellenar el formulario
Y éstos más, cuando lo relleno:
Warning: fwrite(): supplied argument is not a valid stream resource in C:\wamp\www\curso_php\libro.php on line 28
Warning: fwrite(): supplied argument is not a valid stream resource in C:\wamp\www\curso_php\libro.php on line 29
Warning: fclose(): supplied argument is not a valid stream resource in C:\wamp\www\curso_php\libro.php on line 30
Warning: fclose(): supplied argument is not a valid stream resource in C:\wamp\www\curso_php\libro.php on line 20
Por supuesto, no se escribe ningún fichero y el código no parece funcionar. Aclarar que este código enteramente lo tengo en un archivo que se llama
libro.php, ya que el libro no indica si hay que separarlo o va todo junto.
Un saludo y gracias por todo.