Joomla.it Forum
Non solo Joomla... => Sviluppo => : salimba 15 Jun 2010, 08:23:57
-
Salve a tutti,
sto sviluppando su un componente per joomla in php/tpl (Jomestate).
Ho un grande problema!
Ho un form dove gli utenti si possono contattare; il form sottostante scrive una mail all'utente che ha inserito ad esempio un annuncio "{$user_fromid->email}".
Se vado nel sorgente pagina vedo l'indirizzo email dell'utente che dovrebbe essere privato.
Come faccio a nascondere l'indirizzo email?
Grazie a tutti
Ho provato ad utilizzare questo codice php per codificare l'email ma sembra che i file .tpl.php ragionano in modo strano:
<?php
$str = '{$user_fromid->email}';
echo base64_encode($str);
?>
<form id="em" action="java-script:void(null);">
{if $user->get('gid') != 0}
<table cellpadding="5" cellspacing="0" border="0" width="100%" id="jetablelatest">
<tr>
<td align="left">
<p><label for="Price">{JText text="JE_EMAILFORM_FROM"}</label> <input type="text" name="name" size="30" value="{$user->username}"></p>
<p><label for="Price">{JText text="JE_EMAILFORM_EMAIL"}</label> <input type="text" name="from" size="30" value="{$user->email}"></p>
<p><label for="Price">{JText text="JE_EMAILFORM_PHONE"}</label> <input type="text" name="phone" size="30"></p>
<p><label for="Price">REF Number</label> <input type="text" name="ref_oggetto" size="30" class="required" value="es. REF123456789"></p>
<p><label for="Price">{JText text="JE_EMAILFORM_MESSAGE"}</label><textarea name="body" cols="25" rows="7"></textarea></p>
<p><input type="button" value="{JText text='JE_EMAILFORM_SENT'}" class="submit" onClick="xajax_JomestateController.sendemail(xajax.getFormValues('em'));"></p>
<input type="hidden" name="subject" value="{$item->ad_ref} - {JText text='JE_EMAILFORM_SUBJECT'}">
<input type="hidden" name="to" value="{$user_fromid->email}" size="30">
<p><div id="email"></div></p>
</td>
</tr>
</table>
</form>
-
non puoi, e non è usare base64_encode abbia molto senso.
dovresti passare alla funzione l'id dell'utente di destinazione e recuperare la relativa mail lato server: solo in questo modo l'indirizzo resta realmente privato.
ciao,
marco
-
Grazie!
Qualche consiglio per come recuperare la mail lato server??
Non saprei proprio da dove inziare.
Grazie veramente, sto impazzendo e non riesco a risolvere il problema
-
... ma in joomla non esiste l'email cloacking?
http://forum.joomla.org/viewtopic.php?f=432&t=244652
M.
-
sì, ma non funziona per gli input hidden ;)
devi vedere quale pagina viene chiamata dalla ajax_JomestateController.sendemail(); non conosco il componente, e quindi non saprei che altro dirti...
ciao.
-
Prima di tutto grazie a tutti per l'aiuto.
Avevo in mente una cosa.
Avevo pensato di caricare l'id dell'utente invece della mail e poi quando premo sul pulsante invia spedisce la mail all'utente con quello specifico id.
<form id="em" action="java-script:void(null);">
{if $user->get('gid') != 0}
<table cellpadding="5" cellspacing="0" border="0" width="100%" id="jetablelatest">
<tr>
<td align="left">
<p><label for="Price">{JText text="JE_EMAILFORM_FROM"}</label> <input type="text" name="name" size="30" value="{$user->username}"></p>
<p><label for="Price">{JText text="JE_EMAILFORM_EMAIL"}</label> <input type="text" name="from" size="30" value="{$user->email}"></p>
<p><label for="Price">{JText text="JE_EMAILFORM_PHONE"}</label> <input type="text" name="phone" size="30"></p>
<p><label for="Price">REF Number</label> <input type="text" name="ref_oggetto" size="30" class="required" value="es. REF123456789"></p>
<p><label for="Price">{JText text="JE_EMAILFORM_MESSAGE"}</label><textarea name="body" cols="25" rows="7"></textarea></p>
<p><input type="button" value="{JText text='JE_EMAILFORM_SENT'}" class="submit" onClick="xajax_JomestateController.sendemail(xajax.getFormValues('em'));"></p>
<input type="hidden" name="subject" value="{$item->ad_ref} - {JText text='JE_EMAILFORM_SUBJECT'}">
<input type="hidden" name="to" value="{$user_fromid->id}" size="30">
<p><div id="email"></div></p>
</td>
</tr>
</table>
</form>
Qui sotto la funzione che carica ajax_JomestateController.sendemail();
function sendemail($tablica)
{
$this->tpl =& new Smarty_WebApp('homepage');
$objResponse = new xajaxResponse();
jimport( 'joomla.mail.helper' );
$tablica['body'] = JMailHelper::cleanBody($tablica['body']);
$tablica['subject'] = JMailHelper::cleanSubject($tablica['subject']);
$tablica['to'] = JMailHelper::cleanAddress($tablica['to']);
$tablica['body'] = "From: ".$tablica['name']."<br> Numero di telefono: " .$tablica['phone']."<br> REF Oggetto:" .$tablica['ref_oggetto']."<br><br><br> Messaggio: ".$tablica['body'];
if (!JMailHelper::isEmailAddress($tablica['from']) )
{
$objResponse->assign('email', "innerHTML", '<p id="error">Incorretto indirizzo email!.</p>' );
}
elseif ( JUtility::sendMail($tablica['from'], $tablica['name'], $tablica['to'],$tablica['subject'], $tablica['body'],$mode = true ) !== true )
{
$objResponse->assign('email', "innerHTML", '<p id="error">Errore, email non inviata.</p>' );
} else {
$objResponse->script("document.getElementById('em').reset()");
$objResponse->assign('email', "innerHTML", '<p id="success">Grazie, email inviata.</p>' );
}
return $objResponse;
}
}
//XAJAX
$card = new JomestateController();
$xajax = new Xajax_WebApp();
$xajax->register( XAJAX_CALLABLE_OBJECT, $card );
$xajax->processRequest();
$document =& JFactory::getDocument();
$document->addCustomTag($xajax->getJavascript());
Il problema è che non so convertire l'id con l'indirizzo email.
Qualche idea?
GRAZIE!