Back to top

Autore Topic: Nascondere email su un form mail  (Letto 3474 volte)

Offline salimba

  • Nuovo arrivato
  • *
  • Post: 42
    • Mostra profilo
Nascondere email su un form mail
« il: 15 Giu 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);
?>

Codice: [Seleziona]
<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>



Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Nascondere email su un form mail
« Risposta #1 il: 15 Giu 2010, 08:32:32 »
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
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline salimba

  • Nuovo arrivato
  • *
  • Post: 42
    • Mostra profilo
Re:Nascondere email su un form mail
« Risposta #2 il: 15 Giu 2010, 11:09:55 »
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

mau_develop

  • Visitatore
Re:Nascondere email su un form mail
« Risposta #3 il: 15 Giu 2010, 11:32:15 »
... ma in joomla non esiste l'email cloacking?
http://forum.joomla.org/viewtopic.php?f=432&t=244652

M.

Offline mmleoni

  • Global Moderator
  • Instancabile
  • *****
  • Post: 5547
  • Sesso: Maschio
  • Just another *nix coder/sysadmin...
    • Mostra profilo
Re:Nascondere email su un form mail
« Risposta #4 il: 15 Giu 2010, 16:59:22 »
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.
mmleoni web consulting - creazione siti web aziendali ed e-commerce avanzati - sviluppo moduli e componenti Joomla

Offline salimba

  • Nuovo arrivato
  • *
  • Post: 42
    • Mostra profilo
Re:Nascondere email su un form mail
« Risposta #5 il: 16 Giu 2010, 16:47:19 »
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.

Codice: [Seleziona]
<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();

Codice: [Seleziona]
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!

 



Web Design Bolzano Kreatif