Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Leguim en 5 Septiembre 2021, 06:22 am



Título: [Pregunta]: Correcto uso de la función addslashes
Publicado por: Leguim en 5 Septiembre 2021, 06:22 am
Hola,

estoy teniendo problemas con lo siguiente:
Código
  1. $text = Limpiar($_POST['input_text']); // limpio el dato (escapo html)
  2. echo '<br>'.$text.'<br>';
  3.  
  4. ?>
  5. <h3><?php echo($text); ?></h3>
  6. <textarea><?php echo($text); ?></textarea>
  7. <script type="text/javascript">
  8. alert('<?php echo($text); ?>'); // acá vienen los problemas
  9. </script>
  10. <?php
  11.  

Si el texto fuera: "mi texto ' es este" esto me daría problemas en la línea de alert(); ya que no se está escapando las comillas simples, por lo que estaba pensando que entonces tendría que hacer uso de addslashes para escapar estas comillas simples o dobles si lo fueran cuando se va a poner como parametro de alguna función de javascript.

No estoy seguro si esta es una manera efectiva, estuve viendo algunos vídeos pero lo que ellos hacen es usar addslashes antes de guardar ese dato a la bd. El problema que encuentro con esto es que cada vez que yo vaya a querer mostrar esa cadena por pantalla me va a salir... "mi texto \' es este".

Y tendría que usar stripslashes (para sacar los escapes a las comillas) cada que yo quiero usar ese dato mientras no sea en una función javascript como parámetro.

Esto me parece muy tedioso que a cada rato tenga que estar usando stripslashes, redondeando no estoy seguro si el enfoque correcto es este o debería sólo usar addslashes cuando ese dato se va a usar como parámetro en una función javascript y nada más.

Estoy algo perdido.


Título: Re: [Pregunta]: Correcto uso de la función addslashes
Publicado por: Danielㅤ en 5 Septiembre 2021, 09:31 am
Hola, estás usando una mala práctica que es poner muchos <?php ... ?> mezclados con código HTML.

Por otro lado para lograr lo que deseas deberías guardar primero el dato en una variable y después usar esa variable dentro del alert():

Código
  1. var textAlert = <?php echo($text); ?>
  2. alert(textAlert);
  3.  

Prueba esa modificación y nos comentas.


Saludos