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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [SOLUCIONADO] Como crear Tags BBCode para YOUTUBE ??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [SOLUCIONADO] Como crear Tags BBCode para YOUTUBE ??  (Leído 4,739 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
[SOLUCIONADO] Como crear Tags BBCode para YOUTUBE ??
« en: 17 Julio 2008, 19:57 pm »

Hola:

En mi sistema web tengo varios TAGS BBCode disponibles, pero me gustaria poner a disposicion un TAGS BBCode de Youtube, para que los usuarios puedan postear el video de youtube y se vea ahi mismo en la pagina. Espero y me puedan ayudar !!!

Mientras, les platicare mi metodo para crear BBCode:

Primeramente, cualquier mensaje que se agrege ya sea por mi o tipo comentario pasa por una funcion llamada proteger_cadena(), esta protege la cadena para evitar Injeccion HTML, Injeccion SCRIPT e Injeccion SQL, despues esta misma funcion realiza el llamado de otra funcion que es msg2msgtags($cadena) que se encarga de hacer el BBCode. El codigo es el siguiente:

Funcion msg2msgtags()
Código
  1. <?php
  2. function msg2msgtags( $mensaje )
  3. {
  4. if( strchr( $mensaje, "[b]" ) &&  strchr( $mensaje, "[/b]" ) )
  5. {
  6. $mensaje= str_replace( "[b]", "<b>", $mensaje );
  7. $mensaje= str_replace( "[/b]", "</b>", $mensaje );
  8. }
  9. if( strchr( $mensaje, "[i]" ) &&  strchr( $mensaje, "[/i]" ) )
  10. {
  11. $mensaje= str_replace( "[i]", "<i>", $mensaje );
  12. $mensaje= str_replace( "[/i]", "</i>", $mensaje );
  13. }
  14. if( strchr( $mensaje, "[u]" ) &&  strchr( $mensaje, "[/u]" ) )
  15. {
  16. $mensaje= str_replace( "[u]", "<u>", $mensaje );
  17. $mensaje= str_replace( "[/u]", "</u>", $mensaje );
  18. }
  19. if( strchr( $mensaje, "[center]" ) &&  strchr( $mensaje, "[/center]" ) )
  20. {
  21. $mensaje= str_replace( "[center]", "<center>", $mensaje );
  22. $mensaje= str_replace( "[/center]", "</center>", $mensaje );
  23. }
  24. if( strchr( $mensaje, "[img]" ) &&  strchr( $mensaje, "[/img]" ) )
  25. {
  26. $mensaje= str_replace( "[img]", "<img class=\"img_post\" src=\"", $mensaje );
  27. $mensaje= str_replace( "[/img]", "\">", $mensaje );
  28. }
  29. //OJO, los '\' solo los puse para que salieran en este POST, ya que si quito los '\'
  30. //el codigo sale CORTADO en este post...
  31. if( strchr( $mensaje, "\[code\]" ) ||  strchr( $mensaje, "\[/code\]" ) )
  32. {
  33. $mensaje= str_replace( "\[code\]", "<div id=\"etiqueta_code\">", $mensaje );
  34. $mensaje= str_replace( "\[/code\]", "</div>", $mensaje );
  35. }
  36.  
  37. //<object width="425" height="344">
  38. //<param name="movie" value="http://www.youtube.com/v/Iur_NBn6b2k&hl=en&fs=1"></param>
  39. //<param name="allowFullScreen" value="true"></param>
  40. //<embed src="http://www.youtube.com/v/Iur_NBn6b2k&hl=en&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed>
  41. //</object>
  42. /*if( strchr( $mensaje, "[youtube]" ) ||  strchr( $mensaje, "[/youtube]" ) )
  43. {
  44. $mensaje= str_replace( "[youtube]", "", $mensaje );
  45. $mensaje= str_replace( "[/youtube]", "", $mensaje );
  46. }*/
  47.  
  48. if( strchr( $mensaje, "\n" ) )
  49. {
  50. $mensaje= str_replace( "\n", "<br>", $mensaje );
  51. }
  52. if( strchr( $mensaje, "\t" ) )
  53. {
  54. $mensaje= str_replace( "\t", "&nbsp;&nbsp;&nbsp;", $mensaje );
  55. }
  56. if( strchr( $mensaje, "<script>" ) )
  57. {
  58. $mensaje= str_replace( "<script>", htmlentities( "<script>", ENT_QUOTES ), $mensaje );
  59. }
  60. if( strchr( $mensaje, "</script>" ) )
  61. {
  62. $mensaje= str_replace( "</script>", htmlentities( "</script>", ENT_QUOTES ), $mensaje );
  63. }
  64. return $mensaje;
  65. }
  66. ?>

Funcion proteger_cadena()
Código
  1. <?php
  2. function proteger_cadena( $cadena )
  3. {
  4. $out=$cadena;
  5.  
  6. if( strchr( $out, "<" ) ) //con esto vitamos injeccion de codigo
  7. $out= str_replace( "<", htmlentities("<", ENT_QUOTES), $out );
  8. if( strchr( $out, ">" ) ) //con esto vitamos injeccion de codigo
  9. $out= str_replace( ">", htmlentities(">", ENT_QUOTES), $out );
  10.  
  11. $out= msg2msgtags($out);
  12.  
  13. return $out;
  14. }
  15. ?>

Codigo de Ejemplo, antes de que el mensaje de guarde en la base de datos:

Código:
<?php
$msg= proteger_cadena($_POST["mensaje_noticia"]);

//generamos array de insercion mysql
$valores= array(
"autor"=>"'". $_SESSION["log_usr"]. "'",
"titulo"=>"'". htmlentities($_POST["titulo_noticia"], ENT_QUOTES). "'",
"mensaje"=>"'". htmlentities($msg, ENT_QUOTES). "'",
"fecha"=>"'". time(). "'",
"menu"=>"'". htmlentities($buf_menu["NOMBRE"], ENT_QUOTES). "'",
"sección"=>"'". htmlentities($buf_sec["NOMBRE"], ENT_QUOTES). "'" );

unset($msg);

if( insertar_bdd( "NOTICIAS", $valores )==0 )
echo "Error en la Insercion de los Datos.";
else
echo "Datos Agregados con Exito.";
?>


« Última modificación: 14 Agosto 2008, 01:02 am por Diabliyo » En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Como crear Tags BBCode para YOUTUBE ??
« Respuesta #1 en: 23 Julio 2008, 06:17 am »

Sera que no me he explicado bien o que onda ??, vaya, lo que trato de hacer es algo exatamente igual a como si pusieramos un video youtube pero usando BBCode... Si se fijan un poquito, al contestar o poner un POST, aparece un icono con el logotipo de YOUTUBE y pone algo asi:

\[youtube=425,350\]\[/youtube\]

En fin, no es dificil poner eso, sino, como interpretarlo para que quede listo y visible el video ??

bye bye


En línea

Nakp
casi es
Ex-Staff
*
Desconectado Desconectado

Mensajes: 6.336

he vuelto :)


Ver Perfil WWW
Re: Como crear Tags BBCode para YOUTUBE ??
« Respuesta #2 en: 31 Julio 2008, 07:42 am »

pues... copia el embed de youtube y haces que la url que coloque entre las tags las ponga en

src="aqui"

vamos.. no es dificil si ha hiciste una para img es prácticamente lo mismo ;)
En línea

Ojo por ojo, y el mundo acabará ciego.
Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Como crear Tags BBCode para YOUTUBE ??
« Respuesta #3 en: 13 Agosto 2008, 22:14 pm »

pues... copia el embed de youtube y haces que la url que coloque entre las tags las ponga en

src="aqui"

vamos.. no es dificil si ha hiciste una para img es prácticamente lo mismo ;)

Me pregunto: "has echo lo que yo pregunto ?"... Ya que si fuera asi de simple, no estuviera preguntando :S daaaa

Por favor si no van a colaborar mejor evitense la pena y peresa de escribir :S !!

bye bye
En línea

Freeze.


Desconectado Desconectado

Mensajes: 2.732



Ver Perfil WWW
Re: Como crear Tags BBCode para YOUTUBE ??
« Respuesta #4 en: 13 Agosto 2008, 22:22 pm »

Estoy usando esto actualmente para mi BBCode ;)

Código
  1. function BBcode($str) {
  2.    $simple_search = array(
  3.                '/\[b\](.*?)\[\/b\]/is',
  4.                '/\[i\](.*?)\[\/i\]/is',
  5.                '/\[u\](.*?)\[\/u\]/is',
  6. '/\[s\](.*?)\[\/s\]/is',
  7.                '/\[url\=(.*?)\](.*?)\[\/url\]/is',                        
  8.                '/\[url\](.*?)\[\/url\]/is',                            
  9. '/\[align\=(left|center|right|justify)\](.*?)\[\/align\=(left|center|right|justify)\]/is',
  10.                '/\[img\](.*?)\[\/img\]/is',                            
  11.                '/\[font\=(.*?)\](.*?)\[\/font\]/is',                    
  12.                '/\[size\=(.*?)\](.*?)\[\/size\]/is',                    
  13.                '/\[color\=(.*?)\](.*?)\[\/color\]/is',
  14. '/\[code\](.*?)\[\/code\]/is',
  15. '/\[quote\](.*?)\[\/quote\]/is',
  16. '/\[youtube](.*?)\[\/youtube\]/is',
  17.                );
  18.    $simple_replace = array(
  19.                '<strong>$1</strong>',
  20.                '<em>$1</em>',
  21.                '<u>$1</u>',
  22. '<strike>$1</strike>',
  23.                '<a href="$1">$2</a>',
  24.                '<a href="$1">$1</a>',
  25.                '<div style="text-align:$1;">$2</div>',
  26.                '<img src="$1" />',
  27.                '<span style="font-family:$1;">$2</span>',
  28.                '<span style="font-size:$1;">$2</span>',
  29.                '<span style="color: $1;">$2</span>',
  30. '<span id="code">$1</div>',
  31. '<span id="quote">$1</div>',
  32. '<span style="display:block;"><object width="350" height="275"><param name="movie" value="http://www.youtube.com/v/$1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" wmode="transparent" width="350" height="275"></embed></object></span>',
  33.                );
  34.  
  35.    $str = htmlentities($str);
  36. $str = preg_replace ($simple_search, $simple_replace, $str);
  37. $str = nl2br($str);
  38. $str = str_replace("<br />","",$str);
  39.    return $str;
  40. }

Y me funciona sin problemas ;)

Aca te hago uno para tu youtube ;) A mi tambien me hace falta asi que no tengo perdida :xD

Código
  1. //Esto lo agregas en el primer arrray:
  2.  
  3. '/\[youtube](.*?)\[\/youtube\]/is',
  4.  
  5. //Esto en el segundo array:
  6.  
  7. '<span style="display:block;"><object width="350" height="275"><param name="movie" value="http://www.youtube.com/v/$1"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/$1" type="application/x-shockwave-flash" wmode="transparent" width="350" height="275"></embed></object></span>',
  8.  

Me avisas si te funciona ;)

Se usa como [youtube]Id-del-video[/youtube] ;)

Tambien debes agregar esto:
$str = str_replace("<br />","",$str);
Antes del:
 return $str;
« Última modificación: 13 Agosto 2008, 22:57 pm por Freeze. » En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.441


shell# _


Ver Perfil WWW
Re: Como crear Tags BBCode para YOUTUBE ??
« Respuesta #5 en: 14 Agosto 2008, 01:02 am »

Me salvaste la vida Freeze, ahorita en un ratito mas cuelgo el codigo resultante :D !!...

En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines