Libro de visitas con php y mysql

He conseguido un manual para hacer un libro de visitas con php y mysql pero no consigo que funcione, te pongo los dos archivos por si ves algún fallo en el código
Primero que nada he creado la base de datos:
CREATE TABLE librovisitaslabaranda_php (
id_librovisitaslabaranda_php int(11) unsigned NOT NULL auto_increment,
nombre varchar(150) NOT NULL,
email varchar(100) NOT NULL,
comentario text,
PRIMARY KEY (id_librovisitaslabaranda_php)
);
creo el archivo index.php:
<html>
<head>
<title>Libro de visitas</title>
<link rel="STYLESHEET" type="text/css" href="estilo.css">
</head>
<body>
<br>
<table align="center" width="550" cellspacing="2" cellpadding="8" border="0" bgcolor="#ffffff">
<tr>
<td>
<h1>Libro de visitas PHP</h1>
<?
//conecto con la base de datos
$conn = mysql_connect("localhost","9979","password");
mysql_select_db("librovisitaslabaranda_php",$conn);
if (!$HTTP_POST_VARS)
{
//si no recibo nada por el formulario de firma del libro, muestro las firmas del libro
//construyo la sentencia SQL
$ssql = "SELECT * FROM librovisitaslabaranda_php";
//se mostrarán las últimas fimas, aunque habrá un enlace en la parte de abajo que se podrá pulsar para ver más firmas
if (isset($_GET["vermas"]))
$ssql .= " where id_librovisitaslabaranda_php<=" . $vermas;
//ordeno la sentencia y limito el numero de resultados
$ssql .= " ORDER BY id_librovisitaslabaranda_php desc limit 11";
//tomo el juego de resultados
$resultid = mysql_query($ssql,$conn);
?>
Aquí puedes leer los mensajes de los visitantes y también puedes dejar el tuyo utilizando el formulario de abajo.
<br>
<br>
<span class=fuente8><b>Muchas gracias por tu participación</b></span>
<br>
<br>
<?
//muestro los datos en un bucle
$num_filas = 0;
while (($damefila=mysql_fetch_object($resultid)) && ($num_filas<10))
{
?>
<table align="center" width="100%" cellspacing="2" cellpadding="0" border="0">
<tr>
<td valign="top" class=fuente8><b>
<? //si el visitante no introdujo nombre muestro como nombre "Anónimo"
if ($damefila->nombre == "-"){
echo "Anónimo";
}elseif ($damefila->email != "-") {
echo '<a href="mailto:' . $damefila->email . '">' . $damefila->nombre . '</a>';
}else{
echo $damefila->nombre;
}
?></b>:<br>
</td></tr>
<tr><td bgcolor=cccccc colspan="2"><img src="file:///D|/descargas/librovisitas/images/pixeltrans.gif" width=1 height=1 border="0"></td></tr>
<td class=fuente8 valign="top">
<?echo strip_tags($damefila->comentario)?>
<td valign="top" align="right" nowrap class=fuente8>
</td>
</tr>
</table>
<br>
<?
$num_filas++;
} //termina el bucle while
//si quedan más valoraciones en el conjunto de resultados, muestro el enlace de "Ver más"
if ($damefila)
echo "<div align=center><b><a href=\"index.php?vermas=$damefila->id_librovisitaslabaranda_php\">Ver más mensajes</a></b></div><br>";
//libero el conjunto de resultados
mysql_free_result($resultid);
//incluyo el formulario para firmar
include ("formul_mensaje.html");
}
else
{
//estoy recibiendo datos del fomulario de firmas
//Formateamos un poco el formulario, por si acaso los datos son incorrectos
//eliminamos las etiquetas HTML y PHP de las cadenas de texto
$nombre = strip_tags($_POST["nombre"]);
$email = strip_tags($_POST["email"]);
$comentario = strip_tags($_POST["comentario"]);
//Cortamos las cadenas demasiado largas
$nombre=substr($nombre,0,150);
$email=substr($email,0,80);
//Comprobamos que el visitante se ha molestado en rellenar algo
if (strlen($nombre)==0 and strlen($email)==0 and strlen($comentario)==0)
{
?>
<div align="center"><b>Gracias por el envío</b>.<br><br>Te agradeceríamos, no obstante y si no resulta mucho esfuerzo, que rellenases alguno de los campos para dejar constancia de tu visita.</div>
<?
}else{
//si alguno de los campos falta prefiero colocar un guión o "sin comentarios"
if (!$nombre)$nombre="-";
if (!$email) $email="-";
if (!$comentario) $comentario="Sin comentarios";
//Generamos la ssql e insertamos el registro
$ssql = "INSERT INTO librovisitaslabaranda_php (nombre,email,comentario) VALUES ('" . $nombre . "','" . $email . "','" . $comentario . "')";
//echo $ssql . "<p>";
mysql_query($ssql,$conn);
?>
<div align="center"><b>Muchas gracias por tu participación</b></div>
<?
}
?>
<a href="index.php"><br>
<br>
</a>
<div align="center"><a href="index.php"><b>Volver al libro de visitas</b></a></div>
<?
}
mysql_close($conn);
?>
</td>
</tr>
</table>
<br>
</body>
</html>
por otra parte creo el formulario formul_mensaje.html:
<form name=librovisitaslabaranda_php action="index.php" method="post">
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class=titcol> <b>Firma el Libro de Visitas</b></td>
</tr>
<tr>
<td class=fuente8> Déjanos tu mensaje en el libro de visitas <br>
<br>
</td>
</tr>
<tr>
<td>
<table width="100%" cellspacing="0" cellpadding="0" border="0">
<tr>
<td class=fuente8 align="center">
Nombre
<br>
<input type="Text" name="nombre" size="20" maxlength="150">
<br>
<br>
Email
<br>
<input name="email" type="Text" size="20" maxlength="100">
<br>
<br>
</td>
<td ALIGN=CENTER class=fuente8 valign="middle">
Comentarios:
<br>
<textarea name="comentario" cols="30" rows="7"></textarea> </td>
</tr>
<tr>
<td colspan=2 align=center class=fuente8>
<br>
<input type="submit" value=" Enviar...

1 Respuesta

Respuesta
1
A ver, pero cual es el error, no te sale algún error en pantalla, que es lo que no hace... ¿no añade los datos a la base de datos...?...
¿Qué configuración tienes en el server de PHP, el server es tu pc?, ¿O es un server de verdad en Internet?
Cuéntame...
No añade datos a la base y cuando intento ver la página index.php desde ftp manager me sale completamente en blanco, si lo hago desde el explorador si que me sale el index correctamente, pero sin los comentarios que se introducen desde el formulario.
Mysql 4.0.25 y php 4.4.0, la web esta alojada en www.orgfree.com es gratuito y he visto en las características de la cuenta que tengo solo una db por cuenta, pero haciendo pruebas para comprobar porqué no me funcionaba resulta que he introducido tres db, no entiendo porque me dicen que solo puedo tener una cuango realmente he introducido tres, es posible que por tener tres no haga caso a ninguna
Gracias por responder
Bueno he modificado algo, y el error que me sala es
1044: Access denied for user: '9979@localhost' to database 'librovisitas_php'
ERROR al seleccionar la base de datos.
Gracias por todo, era un fallo tonto, confuncia entre el nobre de la base de datos y el nombre de la tabla, ahora funciona todo correctamente.
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas