Newsgroup: it.comp.www.php
Titolo: php e flash

Salve a tutti
Premetto di ignorare completamente php e di essere alquanto arrugginito con 
flash.
Devo fare un form per mandare e-mail verso un indirizzo fisso.
In una guida ho trovato uno script già fatto che faceva al caso mio, l'ho 
modificato a mio uso, ho creato il filmato in flash e funziona... quasi 
tutto.
La mail viene correttamente composta ed inviata e giunge perfettamente a 
destinazione. Il problema è che il responso è sempre negativo, o almeno, 
flash lo interpreta come tale così non riesco a gestire un eventuale errore 
di invio.
Questo è lo script php (il file si chiama mail_sender.php):
<?php
$a = "
m...@mail.net
";
$intestazioni = "From: $sender_name <$sender_mail> \r \n";
$message = str_replace("%20","\n",$message);
if(mail($a, "Richiesta Preventivo", $message, $intestazioni)){
echo "response=true";
}else{
echo "response=false";
}
?>
E questo è l'Action Script inserito nel pulsante di invio nel form in flash:
on (release){
 var container = new LoadVars();
 var loader = new LoadVars();
 _
root.name
 = _root.txtnome.text + " " + _root.txtcognome.text;
 container.sender_name = _
root.name
;
 container.sender_mail = _root.txtmail.text;
 container.message = "Cliente: " + _root.txtnome.text + " " + 
_root.txtcognome.text + "%20Citta: " + _root.txtcitta.text + "%20Telefono: " 
+ _root.txttelefono.text + "%20e-mail: " + _root.txtmail.text;
 container.sendAndLoad('mail_sender.php', loader, "GET");
 loader.onLoad = function(success){
  if(success && this.response){
   _root.txtnome.text = "Mail inviata!";
  }else{
   _root.txtnome.text = "Errore!";
  }
 }
}
Grazie per ogni suggerimento
-- 
Skywalker Senior

 if(mail($a, "Richiesta Preventivo", $message, $intestazioni)){
Qui probabilmente e` il register_globals a off che ti salva, e stai 
lasciando tutti i campi vuoti, ragion per cui il mail non ha un indirizzo 
di destinazione.
Ricorda comunque che mail() torna false praticamente solo quando non 
riesce a contattare il server di posta. In tutti gli altri casi (dati 
sbagliati, dati giusti, destinatario inesistente, ecc.) torna, quindi 
puoi farci affidamento solo fino a un certo punto.
Fai fare il lavoro a qualcuno che lo sa fare. Come dicevo sopra, sei ad 
alto rischio di diventare uno spam-bot.
Bye.


Non vorrei sembrare scortese, lungi da me questa intenzione, però sembra che 
la premessa dell'autore sia stata chiara riguardo alla sua preparazione.
In ogni caso, chiunque deve pur cominciare da qualche parte :) l'esperienza 
poi viene da se :)
Cooper.
 


Si, ok, grazie.
-- 
Skywalker Senior 

 Si, ok, grazie.
Prego.
Bye.

 parte :) l'esperienza poi viene da se :)
Se avesse detto "non conosco PHP ma lo vorrei imparare, ho fatto questo 
script, ditemi cosa ne pensate", avrei evitato quella frase.
Siccome ha detto qualcosa tipo "ho copiato questo pezzo da li`, 
quest'altro da la`, mettetemeli a posto e non ci penso piu`", il 
suggerimento migliore e` "fattelo fare da chi ne sa, perche` stai 
diventando uno spam-bot".
Bye.


E' un semplice form-mail per un sito personale. Lungi da me rubare il
lavoro ai professionisti del settore.
Ho trovato il codice (php e flash) in uno dei tanti siti con tutorial.
Mi ero anche posto problemi sulla sicurezza di tale codice ma, vista
l'inesperienza, pensavo che bastasse fissare la variabile del
destinatario per stare tranquillo.
Tutta esperienza.
Ciao
--
Skywalker Senior

 sembrera` che provenga dal tuo dominio principale, perche` il mailserver 
  Questo invece l'avevo risolto. Almeno una l'ho indovinata, via! :-p
  Grazie,
-- 
Gianfranco Bertozzi
Linux User #183585

   Se po' mi spammo, mi aiutate a risolvere il problema? =8-)
Io personalmente ritengo non valido un campo che va nell'header e che 
contiene i caratteri \n o \r. Se li trovo, torno al form segnalando errore.
 
Bye.

 lavoro ai professionisti del settore. 
Non dicevo tanto per il fatto di rubare il lavoro. E` una cosa che un 
professionista sarebbe anche seccato di dover fare. ;)
Piu` che altro il rischio e` appunto quello dello spamming, che da` 
fastidio agli altri (che lo ricevono o che devono filtrarlo) oltre che a 
te e al tuo hoster/provider (che prima o poi entrereste in una blacklist)
Bye.


Cercherò di seguire i tuoi suggerimenti e poi farò dei test. Lo spam dà 
fastidio a tutti e l'utima cosa che voglio è diventare un 
"postino-spazzatura".
-- 
Skywalker Senior 

 contiene i caratteri \n o \r. Se li trovo, torno al form segnalando errore.
  Ti dico come ho fatto io:
<?php
  $destinatario = "";
  $oggetto = "Richiesta Informazioni";
  $newemailmittente = strip_tags(stripslashes($_POST['emailmittente']));
  $newnomemittente = strip_tags(stripslashes($_POST['nomemittente']));
  $newmessaggio = strip_tags(stripslashes($_POST['messaggio']));
  /*
    qui un controllo antispam che se e' verificato passa a:
  */
  /* controllo dell'email */
  if($risultato = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $newemailmittente) \
     || ($newemailmittente == ""))
  {
  /* altri controlli poi spedisce */
  }
?>
  La regex l'ho trovata in rete. :-)
  Vedo che i vari tentativi che faccio (ma senza il \n che dici tu) non
vanno in porto. Posso considerarmi sicuro o e' meglio che vada a
zappare? :-o
  Un saluto e grazie per la gentilezza e la disponibilita', :-)


 zappare? :-o
Vai a zappare. ;)
Intendo zappare i ritorni a capo.
Mettici almeno uno str_replace(array("\n", "\r"), ""), o meglio ancora un 
preg("#\n\r#") per filtrare emailmittente e nomemittente.
Bye.


Alla fine però siamo un po' usciti dal seminato.
Il mio problema principale era il responso di quello script che non viene 
intercettato da flash, il quale mi riporta sempre l'errore.
Qualcuno sa dirmi dove potrebbe stare il problema?
-- 
Skywalker Senior

 preg("#\n\r#") per filtrare emailmittente e nomemittente.
  Bon. Quindi cosi':
preg_replace("#\n\r#","",strip_tags(stripslashes($_POST['emailmittente'])));
  va bene?
  Grazie per l'aiuto. A buon rendere (anche se non ti conviene ;-p ),
