Foros del Web » Programando para Internet » PHP »

problema con comillas

Estas en el tema de problema con comillas en el foro de PHP en Foros del Web. Hola a todos: Tengo un problemilla raro que no se como solucionar... estoy mandando un e-mail en formato HTML a través de un formulario en ...
  #1 (permalink)  
Antiguo 06/04/2008, 15:06
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Pregunta problema con comillas

Hola a todos:

Tengo un problemilla raro que no se como solucionar... estoy mandando un e-mail en formato HTML a través de un formulario en el que inserto todo el formato html dentro de un input hidden.

En el input hidden esta una variable llamada $answer la cual es el fomato HTML que llega al e-mail. El problema esta en que el HTML tiene javascript y HTML en el y al momento de enviarlo queda un enredo con las comillas (el e-mail interpreta otras comillas que yo nunca cree) .

Es super enredado pero ese es el problema que me queda asi todo

miren:
Código PHP:
<?php
echo "
 <input type=\"text\" name=\"answer\" value=\"$answer\">
"
;
?>
ahi esta el input que tiene la variable $answer

aqui esta algo de la variable $answer:

Código PHP:
$answer "<br>
<table border=1 cellpadding=0 cellspacing=0 bordercolor=#555555 width=680>..."
;
$answer .= "  <tr> 
    <td align=center width=80>..."
;
$answer .= "  <tr>
    <td colspan=5 align=right>  
     <input type=BUTTON name=CALCULAR value=CALCULAR class=text onClick=[B]\"[/B]"
;
foreach(
$carrito as $k => $v){ 
$answer .= "javascript: document.getElementById('total$o').value = document.getElementById('valor$o').value * document.getElementById('cantidad$o').value;";
$o++; 
}; 
$answer .= "[B]\"[/B]> 
si se fijan no ocupo cremillas en el codigo, solo en el onclick ya que es obligacion para que funcione (\") y en los javascript (').

pero en e-mail me llaga asi

los (\") me los transforma bien, pero el (') queda (\') textual y se desordena todo el código.

La pregunta es como puedo hacer para que las cremillas no se transformen. ??
__________________
Adios ...!!!!
  #2 (permalink)  
Antiguo 06/04/2008, 15:18
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: problema con comillas

Hola Amigo,

Para no tener tantos enriedos con comillas dobles y simples en el caso de que una variable contenga HTML como te sucede a ti haz así:


Código PHP:
$answer = <<<HTML
 
<br>
<table border="1" cellpadding="0" cellspacing="0" bordercolor="#555555" width="680">...
<tr>  
    <td align="center" width="80">... 
 
..... todo el html que falta.....
 
HTML; 
Fíjate que no es necesario escapar comillas simples ni doble de todo lo que esté entre <<<HTML ..... y HTML;

Salud!
  #3 (permalink)  
Antiguo 06/04/2008, 15:20
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Re: problema con comillas

totalmente de acuerdo pero si es necesario en la ejecucion del onclick y en los get.documentbyId('namevar').value;

y ahi este el error
__________________
Adios ...!!!!
  #4 (permalink)  
Antiguo 06/04/2008, 15:23
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 4 meses
Puntos: 11
Re: problema con comillas

Puedes incluir el get.documentbyId('namevar').value en el html como te dije sin escapar las comlillas simples.
Se imprimirá correctamente y se ejecutará con javascript.
  #5 (permalink)  
Antiguo 06/04/2008, 15:48
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Re: problema con comillas

existia una forma de poner comillas a gusto de uno sin que influyera en echo ... pero no me acuerdo especificamente como era

creo que era algo asi

echo algoaca" mensaje con comillas a gusto de uno ' " ' 2' " " " ' ' ' " " ' " " algoaca" ;
__________________
Adios ...!!!!
  #6 (permalink)  
Antiguo 06/04/2008, 16:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 222
Antigüedad: 18 años, 5 meses
Puntos: 2
Re: problema con comillas

en programación, en cuanto menos te lies mejor:

donde pones


Código PHP:
<?php 
echo 
 <input type=\"text\" name=\"answer\" value=\"$answer\"> 
"

?>
usa
<input type="text" name="answer" value="<?php echo $answer ?>">

de esta forma, incluso si usas dreamweaver puedes ver como te queda la pagina.

otra cosa.... me puedes explicar qué cojones hace cuando pulsas en el boton calcular???
que yo sepa " no es una instrucción válida, asi que no lo entiendo. por lo demás, no necesitas escapar las comillas simples ya que php las mete tal cual.

Si se transforma es por la codificacion cuando envias el mail. Eso tendrás que configurarlo en la cabecera de la funcion mail()

Última edición por jovendigital; 06/04/2008 a las 16:47
  #7 (permalink)  
Antiguo 07/04/2008, 19:58
Avatar de BLAH !!  
Fecha de Ingreso: septiembre-2003
Ubicación: Región Metropolitana, Santiago, Chile
Mensajes: 706
Antigüedad: 20 años, 7 meses
Puntos: 16
Re: problema con comillas

no puede ser como dices porque esta dentro del htmlque se manda con la funcion mail (en una variable no en un echo)
__________________
Adios ...!!!!
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 12:56.