latormenta
Usuario habitual
Usuario habitual

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: [email protected]

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';

}
?>

Avatar Image
@man / @woman
@man / @woman
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.
Avatar Image
Machacateclados
Machacateclados

O que ha puesto mal el link

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
Opciones:
Ir al subforo:
Permisos:
TU NO PUEDES Escribir nuevos temas
TU NO PUEDES Responder a los temas
TU NO PUEDES Editar tus propios mensajes
TU NO PUEDES Borrar tus propios mensajes
Temas similares
TemaUsuariosRespuestasVisitasActividad
Por: , el 13/May/2009, 02:44
Layne07 chavp12kMay/09
Por: , el 27/Feb/2009, 23:27
UELCA Alvaro_brub NoSetup.org GestionXls312kFeb/09
Por: , el 26/Feb/2009, 04:44
UELCA Alvaro_brub38kFeb/09
Por: , el 04/Sep/2005, 22:12
lick_boy User 390661 chavp23kSep/05
Por: , el 29/Jul/2005, 22:15
bisbalfanclubmadrid12kAug/05