Ver Mensaje Individual
  #1 (permalink)  
Antiguo 16/04/2009, 14:48
KLAYMAN
 
Fecha de Ingreso: febrero-2002
Mensajes: 351
Antigüedad: 23 años, 1 mes
Puntos: 19
No me funciona :(

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.