Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal
Muerte

[FIX] Evitar que te publiquen shout en blanco

Recommended Posts

Yo lo preferiría que se reemplazara con un solo nl y no con el tag html br para guardar en la bd, después al mostrar en html nl2br se encargaría del resto xD

Igual funciona, esperemos que se aplique para la descarga oficial :) 

Compartir este post


Enlace al post
Compartir en otros sitios
hace 9 minutos, Kmario19 dijo:

Yo lo preferiría que se reemplazara con un solo nl y no con el tag html br para guardar en la bd, después al mostrar en html nl2br se encargaría del resto xD

Igual funciona, esperemos que se aplique para la descarga oficial :) 

pues como usa la función de bbcode se convertiría de igual manera a etiqueta y se guarda de esa forma, solo respete lo que esta por defecto pero si, seria muchisimo mejor asi jaja

  • Me gusta 1
  • Downvote 1

Compartir este post


Enlace al post
Compartir en otros sitios

No entiendo el código. Solo con trim() ya solucionas el problema. Si el usuario escribe \n, \r o \t el shout NO está vacío, no entiendo porque quieres que el mensaje muestre que sí lo está. Los caracteres \n, \r y \t escritos en un campo de texto NO equivalen a un salto de línea, return o tabulación, ¿para qué reemplazarlos o eliminarlos?

 

Lo puedes comprobar con este pequeño ejemplo: http://main.xfiddle.com/e76a9f05/ejemplo_trim.php

 

Código del ejemplo:

<?php
$shout = !empty($_GET['shout']) ? $_GET['shout'] : '';
$shout = trim($shout);
?>
<form>
	<textarea name="shout"><?php echo $shout ?></textarea>
	<br>
	<button>Enviar</button>
</form>
<hr>
<p>
<?php
if($shout) {
	echo '<b>echo($shout): </b>';
	echo($shout);
	echo '<br><br><b>var_dump($shout): </b>';
	var_dump($shout);
	echo '<br><br>';
}
echo '<b>¿Está vacio?: </b>';
var_dump(!$shout);
?>
</p>

 

Compartir este post


Enlace al post
Compartir en otros sitios
hace 25 minutos, Rhuan dijo:

No entiendo el código. Solo con trim() ya solucionas el problema. Si el usuario escribe \n, \r o \t el shout NO está vacío, no entiendo porque quieres que el mensaje muestre que sí lo está. Los caracteres \n, \r y \t escritos en un campo de texto NO equivalen a un salto de línea, return o tabulación, ¿para qué reemplazarlos o eliminarlos?

 

La cosa es que trim elimina espacios al inicio y al final de la cadena pero no en medio, esto es lo que hizo @Muerte. Incluso en tu ejemplo se puede notar que los saltos de líne concurrentes en medio de la cadena persisten:

image.png

La idea del fix es dejar un solo salto de línea.

Pdata: Cambié la etiqueta <p> por <pre> para poder apreciar los saltos de línea.

Compartir este post


Enlace al post
Compartir en otros sitios
hace 34 minutos, Kmario19 dijo:

 

La cosa es que trim elimina espacios al inicio y al final de la cadena pero no en medio, esto es lo que hizo @Muerte. Incluso en tu ejemplo se puede notar que los saltos de líne concurrentes en medio de la cadena persisten:

image.png

La idea del fix es dejar un solo salto de línea.

 

Ah, no había entendido eso de eliminar los saltos de línea del medio. Pero aún así se puede saltar saltar fácilmente, por ejemplo, poniendo un espacio antes del salto de línea. Ejemplo: https://regex101.com/r/1ZNTut

 

Y sigo sin verle sentido a cambiar los saltos de línea por <br> y reemplazar "\n, \r,  y \t" por "n, r, y t".

 

Edito:

Me acabo de dar cuenta que su código tampoco hace lo que dices, no reemplaza los saltos de líneas seguidos por un solo <br> sino que reemplaza cada uno de los saltos que están seguidos por un <br> diferente. Para hacer lo que tú dices sería algo así: /([\r\n])+/ pero todavía tiene el error que he mencionado.

Editado por Rhuan
  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios
hace 2 horas, Rhuan dijo:

Ah, no había entendido eso de eliminar los saltos de línea del medio. Pero aún así se puede saltar saltar fácilmente, por ejemplo, poniendo un espacio antes del salto de línea. Ejemplo: https://regex101.com/r/1ZNTut

Tienes razón, ahí probe colocando |\s+ (actualicé el ejemplo) :ph34r:

 

hace 2 horas, Rhuan dijo:

Y sigo sin verle sentido a cambiar los saltos de línea por <br> y reemplazar "\n, \r,  y \t" por "n, r, y t".

Yo tampoco veo sentido pero al menos ya no tendrá saltos de línea exagerados (? -nose

 

hace 2 horas, Rhuan dijo:

Me acabo de dar cuenta que su código tampoco hace lo que dices, no reemplaza los saltos de líneas seguidos por un solo <br> sino que reemplaza cada uno de los saltos que están seguidos por un <br> diferente. Para hacer lo que tú dices sería algo así: /([\r\n])+/ pero todavía tiene el error que he mencionado.

No he probado, y ya que estás en eso prueba con el ejemplo que hiciste en regex.com a ver si funciona a ver si le sacamos una solución más óptima :ZIqdO:

  • Me gusta 1

Compartir este post


Enlace al post
Compartir en otros sitios

me da gusto que se interesen por solucionar este problema por aqui dejo esto si alguien tiene duda de que se esta hablando y quizas ya quede mas claro nuestro dilema jeje y bueno hasta ahora yo le di esa solucion pero seguro que un programador mas experimentado podra encontrar otra solucion yo personalmente me quedo con esta porque prove muchas y la que mas me gusto fue esta en fin

 

http://php.net/manual/es/function.str-replace.php

 

http://php.net/manual/es/function.preg-replace.php

 

http://php.net/manual/es/function.trim.php

 

en fin por ahi puede que esten confundiendo las funciones en si, y mi idea de primero comprobar si esta vació el campo, después limpiarlo del exceo de saltos de linea y combinacion de caracteres para meter saltos de linea o tabulaciones, pero no creo estar mal porque taringa hace lo mismo y bueno ami me molesta que se aproveche de cosas tan tontas para molestar en los sitios y prueba de eso es que yo lo hice en compartinga.com jeje y no creo que al dueño le diera mucho gusto porque cada ves me eliminaba los shouts larguisimos jaja

  • Me gusta 1
  • Downvote 1

Compartir este post


Enlace al post
Compartir en otros sitios

Registra una cuenta o conéctate para comentar

Debes ser un miembro de la comunidad para dejar un comentario


  • Similar Content

    • Por Miguel92
      Ir a templates/modules/m.agregar_sidebar.tpl y borrar (solo si realizan la actualización de los videos tutoriales)
      <script type="text/javascript" src="{$tsConfig.default}/js/jquery.form.js"></script> En templates/sections/main_header.tpl y reemplazamos
      <link href="{$tsConfig.css}/{$tsPage}.css" rel="stylesheet" type="text/css" /> por esto
      {if $tsPage != 'home' && $tsPage != 'posts' && $tsPage == 'portal' || $tsPage == 'admin' || $tsPage == 'moderacion' || $tsPage == 'fotos'} <link href="{$tsConfig.css}/{$tsPage}.css" rel="stylesheet" type="text/css" /> {/if} || $tsPage == 'página' => esto se agrega en el caso que la página tenga hoja de estilo
      && $tsPage != 'página' => esto se agrega en el caso que la página no tenga hoja de estilo

      Para el archivo que estaba(m.posts_content.tpl) pueden usar directamente Plugin: JS-Social compartir posts "Redes Sociales"
       
      Y ahora en default/js/acciones.js en la línea 1229 borramos esto (no es obligatorio hacerlo, si es necesario si usan bootstrap 4)
          $('.autogrow').css('max-height', '500px').autogrow(); Y ahora en default/js/jquery.plugins.js en la línea 43, 44 las borramos
       
      Ahora vamos a inc/class/c.core.php y debajo de (cualquier versión de phpost risus)
              $this->settings['js'] = $this->settings['tema']['t_url'].'/js';
      y agregamos esto
              $this->settings['smiles'] = $this->settings['tema']['t_url'].'/images/smiles';  
      Ahora buscamos en inc/ext/bbcode.inc.php y buscamos (cualquier versión de phpost risus)
              $pre = '<img src="'.$tsCore->settings['default'].'/images/smiles/';
      y la reemplazamos por
              $pre = '<img src="'.$tsCore->settings['smiles'].'/';  
    • Por Miguel92
      Si por alguna razón llegaran a tener un problema con la primera línea, esta al final del archivo perfil.js línea 578
      $('textarea[name=add_wall_comment]').on("keypress",function(k){         if(k.which == 13){             var pub_id = $(this).attr('pid');             muro.comentar(pub_id);             return false;         }     });     // ADJUNTAR     $('.adj').click(function(){         var aid = $(this).attr('aid');     })     // RESPUESTAS     $('.comentar').css('max-height', '200px').autogrow().css('height','14px');     //     $('input[name=hack]').on("focus",function(){         $(this).hide();         $(this).parent().find('div.formulario').show();         var pub_id = $(this).attr('pid');         //         $('#cf_' + pub_id).focus()     })  });   lo reemplazan por este!!
       $("textarea[name=add_wall_comment]").on("keypress",function(a){         if(13==a.which){             var t=$(this).attr("pid");             return muro.comentar(t),!1         }     });     $(".adj").click(function(){         $(this).attr("aid")     });     $(".comentar").css("max-height","200px").autogrow().css("height","14px");     $("input[name=hack]").on("focus",function(){         $(this).hide(),$(this).parent().find("div.formulario").show();         var a=$(this).attr("pid");         $("#cf_"+a).focus();     }); });  
  • Navegando Recientemente   0 miembros

    No registered users viewing this page.

  • Patrocinador



  • ×