elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Libro de visitas
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Libro de visitas  (Leído 3,545 veces)
.Master.

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Libro de visitas
« en: 11 Marzo 2007, 05:50 am »

hola, aca vengo a pedir ayuda.

estuve en internet busacando libro de visitas simple que no use base de datos (que use .txt), y no encontre ninguno que ande bien.

lo que yo quiero es esto, a ver si me explico:

http://img105.imageshack.us/img105/8784/dibujobx8.png

y el formulario para firmar no.

bueno si alguien sabe como hacer esto con archivos .php y .txt, que me avise gracias.


En línea

coolfrog


Desconectado Desconectado

Mensajes: 324


Ver Perfil WWW
Re: Libro de visitas
« Respuesta #1 en: 11 Marzo 2007, 07:02 am »

me parece que mejor lo haces con xml, ahi puedes estructurar mejor como va a guardar todo el texto, solo es una sugerencia por que con archivos txt supongo que si se puede hacer, no lo intente pero creo que seria muy dificil (pero no imposible) leer todo el texto y separarlo en partes como la fecha el usuario y el mensaje, para eso mejor xml.


En línea

дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: Libro de visitas
« Respuesta #2 en: 11 Marzo 2007, 09:30 am »

Checate este código y me dices.

Saludos  :P

Mejor lo pongo  ;D
      
LIBRO DE VISITAS

Este libro de visitas funciona en base a un archivo de texto, donde cada linea del archivo continene un registro, y a su vez cada línea contiene varios campos separados por el sigono "|" (pipeline). Este archivo tiene un aspecto coo el siguiente:

Walter|Esta es una prueba|06 de julio de 2005|
Claudia|Hoy esta lloviendo|07 de julio de 2005|

El script PHP abre este archivo, lee su contenido y lo almacena en un arreglo donde cada elemento del arreglo es una linea del archivo . Luego se recoore el arreglo y se trocea para separar los campos inlcuidos en cada linea mediante la función explode.

Veamos como podría ser código del archivo PHP que llamermos libro.php:

Código:
<?php

$archivo = file("libro.txt");
/* file lee el archivo y guarda el contenido en un arreglo, donde cada elemento del arreglo corresponde a una línea del archivo */

if (!$archivo) /* si no se puede abrir el archivo */
{
     echo "<p>No se pudo abrir el archivo.</p>";
}

$filas=count($archivo);
/* la funcion count cuenta el número de elementos de un arreglo y lo guarda en la variable $filas. Esta varible nos servirá como variable de control para recorrer el arreglo $archivo */

for($i=0;$i<$filas;$i++)
{
     $campo=explode("|",$archivo[$i]);
     /* la funcion explode divide una cadena en base a un caracter elegido, en este caso | y lo guarda en el arreglo $campo
luego se va obteniendo cada campo equivalente a los elementos del arreglo */
     $nombre = $campo[0];
     $comentario = $campo[1];
     $fecha = $campo[2];

     /* finalmente se imprimen por pantalla los datos */
    echo "\n<p>$comentario<br><font color='B500C2'>$nombre</font><br><font color='FF0000'>$fecha</font></p><br>";

}

?>

Ingreso de Datos

Para los usuarios puedan ingresar sus cometarios requeriremos agregar un formulario al final de archivo libro.php y que conecte con script que sea capaz de escribir en el archivo de texto los datos ingresados a través del formulario.

Código:
<form action="agrega_comentario.php" method="get">
<p>
Tu Comentario:<br>
<TEXTAREA NAME="comentario" ROWS="8" COLS="60" WRAP="soft"></TEXTAREA></p>
<p>Tu nombre: <input type="text" name="nombre" size=40></p>
<p><input type="submit" value="agrega tu comentario">&#160;&#160;&#160;<input type="reset" value="limpiar"></p>
</form>

Debemos ahora crear el Script que ingrese los datos en el archivo de texto (agrega_comentario.php):

Código:
<?php
$comentario=trim($texto); /* quita los espacios en blanco a los lados de la cadena de texto */
$nombre=trim($nombre);

/* COMILLAS Y OTROS */
/* se reemplazan las comillas y otros simbolos mediante la función eregi_replace que busca una cadena en otra, y l reemplaza por una tercera (ver Manejo de cadenas de Texto) */
$comentario=eregi_replace('\\\"',"&#34;",$texto);
$comentario=eregi_replace("\\\'","&#39;",$texto);
$comentario=eregi_replace("<","&#60;",$texto);
$comentario=eregi_replace(">","&#62;",$texto);
/* reemplazo los saltos de carro por la etiqueta <br>, de lo contario al ingresar los datos en el archivo, se me generan saltos de carfro que provocan errores al leer el archivo */
$comentario=eregi_replace("&#60;br&#62;","<br>",$texto);

if($comentario=="") /* reclama si no se ha ingresado texto */
{
echo "<center><h2>¿No vas a escribir nada?</h2></center>";
exit();
}
if($nombre=="") /* reclama si no se ha ingresado nombre */
{
echo "<center><h2>¿Y tu nombre?</h2></center>";
exit();
}
?>

<?php
/* con esta funcion se formatea la fecha al castellano */
function calcula_fecha()
{
/* consultar la funcion date en www.php.net/manual/es/ */
$dia = date ("d"); /* obtiene el número del día del mes */
$me = date ("m"); /* obtiene el número del mes */
$agno = date ("Y"); /* obtiene el año con 4 cifras */
$mes=""; /* se inicia la variable $mes vacía */
/* mediante una serie de if se obtiene el mes en castellano, la funcion date puede obtener el nombre del mes, pero lo hace en inglés */
if($me=="01") $mes="enero";
if($me=="02") $mes="febrero";
if($me=="03") $mes="marzo";
if($me=="04") $mes="abril";
if($me=="05") $mes="mayo";
if($me=="06") $mes="junio";
if($me=="07") $mes="julio";
if($me=="08") $mes="agosto";
if($me=="09") $mes="septiembre";
if($me=="10") $mes="octubre";
if($me=="11") $mes="noviembre";
if($me=="12") $mes="diciembre";
/* se arma la cadena con la fecha */
$cadena = "$dia de ";
$cadena .= "$mes de ";
$cadena .= "$agno";
return $cadena; /* se devuelve la cadena con la fecha */
}

$fecha = calcula_fecha(); /* se guarda en el valor de la funcion calcula_fecha() en la variable $fecha */
?>

<?php
$datos .= "$nombre|$comentario|$fecha|\n";
?>

<?php
/* se genera un puntero que apunta al archivo libro en modalidad de agregar al final "a" */
$archivo = fopen("libro.txt", "a");
if (!$archivo) /* si no se puede abrir el archivo reclama */
{
echo "<center><h2>No se pudieron agregar los datos</h2></center>";
exit;
}
/* Se escriben los datos */
fputs($archivo, $datos); /* fputs, escribe una cadena en el puntero indicado ($archivo) */
fclose($archivo); /* se cierra el archivo */
?>
« Última modificación: 11 Marzo 2007, 09:33 am por Ing_Amc » En línea

.Master.

Desconectado Desconectado

Mensajes: 96



Ver Perfil
Re: Libro de visitas
« Respuesta #3 en: 11 Marzo 2007, 18:45 pm »

Hola, gracias por responder.

hice todo eso, le di permiso a libro.txt y todo, cuando abro libro.php, me aparece asi:



y cuando quiero firmar y lo envio me aparece esto:








Para mi el codigo del formulario debe estar mal.

Alguien me puede ayudar
En línea

Thelord

Desconectado Desconectado

Mensajes: 14


The Lord


Ver Perfil WWW
Re: Libro de visitas
« Respuesta #4 en: 5 Abril 2007, 18:51 pm »

Saludos Ing_Amc.

Sabes me interesa ese libro de visitas pero, ali igual que .Master estoy medio confundido con el error,  trato de entenderlo pero no logro resolver nada.

Sobre el archivo.txt, solo le agregue unos comentarios para que no me marcara "No se puede leer el archivo".

Esperare los comentarios..
Saludos.

Por cierto el post ya tiene mucho tiempo. pero nimodo.

EDIT:

Saludos..

Despues de razonarle un rato y con mis escaso conocimientos de casi nada de C.
Deduje que le falta esto $texto=$comentario; en la primer linea del archivo agrega_comentario.php y listo.
Pero tienes que tener activada la opcion global_variable=ON en tu PHP.INI.

Edita tu php.ini .. ahi veras la directiva:
register_globals = OFF .. pasalo a ON para trabajar de la forma habitual con tus variables que envias de formularios/URL's entre otras.

En caso de que no deses modificar tu PHP.INI
Solo cambia estas variables:
$texto=$comentario;
$comentario=trim($texto);
$nombre=trim($nombre);

A esto:

$texto=$_GET[comentario];
$comentario=trim($texto);
$nombre=trim($_GET[nombre]);

Se te agradece Ing_Amc.
« Última modificación: 6 Abril 2007, 02:45 am por Thelord » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dudas con las visitas de mi web « 1 2 »
Desarrollo Web
Bender-Deicide 10 5,137 Último mensaje 13 Marzo 2011, 16:31 pm
por Bender-Deicide
como eliminar un mesaje en el libro de visitas de elhacker.net? « 1 2 »
Sugerencias y dudas sobre el Foro
FERMON 15 9,905 Último mensaje 23 Septiembre 2011, 16:25 pm
por skapunky
Que un visualizador de visitas tenga en cuenta las visitas previas.
Desarrollo Web
Yukón02 1 2,176 Último mensaje 24 Septiembre 2013, 21:54 pm
por Pédrin-2
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines