Ver Mensaje Individual
  #4 (permalink)  
Antiguo 11/03/2008, 12:50
StrikeFreedom
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 4 meses
Puntos: 2
Re: leer codigo HTML en cajas de texto en php

He leido el FAQ pero esa no es la solucion, es que los datos ya llegan sin HTML
Estoy modificando el codigo fuente del PhpLinkDirectory, y este usa Smarty y las librerias Prototype.

archivo : sendmail.tpl

Código PHP:
{* Error and confirmation messages *}
{include 
file="messages.tpl"}

{
strip}

<
div class="block">
   <
form method="post" action="" >
   <
table class="formPage">
   <
tbody>
      <
tr>
         <
td class="label required"><label for="TITLE">{l}Name{/l}:</label></td>
         <
td class="smallDesc">
          {
$name}          </td>
      </
tr>
      <
tr>
         <
td class="label {if $smarty.const.REQUIRE_URL}required{/if}"><label for="URL">{l}Mail{/l}:</label></td>
         <
td class="smallDesc">{$email}
           </
td>
      </
tr>
      <
tr>
         <
td class="label"><label for="DESCRIPTION">{l}HTML{/l}:</label></td>
         <
td class="smallDesc"><textarea name="html" id="html" rows="6" cols="50" class="text">{$html}</textarea></td>
      </
tr>
     
   </
tbody>

   <
tfoot>
      <
tr>
         <
td>&nbsp;</td>
         <
td>
          <
input type="button" id="submit" name="Submit" value="Send" class="button" onClick="sendMailAjax();">
            <
div id="mensaje">     
            </
div>
        </
td>
      </
tr>
   </
tfoot>
   </
table>
   </
form>
</
div>
{/
strip
sendmail.js

Código PHP:
function sendMailAjax(){
    
        
//capturo el textarea que tiene el html    
        
var html    =  $F("html");        
        
        var 
url   "sendmailajax.php";
    
        var 
params            'html='+html;

        
//envía datos por Ajax
        
var ajx = new Ajax.Updater("mensaje",

                                                
url,

                                                {
method:"post",

                                                
parameters:params}

                                        );
        

sendmailajax.php

Código PHP:
session_start();

//el body es el HTML
$body $_POST['html'];

$maildestino $_SESSION['EMAIL'];
$subject $_SESSION['subject'];

///mail del editor o administrador, en este caso he eligo que siempre del administrador
$mailadmin $_SESSION['mailadmin'];

$headers "From: ".$mailadmin."\r\nContent-type: text/html\r\n";
$headers .= "MIME-version: 1.0\n";  

$m mail($maildestino,$subject,$body,$headers);

if (
$m){
echo   
" mail enviado";
}else{
echo 
"el mail no se pudo enviar";

Y este es el HTML que se muestra en el textarea:

Código PHP:
Tu web ha sido agregada nuestro directorio
Ahora agrega este codigo a tu web
:
<
br/>
<
a href="www.eldirectorio.com/Ocio/Musica/Cantautores/">tu web en topbloglatinos</a
Al correo solo llega este texto :Tu web ha sido agregada nuestro directorio
Ahora agrega este codigo a tu web:

pero no llega el HTML.

Ya hice la prueba imprimiendo el $_POST['html']; y solo llega ese texto. creo que la solucion seria poner una propiedades al formulario, pero lo malo es que estoy usando AJAX con protototype, creo que debo buscar unas propiedades del prototype que me permitan enviar correctamente el formulario.

Pueden ayudarme?