Autor Tema: [Descarga] Libro de visitas v2 por Pituko con fopen()  (Leído 3224 veces)

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
[Descarga] Libro de visitas v2 por Pituko con fopen()
« en: 20 de Febrero de 2011, 03:09:54 am »
Como verán he continuado mucho este simple script, lo modifique para que en realidad o al menos algo, se pareciera a un libro de visitas.
Recuerda que no necesitas SQL

Mejoras:
Strtr(,,) cambiado por Htmlspecialchars()
Diseño mejorado
Sección de borrar todos los mensajes (tiene contraseña)
Uso de empty($variable) en los if's en vez de $variable == ""
Comprobador de Chmod (Te avisa cuando no se puede accesar al archivo mensajes.html, simple pero efectivo)

Gente que lo testeo:
x.zurox.x
Siquillote
Rastrillox
Iachi960

Vista previa: http://libro.zzl.org/index.php
Descargas:
Mediafire: http://www.mediafire.com/?6u315xdj1896ci5
Megaupload: http://www.megaupload.com/?d=XTIRL1HA
Post de la v1.5: http://www.phperos.net/foro/index.php?topic=7291.0

Ha sido probado, solo en Firefox Chrome e IE, en IE da fallas de visualización.

Notas adicionales pero importantes:
Necesitas darle chmod 777 al archivo "mensajes.html" para funcionar correctamente
Para cambiarle la pass al archivo "erase.php" dirígete a la línea $pass = "admin"; y reemplazalá por $pass = "tu pass";

Espero que les haya gustado
« Última modificación: 20 de Febrero de 2011, 21:10:00 pm por -Pituko- »

Comunidad PHPeros

[Descarga] Libro de visitas v2 por Pituko con fopen()
« en: 20 de Febrero de 2011, 03:09:54 am »

Desconectado x.zurox.x

  • PHPero Avanzado
  • ****
  • Mensajes: 276
  • Karma: 11
  • Sexo: Masculino
  • Aprendiendo Php :)
    • Ver Perfil
    • TecnoVagos Tu Foro
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #1 en: 20 de Febrero de 2011, 03:19:27 am »
muy bueno pitukoo :D +1
Si tienes un problema dificil de arreglar, comienza por hablar con la verdad ♫

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #2 en: 20 de Febrero de 2011, 03:23:45 am »

Desconectado nemo-argento

  • PHPerit@
  • *
  • Mensajes: 35
  • Karma: 3
  • Sexo: Masculino
  • Todo lo que hagamos siempre fue <? echo ?> antes..
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #3 en: 20 de Febrero de 2011, 20:28:03 pm »
+1 por buena persona y por buen post :D

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #4 en: 20 de Febrero de 2011, 20:52:18 pm »
+1 por buena persona y por buen post :D
Gracias, estoy aquí para servirte ;).
Si tienes alguna recomendación, dimelá.

Desconectado Fermin

  • PHPero Experto
  • *****
  • Mensajes: 783
  • Karma: 7
  • Sexo: Masculino
  • Nada que decirte.
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #5 en: 21 de Febrero de 2011, 02:11:28 am »
muy bueno, excelente gracias

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #6 en: 21 de Febrero de 2011, 02:16:20 am »
muy bueno, excelente gracias
De nada, cualquier error, cualquier cosa que crean que le falta, ¿Me la pueden decir?

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #7 en: 21 de Febrero de 2011, 23:23:53 pm »
Ya que la nueva versión se enfoca más en la optimización, te daré consejos para este fin.

- Utilizar comillas simples en vez de comillas dobles.
Ej
Antes| Ahora
"hola"| 'hola'

- En vez de meter una variable dentro de comillas dobles, simplemente no pongas comillas.
Ej:
Antes| Ahora
file_get_contents("$archivo")| file_get_contents($archivo)

- Cuando utilizas estructuras de control y solo utilizas una sentencia dentro de ese bloque, no es necesario poner las { }.
Ej:
Antes| Ahora
if ((empty($nick)) && (empty($contenido))) {
        print "<script type='text/javascript'>alert('Rellena todos los campos');</script>";
}
| if ((empty($nick)) && (empty($contenido)))
        print "<script type='text/javascript'>alert('Rellena todos los campos');</script>";



Otra cosa, viendo lo que hay en erase.php, me gustaría que me explicaras qué significa para ti esto:

1. $enviado = $_POST['enviado'];
2. if (! $enviado){

¿$_POST recibe un valor booleano?

Y por último, sería bueno que emplearas un poco la tecla TAB para tabular el código, que de esa forma no se me hace (al menos a mí) muy agradable a la vista x.x
« Última modificación: 21 de Febrero de 2011, 23:26:48 pm por Physlet »

Desconectado Siquillote

  • PHPero Master
  • ******
  • Mensajes: 4.229
  • Karma: 179
  • Sexo: Masculino
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #8 en: 21 de Febrero de 2011, 23:28:30 pm »

1. $enviado = $_POST['enviado'];
2. if (! $enviado){

¿$_POST recibe un valor booleano?

Y por último, sería bueno que emplearas un poco la tecla TAB para tabular el código, que de esa forma no se me hace (al menos a mí) muy agradable a la vista x.x

Supongo que está tratando de verificar si se ha pulsado el botón pero es una *****ez almacenarlo en una variable y luego preguntar, para ello pregunta directamente por que una variable quiras que no por muy poquito que consuma, un poquito mas un poquito = un poquito x2.

#Fdo. Physlet

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #9 en: 21 de Febrero de 2011, 23:33:42 pm »
Supongo que está tratando de verificar si se ha pulsado el botón pero es una *****ez almacenarlo en una variable y luego preguntar, para ello pregunta directamente por que una variable quiras que no por muy poquito que consuma, un poquito mas un poquito = un poquito x2.
Como bien dices, no tiene sentido almacenarlo en una variable porque es algo que no se va a volver a utilizar.

Y si lo que se quiere es comprobar que dicha 'variable' ($_POST['enviado']) está definida, lo correcto sería usar la función isset().

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #10 en: 22 de Febrero de 2011, 23:24:34 pm »
Como bien dices, no tiene sentido almacenarlo en una variable porque es algo que no se va a volver a utilizar.

Y si lo que se quiere es comprobar que dicha 'variable' ($_POST['enviado']) está definida, lo correcto sería usar la función isset().
Almacene la variable ya existente porque un día tuve un problema usando la variable completa ($_POST['enviado']) que solucione, no se porque, almacenandola en otra variable, y ya me di cuenta que no tiene caso almacenarla.

Tengo entendido que en las versiones nuevas de PHP da error ya que la variable no tiene valor en caso de que el formulario no haya sido enviado (Undefined Index), además, de que consumo menos, estoy comenzando en eso, además, hay otro error que me acabo de dar cuenta que hice, que cuando no se tenga acceso al archivo mensajes.html se bloqueara la pagina, pero no funciona, porque coloque el codigo dentro de la layout en vez de hacer esto:


<?php
if (! fopen($archivo,"a+") {
error_reporting(0);
echo 
"No se tuvo acceso al archivo $archivo";
} else 
?>
Acá la layout
<?php
//Acá el codigo php
?>


Y así se bloqueará la layout en caso de que no se tenga acceso, pero, ¿me dan una recomendacion para abreviar esto?

Gracias por sus demás consejos que acabo de tomar en cuenta.

PD Sobre esto:
Cita de: Physlet
Otra cosa, viendo lo que hay en erase.php, me gustaría que me explicaras qué significa para ti esto:

1. $enviado = $_POST['enviado'];
2. if (! $enviado){

¿$_POST recibe un valor booleano?
Hago eso para que, si han hecho click en el botón el if confirmra el true ,si no ha sido confirmado, el false, no lo uso como campo de texto, eso es algo nuevo, ya que, como dicen, debo ahorrar codigo, y antes utilizaba:

<input type="hidden" value="si" name="xd" id="xd" />
if ($_POST['xd'] != "si") {

y aunque parece que la nueva modificacion que hice parece tonta, no lo es, porque da resultado.
« Última modificación: 22 de Febrero de 2011, 23:26:45 pm por -Pituko- »

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #11 en: 22 de Febrero de 2011, 23:42:53 pm »
Tengo entendido que en las versiones nuevas de PHP da error ya que la variable no tiene valor en caso de que el formulario no haya sido enviado (Undefined Index), además, de que consumo menos, estoy comenzando en eso, además
Es un error tipo 'NOTICE' o sea, nada perjudicial. Lo que pasa es que para comparar si está definida una variable es usar la función isset() como ya dije anteriormente. Porque si tú haces la comparación directamente:

if($_POST['enviado'])

Se hace alusión de que existe esa variable y luego toma su valor, pero está mal. Lo que debes hacer es comprobar que esté definida así:

if(isset($_POST['enviado']))

isset() devuelve TRUE en caso de que sí esté definida (que exista) y false en caso contrario.

Otra cosa, si no quieres que se muestren los mensajes de error en el fopen(), agrégale un @ (at) por delante.
Así: @fopen($archivo, 'a+');

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #12 en: 23 de Febrero de 2011, 00:09:33 am »
Gracias, seguiré usando los { y } porque me resultan comodos en el php y cambiando de tema me da error acá:

<?php
} else if (($_POST[&#39;enviado&#39;]) && ($pass == $_POST[&#39;pass&#39;]) && ("no" == $_POST[&#39;decision&#39;])) {
?>

Error: Parse error: syntax error, unexpected T_STRING, expecting ']' in /www/zzl.org/l/i/b/libro/htdocs/beta2-3/erase.php on line 38
¿Porque me lo esta dando?

Desconectado Physlet

  • PHPero Experto
  • *****
  • Mensajes: 822
  • Karma: 41
  • Sexo: Masculino
  • Todo es posible con esfuerzo, dedicación e interés
    • Ver Perfil
    • PanamaDev
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #13 en: 23 de Febrero de 2011, 00:37:32 am »
Gracias, seguiré usando los { y } porque me resultan comodos en el php
Sí, de hecho me estuve leyendo algo sobre estándares y lo ideal es que sí se usen las llaves. Así que retiro lo que dije anteriormente.

y cambiando de tema me da error acá:

<?php
} else if (($_POST[&#39;enviado&#39;]) && ($pass == $_POST[&#39;pass&#39;]) && ("no" == $_POST[&#39;decision&#39;])) {
?>

Error: Parse error: syntax error, unexpected T_STRING, expecting ']' in /www/zzl.org/l/i/b/libro/htdocs/beta2-3/erase.php on line 38
¿Porque me lo esta dando?
1. El error no está ahí. No siempre está en la línea que te dicen, mira más arriba.
2. Vuelves a usar $_POST['enviado'] de manera incorrecta, si lo que quieres es comprobar que existe la variable (si se ha pulsado) es usando isset().

Desconectado -Pituko-

  • PHPero Experto
  • *****
  • Mensajes: 954
  • Karma: 20
  • Sexo: Masculino
  • ¡Hala Madrid!
    • Ver Perfil
Re:[Descarga] Libro de visitas v2 por Pituko con fopen()
« Respuesta #14 en: 23 de Febrero de 2011, 00:41:51 am »
Sí, de hecho me estuve leyendo algo sobre estándares y lo ideal es que sí se usen las llaves. Así que retiro lo que dije anteriormente.
1. El error no está ahí. No siempre está en la línea que te dicen, mira más arriba.
2. Vuelves a usar $_POST['enviado'] de manera incorrecta, si lo que quieres es comprobar que existe la variable (si se ha pulsado) es usando isset().
Ok, ya lo solucione gracias a ti K+

Lo que traerá la proxima versión (v2.3):
BBcodes (Agregados!)
Panel (Terminando)
Archivo de configuración (donde se guardaran datos como quien es el propietario, etc) (Terminado!)
Uso de jQuery (Aunno llego a esa parte)

Me pueden dar mas ideas?