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...
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>
<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 de thsu
1