home Foro de soporte Espacio WEB PHP
 
Yuda con libro de visitas
#1 ·

Ayuda con esto soy novato en esto de php y tengo un problema con un libro de visita que intento colgar en mi sitio web. Si alguien me puede ayudar estaré agradecido

e-mail: joel7031@hotmail.com

Warning: main(libro.inc.php): failed to open stream: No such file or directory in /home/webcindario/tormentadiretori/rdv-rdv/libto-visitas-rdv/firmar-libro.php on line 4

Warning: main(): Failed opening 'libro.inc.php' for inclusion (include_path='.') in /home/webcindario/tormentadiretori/rdv-rdv/libto-visitas-rdv/firmar-libro.php on line 4

Fatal error: Cannot instantiate non-existent class: libro in /home/webcindario/tormentadiretori/rdv-rdv/libto-visitas-rdv/firmar-libro.php on line 7



Estos son lo ficheros:

libro.inc.php


<?php

class Libro {

// este archivo debe estar creado antes de hacer funcionar la aplicación
var $archivo = 'libro.txt';

function abrirArchivo(){

// Verifica la existencia del archivo 'libro.txt'
if(file_exists($this->archivo)){

// Retoma los datos y con return lo devuelve
$c = file_get_contents($this->archivo,'r');
return $c;

} else {

// en caso de que no exista el archivo devuelve false
return false;

}

}


// $n = nombre, $c = correo, $m = mensaje
function guardarLinea($n,$c,$m){

// retomamos el contenido del archivo TXT llamando al método abrirArchivo() evaluado anteriormente
$contenido = $this->abrirArchivo();

// creamos la matriz de los argumentos $n,$c,$m
$args = func_get_args();

// contamos los argumentos, si son 3 seguimos con el programa
if(count($args)==3){

// a prueba de hack, por si desean alterar la división de información
$args = str_replace('#','',$args);
$contenido = $contenido
.$args[0]
."#"
.$args[1]
."#"
.$args[2]
."#"
.$_SERVER['REMOTE_ADDR']
."#"
.date('d-m-Y H:i:s')
."\n";

// abrimos el archivo y agregamos contenido
$archivo = fopen($this->archivo,'w');
$checar = (fputs($archivo,$contenido)) ? 1 : 0;
fclose($archivo);

return $checar;



} else {
exit('No se encontraron datos!');
}
}

// para visualizar los datos, devuelve una matriz
function abrirLibro() {

// retomamos de nuevo el contenido mediante método abrirArchivo()
$contenido = $this->abrirArchivo();

if($contenido){

// dividimos en lineas
$matriz = explode("\n",$contenido);
$info = array();

// asignamos a la matriz $info los datos de cada linea al dividir con #
foreach($matriz as $linea){

$info[] = explode("#",$linea);

}

return $info;

} else {

return false;

}


}
}
?>




firmar-libro.php


<?

// incluye la class
include_once 'libro.inc.php';

// creamos una nueva instancia
$libro = new Libro();

// verifica que existan los datos y de que se encuentren en buenas condiciones
if($_POST["firmar"]){

$nombre = $_POST["nombre"];
$correo = $_POST["correo"];
$mensaje = $_POST["mensaje"];

$errores = array();
if(empty($nombre)) $errores[] = 'NO AGREGASTE UN NOMBRE';
if(!ereg("^[^@]+@([a-zA-Z0-9\-]+\.)+[a-zA-Z0-9]{2,}$", $correo)) $errores[] = 'NO AGREGASTE UN CORREO O SU SINTAXIS ES ERRONEA';
if(empty($mensaje)) $errores[] = 'NO AGREGASTE UN MENSAJE';

if($errores){

foreach($errores as $error){ echo $error."<br/>\n"; }


} else {

// si toda la información es correcta, agregamos la información al archivo TXT con el método guardarLinea()
if($libro->guardarLinea($nombre,$correo,$mensaje))
echo 'TU FIRMA HA SIDO AGREGADA CORRECTAMENTE, ENHORABUENA!';


}



}

?>
<form action="" method="post">
<table>
<tr>
<td colspan="2"><h1>Mi libro de visitas</h1></td>
</tr>
<tr>
<td>Nombre: </td>
<td><input name="nombre" type="text" id="nombre"></td>
</tr>
<tr>
<td>Correo electr&oacute;nico: </td>
<td><input name="correo" type="text" id="correo"></td>
</tr>
<tr>
<td valign="top">Mensaje: </td>
<td><textarea name="mensaje" id="mensaje"></textarea></td>
</tr>
<tr>
<td></td>
<td><input name="firmar" type="submit" id="firmar" value="Firmar"></td>
</tr>
</table>
</form>
<hr/>
<?

// con lo siguiente mostramos las firmas con el método abrirLibro(); y la matriz que nos devuelve.

$contenido = $libro->abrirLibro();

if($contenido) {

foreach($contenido as $linea){
if(!in_array('',$linea)) {

list($nombre,$correo,$mensaje,$identidad,$fecha) = $linea;

echo "<strong>".htmlentities($nombre)."</strong> (".$identidad.&quotGiño<br/>n"
.'<a href="mailto:'.$correo.'">'.$correo."</a><br/>n"
.htmlentities($mensaje)."<br/>n"
.$fecha."<br/><br/>nn";

}

}

} else {

echo 'No se encontraron firmas';

}
?>


Usuario habitual
Usuario habitual
Haz clic para ver el perfil del usuario
Mensajes: 15
Desde: 22/Jun/2005
·
#2 ·
Escrito originalmente por latormenta

Warning: main(libro.inc.php): failed to open stream: No such file or directory in /home/webcindario/tormentadiretori/rdv-rdv/libto-visitas-rdv/firmar-libro.php on line 4





En este error (ya se veran el resto) te esta diciendo que no has subido el archivo libro.inc.php... así que ya sabes.


Por cierto, foro publico, respuesta publica.

@man / @woman
@man / @woman
Haz clic para ver el perfil del usuario
Mensajes: 30.301
Desde: 01/Mar/2003
· ·
#3 ·

O que ha puesto mal el link


Machacateclados
Machacateclados
Haz clic para ver el perfil del usuario
Mensajes: 195
Desde: 18/Ene/2006
· ·
ATENCIÓN: Este tema no tiene actividad desde hace más de 6 MESES,
te recomendamos abrir un nuevo tema en lugar de responder al actual
Foro de soporte · Espacio WEB · PHP
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  
TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Ahora son las 19:17 UTC+01:00
Temas similares
 I FotoPTemaMensajesÚltima respuesta
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
libro de visitas y comentarios
Por: · 13/May/2009, 02:44
113/May/2009, 17:18
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario
Libro de Visitas
Por: · 04/Sep/2005, 22:12
204/Sep/2005, 22:35
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario328/Feb/2009, 17:28
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario328/Feb/2009, 13:28
 Ir al último mensaje del tema
No Hay mensajes nuevosHaz clic para ver el perfil del usuario102/Ago/2005, 02:28
 Ir al último mensaje del tema
Recomendado