Foros del Web » Programando para Internet » PHP »

Libro de visitas PHP/TXT: un par de cuestiones

Estas en el tema de Libro de visitas PHP/TXT: un par de cuestiones en el foro de PHP en Foros del Web. Hola a todos, Acabo de terminar un sencillo libro de visitas en PHP con "base de datos" en TXT (vamos, ninguna base de datos xD) ...
  #1 (permalink)  
Antiguo 18/07/2009, 11:42
 
Fecha de Ingreso: abril-2009
Mensajes: 18
Antigüedad: 15 años
Puntos: 0
Libro de visitas PHP/TXT: un par de cuestiones

Hola a todos,

Acabo de terminar un sencillo libro de visitas en PHP con "base de datos" en TXT (vamos, ninguna base de datos xD) para mi web que, como no tengo ni idea de programación, ha salido con -mucho- esfuerzo gracias a un par de tutoriales que encontré por Internet. Funcionar, lo que es funcionar, funciona, pero hay un par de cosas que querría solucionar. En concreto, una cosa que querría solucionar y otra que quisiera añadir.

Lo que quiero solucionar es que, imagino que debido al uso del simple TXT, el resultado que se muestra en pantalla para cada comentario omite los saltos de línea, por lo que todo aparece en un mismo párrafo y queda un poco feo.

Lo que quiero añadir es una galería de smileys. Para esto he investigado un poco ya, pero con mis nulos conocimientos de PHP, mis intentos hasta ahora han sido fallidos. Sé que hay que usar una función de sustitución de caracteres para que un ":)" sea el .gif con el smiley correspondiente, pero no sé exactamente dónde debo colocar esa función.

Os pongo los códigos de los .php que uso:

Nota: El formulario para escribir los comentarios está en otra página diferente a donde se ven los comentarios ya escritos.

verlibro.php: -Esto es lo que pongo en la página donde quiero que se vean los comentarios. Ya no pongo el código HTML, es lo de siempre.

Código PHP:
<?php
    readfile
("data.txt");
?>
indice.php: Este es el formulario, con algunos divs para formateo mediante CSS.

Código PHP:
<div id="form">
    <
form method="post" action="libro.php">
    <
div id="izqform">
    <
label for="Name">Nombre:</label> <input type="text" id="Name" name="Name" />
    <
label for="Email">E-Mail:</label> <input type="text" id="Email" name="Email" />
    <
label for="Homepage">Web:</label> <input type="text" id="Homepage" name="Homepage" />
    </
div>
    <
div id="derform">
    <
label for="Comments">Comentarios:</label> <textarea id="Comments" name="Comments" class="input" rows="6" cols="20"></textarea>
    </
div>
    <
div id="botonform"><input type="submit" class="button" value="Enviar" /></div>
    </
form>
</
div
libro.php: Y este es el archivo donde está la programación PHP que hace algo con el formulario anterior, también con algunas etiquetas para formateo CSS.

Código PHP:
<?php
 
$name 
$_POST['Name'];     
$email $_POST['Email'];        
$homepage $_POST['Homepage'];
$comments $_POST['Comments'];
$timedate date("M d, Y (g:i a)"time() + 0000);
 
if (
$name == "" or $comments == "") {
    echo 
"<div class=\"fehlerreport\">Los campos Nombre, E-Mail y Comentarios deben contener alguna información.<br />¡Gracias!</div>";
} else {
    
$oldinfo file_get_contents("data.txt");
    
$guestbookdata fopen("data.txt""w+");
    
fwrite($guestbookdata"<div class=\"posteins\"><a class=\"linktext3\" href=\"mailto:{$email}\">{$name}</a> - <a class=\"linktext3\" href=\"{$homepage}\">{$homepage}</a> - <em>{$timedate}</em> </div>\n");
    
fwrite($guestbookdata"<div class=\"postzwei\"><strong>Comentarios:</strong><br /> $comments </div>\n \n");
    
fwrite($guestbookdata"$oldinfo");
    
fclose($guestbookdata);
    
readfile("data.txt");
}
?>
A ver si me podéis ayudar con ambas cuestiones.

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 18/07/2009, 11:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Para tu primera duda usa nl2br() para transformar los saltos de linea.

Para tu segunda duda tienes que usar str_replace() para reemplazar los smilies.

Saludos.
  #3 (permalink)  
Antiguo 18/07/2009, 13:04
 
Fecha de Ingreso: abril-2009
Mensajes: 18
Antigüedad: 15 años
Puntos: 0
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Gracias GatorV, pero recuerda que no tengo ni idea de programación con PHP (o con cualquier otro lenguaje, en realidad)!

Podrías ponerme un ejemplo exacto de qué, cómo y dónde debo escribir eso?

Gracias por adelantado :)
  #4 (permalink)  
Antiguo 18/07/2009, 15:28
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Si buscas en el Manual de PHP puedes ver exactamente como funcionan esas funciones y los parámetros que aceptan.

Saludos.
  #5 (permalink)  
Antiguo 18/07/2009, 16:07
 
Fecha de Ingreso: abril-2009
Mensajes: 18
Antigüedad: 15 años
Puntos: 0
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Pero eso requiere que tenga que aprender PHP. La verdad, no me apetece nada ponerme a investigar en este tema solamente para conseguir eso, sobre todo si ya existe gente que en 1 minuto me puede decir qué y dónde debo escribir en el código que puse más arriba para que funcione. Por algo vengo a pedir ayuda aquí. Si quisiese aprender a programar en PHP ya habría empezado por mi cuenta y vendría a pedir ayuda con cosas más concretas, como por ejemplo algo de sintaxis o lo que sea.

Gracias de todas formas.
  #6 (permalink)  
Antiguo 18/07/2009, 16:11
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Cita:
Iniciado por Senku Ver Mensaje
Pero eso requiere que tenga que aprender PHP. La verdad, no me apetece nada ponerme a investigar en este tema solamente para conseguir eso, sobre todo si ya existe gente que en 1 minuto me puede decir qué y dónde debo escribir en el código que puse más arriba para que funcione. Por algo vengo a pedir ayuda aquí. Si quisiese aprender a programar en PHP ya habría empezado por mi cuenta y vendría a pedir ayuda con cosas más concretas, como por ejemplo algo de sintaxis o lo que sea.

Gracias de todas formas.
bueno, mas claro ni el agua!!!

entonces, mueve tu tema al foro de ofertas de empleo y que alguien se encargue de hacer tu trabajo, no crees??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #7 (permalink)  
Antiguo 18/07/2009, 17:35
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Solo decir una cosa: ¿Se le puede exigir a alguien que te ayude? Creo que en este foro la ley del menor esfuerzo no vale, almenos en este apartado. Aquí se viene a aprender, no a esperar que te hagan todo un código y punto. Si pedías ejemplos, GatorV te ha indicado una dirección al Manual de PHP, donde se explica, introduciendo esas dos funciones al buscador de la parte superior derecha, la función de esas funciones (valga la redundancia) y unos ejemplos para su utilización. Ya ha hecho mucho perdiendo dos minutos al contestarte, pues ha hecho eso: perder el tiempo solo porque a ti te da pereza buscar dos simples funciones y ponerlas en tu script. Sinceramente, me toca muchísimo la moral (por no decir otra cosa).

Espero no te hernies trabajando e investigando para tu script.

Quien algo quiere, algo le cuesta.
  #8 (permalink)  
Antiguo 19/07/2009, 07:39
 
Fecha de Ingreso: abril-2009
Mensajes: 18
Antigüedad: 15 años
Puntos: 0
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Pues varias cositas:

1) En ningún caso vengo aquí a exigir nada. Creo que en mi primer mensaje queda bien claro que vengo a pedir ayuda, tras haber explicado que no tengo ni idea de programación. Tras una respuesta en la que se me remite a leer un manual (que servirá como referencia para los que sepan, porque yo lo he visto y desde luego, para ignorantes en el tema, no vale de nada) y que me busque la vida, simplemente vuelvo a pedir si se me pueden proporcionar ejemplos concretos, que a lo sumo pueden ser 5-10 líneas de código o al menos una indicación del tipo "busca tal función, con una estructura como las que hay en los ejemplos, y colócala en tu archivo justo después de...". Esa es toda la ayuda que pedía.

2) Si vengo a pedir ayuda sobre algo que desconozco totalmente es porque ya he invertido mucho tiempo buscando soluciones por mi cuenta. Como dije en mi primer mensaje, ya había indagado que había que usar una función de reemplazo (por ejemplo para los smileys). He intentado copiar, modificar apropiadamente y pegar en el código arriba expuesto alguna de las cosas que encontré por Internet y ninguna ha funcionado, supongo que porque la sintaxis estaba mal, faltaba o sobraba algo o no estaba la función en el sitio donde debería.

Lo cual, tras mucho tiempo probando y probando, me llevó a concluir que me hacía falta ayuda de alguien para el que esas 5-10 líneas de código sean coser y cantar.

3) Si pregunto por ejemplos, es porque he visto muchos posts donde se han dado ejemplos cuando se han pedido. De hecho, en el Foro de CSS he preguntado en varias ocasiones por soluciones concretas y muchos foristas han proporcionado código con soluciones, sin más problemas.

4) hebo, si ya te parece mucho que otro forista haya gastado 2 minutos en escribirme una respuesta, me resulta la mar de curioso que tú hayas perdido 3 exclusivamente para ponerme a parir. Supongo que es la naturaleza humana: ayudar a otro no merece tu tiempo; ahora, para echar la bronca, todo el día si hace falta.

5) pateketrueke, mi página está completamente terminada y estoy satisfecho con ella, solamente me faltan esos dos detalles en el libro de visitas. Si alguien pide dinero por ayudarme con unas pocas (5, 10, 15?) líneas de código, entonces esa persona no se merece otra denominación que "rata". Ni que estuviera pidiendo la receta del elixir de la vida eterna, lo que hay que leer!

Así que nada, "gracias" por los esfuerzos y que vaya bien allá arriba en los altares del olimpo de la programación. Esto de rebajarse a hablar con mortales debe ser la mar de estresante.
  #9 (permalink)  
Antiguo 19/07/2009, 08:57
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Cita:
Iniciado por Senku Ver Mensaje
[...] 5) pateketrueke, mi página está completamente terminada y estoy satisfecho con ella, solamente me faltan esos dos detalles en el libro de visitas. Si alguien pide dinero por ayudarme con unas pocas (5, 10, 15?) líneas de código, entonces esa persona no se merece otra denominación que "rata". Ni que estuviera pidiendo la receta del elixir de la vida eterna, lo que hay que leer! [...]
lo mas raro es que si no sabes de programación.... ¿porque lo haces?? ¿de verdad esa web es tuya??

lo digo porque así sucede, alguien viene pidiendo ayuda para "su web"... cuando en verdad, es la web de otro... por la cual va a obtener algún ingreso...

¿¿no sera el caso tuyo, o si???


de veras es muy raro...

ya que por hobbie, lo mínimo que podrías hacer es aprender PHP ... no creo que tu hobbie sea hacer-y-hacer sin aprender nada, pues... eso sería estúpido!!

por eso me quedo así, nadie esta obligado a proporcionarte ayuda, o código pues... si no lo entiendes, tampoco te podemos llevar de la mano (ya que por lo general se ayuda a quien de verdad lo necesita)


si de antemano te estas negando a aprender PHP (o lo que sea), y lo haces explícitamente... ¿crees que deberíamos intentar ayudar a alguien así??

piensalo así, si tuvieras la iniciativa... con gusto te colocaríamos código de ejemplo!!! ¡¡sin duda!!!

pero no es este el caso...

__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 19/07/2009, 20:33
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

Solo como tip extra, si hubieras buscado en el Manual en lugar de quejarte, hubieras visto "n" cantidad de ejemplos que estan expuestos en donde se explica detalladamente como usar esas funciones en castellano, ni si quiera estan en una lengua extranjera.

Si como tu dices, tu programaste tu web desde 0, no te debe de costar nada de trabajo ver esos ejemplos que estan explicados y adaptarlos a tu codigo.

Realmente considero triste como usuarios como tú vienen a exigir pensando que este es un foro donde se esta obligado a solucionar los problemas a los demás, en lugar de pensar que es un foro donde se brinda una ayuda, no se hace el trabajo a los demás.

Claro hay usuarios que luego tienen esa iniciativa y lo hacen, pero con la actitud que expones es difícil que alguién te quiera ayudar ya que demuestra una soberbia impresionante.

Espero medites tu actitud ya que con ese tipo de actitud es poco probable que puedas conseguir las cosas.

Saludos.
  #11 (permalink)  
Antiguo 20/07/2009, 13:33
 
Fecha de Ingreso: abril-2009
Mensajes: 18
Antigüedad: 15 años
Puntos: 0
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

@pateketrueke: Sí, he hecho la web desde 0, con xhtml y css. La web no es para mí, es para mi novia, pero vamos, es un tema que no tiene nada que ver con ganar dinero: es una web de nuestro perro. Para el libro de visitas busqué tutoriales para hacerlo lo más sencillo posible y encontré que con php y txt existía la forma más sencilla para alguien que no tenía ni idea de programación en php, que era/es mi caso. Pero ese tutorial lo explicaba muy superficialmente, así que busqué otros, en varios idiomas, y al final, cogiendo cosas de aquí y de allí, conseguí hacer funcionar el famoso libro, que además está estupendamente formateado en CSS, pero que carece de funciones adicionales (como los smileys, por ejemplo), que no le pude añadir por la limitación de carecer de fundamentos de programación PHP. Como no tenía ni idea, tuve que probar y probar cosas, modificar el escaso código PHP, hasta que el resultado fue el deseado. Vamos, que interés y empeño si he puesto, tal y como os he dicho.

Os he presentado el caso, os he dicho que tras mucho investigar no doy con la tecla, ya que como no entiendo el tema de las funciones, me faltan los fundamentos más básicos de programación y es dar palos de ciego y os he proporcionado las 4 líneas de código que tengo, dentro de las cuales, supongo, hay que añadir las funciones. Y os he pedido muy amablemente ayuda para conseguirlo. Y todo eso antes de tener que aguantar broncas varias. A mí me parece que tendríais toda la razón del mundo en lo que decís si viniese con las exigencias por las buenas, pero no es así y, además, la "actitud" que me achacais ha venido como consecuencia de las respuestas recibidas a la solicitud de ayuda, no antes.

Desde mi punto de vista, vine con toda la buena voluntad del mundo y dando facilidades (ya que he visto muchas veces peticiones de ayuda en las que apenas se describe el problema) y de buen royo. He recibido una respuesta escueta, que me parece bien, cada uno puede no contestar o contestar con la extensión que prefiera. Y por ello, además, he dado las gracias, por cierto. Y tras investigar en el manual, me he visto igual de perdido. En primer lugar, el link da un error, no apunta al manual que se cita, sale un mensaje en inglés diciendo que el contenido solicitado no existe en el servidor. En cualquier caso, escribo los nombres de las funciones en el buscador y me pongo a leer en inglés. No es la mejor solución, pero no tengo problemas con el idioma. Desde luego que te creo que el manual está en castellano, GatorV, pero a mí no me ha aparecido así, puedo seguir buscando. En cualquier caso, con el ejemplo generalista y los muchos y más complicados ejemplos de los colaboradores, más abajo, no saco nada en claro. Para mí es como leer chino. He ido a buscar información sobre las diferentes cuestiones (funciones, strings, arrays, etc.), para saber qué debo coger de mi código y qué no. Pero por ejemplo, sigo sin saber dónde tendría que poner la función. Simplemente, no sé por donde empezar.

Por descontado, he intentado coger el ejemplo que intuí sería más adecuado para mi problema (el más sencillo entre las posibilidades) y he intentado adaptarlo. He subido el .php modificado al servidor pero ninguna de las combinaciones ha funcionado.

GatorV, me sigues recordando que esto es un foro de ayuda, que aquí no se viene a hacer el trabajo de los demás, con lo que concluyo que no me explico bien o no se me lee bien del todo o un poco de ambas.

Doy un código sencillo, explico lo que necesito, digo que más o menos tengo una idea de lo que es, pero no sé dónde colocarlo o qué variable debo poner exactamente y pido amablemente si alguien me puede decir cómo empezar. Me das el consejo con esas dos funciones, pero respondo que no sé exactamente qué hacer con ellas y me remites a un manual con todo lo que hace falta saber de PHP y te pido un ejemplo y me saltais todos al cuello. A mí lo que me parece es que tenéis metido entre ceja y ceja que vengo aquí a rascarme la barriga y que vosotros me regaleis un par de centenares de líneas de código por la cara (alguno incluso cree que necesito que me programen la página entera, por lo que dice...) y con el prejuicio en mente, da igual lo que diga o haga, que para vosotros soy el puñetero caradura que viene a sacar provecho de vuestra buena voluntad.

Para mí, he venido a pedir un poco de ayuda para atar un par de cabos de mi web, terminada al 99,9% y me encuentro con una bronca de cuidado sin comerlo ni beberlo. Qué queréis que os diga. Diréis que tenéis razón, pero a mí me parece que os habéis montado un Everest de lo que a lo sumo era un puñadito de tierra. Vamos, que habéis exagerado el tema a lo bestia. Igual yo pude cambiar alguna frase de mis mensajes y hacerlos más "sumisos". Igual no había suficientes "gracias" o "por favor" o "no tengo ni idea, me ayudais?". En cualquier caso, ha sido sin ningún ánimo de exigencia. Otros no pueden decir lo mismo y han venido aquí a atacar por atacar. Para mí que no soy el único que tendría que pensar un poco más lo que escribe.

Pero no os preocupeis, que ya seguiré buscando yo soluciones por mi cuenta, que para eso es mi web. Al fin y al cabo, tampoco tenía ni idea de XHTML ni CSS cuando empecé con ella.

Saludos y hasta siempre.

PD.: Y sí, GatorV, gracias otra vez por los tips. Sin duda de algo servirán, con tiempo para aprender desde 0 un lenguaje de programación para escribir 5 líneas de código que no necesitaré, probablemente, nunca más. Pero bueno, eso será mi problema, no el tuyo.
  #12 (permalink)  
Antiguo 20/07/2009, 15:24
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Libro de visitas PHP/TXT: un par de cuestiones

No es necesario que seas un maestro, o un erudito en programación si lo que deseas es entender algo lógico, si como dices hiciste la web desde 0, adaptaste códigos que encontraste no veo si viste el Manual esta explicado perfectamente:

nl2br
Convierte los saltos de linea de una cadena en <br /> para que se vean en la pagina web, un ejemplo sencillo:
Código php:
Ver original
  1. $cadena = "Hola
  2. esta es
  3. mi variable
  4. con saltos";
  5. echo nl2br($cadena);

En concreto a la variable que tenga el texto de tu visita aplicale el nl2br() al imprimirlo con un echo en tu pagina web.

Siguiente, mostrar los smilies (tema ya muy tratado que igual si hubíeras invertido 5 minutos en el foro podrías ver "n" cantidad de temas similares con soluciones.

Funcionamiento básico:
str_replace
Código php:
Ver original
  1. $cadena_original = 'Hola :) como estan?';
  2. $cadena_modificada = str_replace(':)', '<img src="smilies/sonrisa.gif" border="0">', $cadena_original);

Como puedes ver es simple, reemplazas un texto por otro, alguna vez usaste Buscar/Reemplazar de Word? Es lo mismo.

Ahora si quieres reemplazar muchos valores haces un arreglo:
Código php:
Ver original
  1. $smilies = array(
  2.       ':)',
  3.       ':(',
  4.       ':P',
  5.       ':D'
  6. );
  7. $gifs = array(
  8.       '<img src="smilies/sonrisa.gif" border="0">',
  9.       '<img src="smilies/triste.gif" border="0">',
  10.       '<img src="smilies/lengua.gif" border="0">',
  11.       '<img src="smilies/risa.gif" border="0">',
  12. );
  13.  
  14. $cadena = "Esta es mi cadena con smilies: :) :( :P :D";
  15. echo str_replace($smilies, $gifs, $cadena);

Ahora solo es cuestión de que veas la logica (que no es física nuclear ni cosas avanzadas es simple lógica, así como cuando ves una luz roja en un semaforo y frenas) y lo unas a lo que ya tienes en tu código.

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:00.