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:
Los errores que me dan son:<?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>
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.