Un Evento Unico. 5 Sale. 27 Interventi. SEO, SOCIAL, E-Commerce, Mobile, Turismo.
CLICCA QUI e SCOPRI DI PIù X Chiudi
 
Forum GT: Condividiamo idee e conoscenza Forum GT: Condividiamo idee e conoscenza


Condividi questo contenuto nei Social Network:
Ti stiamo aspettando: Registrati subito e gratis. Entra a far parte di una delle comunità più attive in Italia. Se hai dimenticato i tuoi dati li puoi recuperare subito.


Vai indietro   Forum per Webmaster: Condividiamo Idee e Conoscenza > Sviluppo e Gestione siti web > Flash & ActionScript
Benvenuto! Forum Regole FAQ Lista utenti Calendario Segna come letti

Flash & ActionScript Animazione web e linguaggio di programmazione

Hey Amico Visitatore,
Condividi con noi le tue idee e la tua conoscenza Aprendo una nuova discussione nella sezione Flash & ActionScript


Rispondi
 
LinkBack Strumenti di discussione
Vecchio 29-08-07, 21:01   #1 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
Question problema di comunicazione tra flash e php

Spero ci sia qualcuno in grado di darmi una risposta.
Dunque ho un form in flash che invia delle variabili ad un file php, una volta che questo le ha inviate via mail deve restituirmi una variabile, tale variabile deve essere caricata in un campo di testo dinamico in flash, il problema è che la variabile non viene inviata perché probabilmente non so come farla inviare dal file php, in ogni caso quando la mail viene inviata e quindi non vi sono errori che bloccano l'esecuzione del file php, in flash viene caricata la funzione che dovrebbe essere caricata se non viene inviata e viceversa, non riesco a capire il perché.
Premetto che esporto in versione 7 e con ActionScript 2, posto i codici.


codice del file swf
stop();
_root.pulsanteinvia.invia.onRelease = function() {
var sendMail:LoadVars = new LoadVars();
sendMail.nome = nome.text;
sendMail.cognome = cognome.text;
sendMail.ragsol = ragsol.text;
sendMail.naz = naz.text;
sendMail.cit = cit.text;
sendMail.cap = cap.text;
sendMail.ind = ind.text;
sendMail.tel = tel.text;
sendMail.cell = cell.text;
sendMail.fax = fax.text;
sendMail.email = email.text;
sendMail.testomail = testomail.text;
sendMail.destinatario = 'miamail@hotmail.it';
sendMail.sendAndLoad('Flash/mail.php', sendMail, 'POST');
sendMail.onLoad = function(success) {
if (success) {
nome.text = '';
cognome.text = '';
ragsol.text = '';
naz.text = '';
cit.text = '';
cap.text = '';
ind.text = '';
tel.text = '';
cell.text = '';
fax.text = '';
email.text = '';
testomail.text = '';
controllo = controllo;
} else {
controllo = errore;
}//end if
};//end function onLoad
};//end function onRelease

codice del file php
<?
$destinatario = stripslashes($_POST['destinatario']);
$controllo = 'email inviata correttamente';
$errore = 'email non inviata, riprovare';
if ( isset($HTTP_POST_VARS))
if (mail("$destinatario","NUOVO CONTATTO","Nome: $_POST[nome] \nCognome: $_POST[cognome] \nRagione Sociale: $_POST[ragsol] \nNazione: $_POST[naz] \nCittà: $_POST[cit] \nCAP: $_POST[cap] \nIndirizzo: $_POST[ind] \nTel.: $_POST[tel] \nCell.: $_POST[cell] \nFax: $_POST[fax] \ne-mail: $_POST[email] \nTesto: $_POST[testomail]","From: $_POST[email]"))
{echo "controllo = $controllo;"}
else {echo "errore = $errore;"}
?>

grazie.
Adriano_Bari non in linea   Rispondi citando
Vecchio 30-08-07, 01:19   #2 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
Ciao,
nel php, fai l' echo con il valore che vuoi, ma usa solo un nome.
Cioè dovresti usare un :
echo "risposta=".$risposta;

tieni la variabile $risposta come unica variabile di ritorno.

Poi da Flash sai che ti arriva sempre una variabile con nome risposta e controlli il suo valore.
Flep non in linea   Rispondi citando
Vecchio 31-08-07, 00:14   #3 (permalink)
User
 
L'avatar di momino
 
Data di registrazione: Aug 2007
Ubicazione: Casandrino, Napoli
Messaggi: 145
Thumbs up

Salve, un paio di correzioni al codice di Adriano
1) la funzione "onLoad" dell'oggetto "LoadVars" fallisce "if (success)" solo se la pagina php non è raggiungibile (indirizzo sbagliato o server down), quindi quella variabile "errore" rimarrà sempre bianca.
2) nel file php assicurati che l'UNICA cosa scritta sia "&risposta=".$risposta, poi dai a $risposta il valore che vuoi.
Così funzionerà, testato!!
Momino
momino non in linea   Rispondi citando
Vecchio 31-08-07, 12:23   #4 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
Prima di tutto vi ringrazio, ho fatto un passo avanti, non avevo compreso bene la funzione onLoad, credevo di dover inserire la variabile di errore nel php mentre bastava dare un valore nel codice del file swf
Dunque, ho fatto come dite, credo..

nel codice php ho dato un valore alla variabile $risposta e l'ho richiamato stampando echo "&risposta=".$risposta;
ho provato anche senza la e commerciale, la variabile però non viene caricata in flash nel quale la stringa inserita è controllo = risposta; dove controllo è la variabile del campo di testo dinamico.
Mi direte, (ma perché non scrivi semplicemente controllo = "email inviata";?) certo, così funzionerebbe senza bisogno di passare la variabile dal php, il problema è che voglio capire come si possono inviare variabili da un file php ad un codice ActionScript, una volta capito questo potrò fare molte + cose di quelle che ho imparato in questi giorni, premetto che sino a poco tempo fa non sapevo nulla o quasi di programmazione in flash e php.

il codice del file php è il seguente
<?
$destinatario = stripslashes($_POST['destinatario']);
$risposta = 'email inviata';
if ( isset($HTTP_POST_VARS))
if (mail("$destinatario","NUOVO CONTATTO","Nome: $_POST[nome] \nCognome: $_POST[cognome] \nRagione Sociale: $_POST[ragsol] \nNazione: $_POST[naz] \nCittà: $_POST[cit] \nCAP: $_POST[cap] \nIndirizzo: $_POST[ind] \nTel.: $_POST[tel] \nCell.: $_POST[cell] \nFax: $_POST[fax] \ne-mail: $_POST[email] \nTesto: $_POST[testomail]","From: $_POST[email]")) {echo "&risposta=".$risposta;}
?>

dove sbaglio?
Adriano_Bari non in linea   Rispondi citando
Vecchio 31-08-07, 12:37   #5 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
altro problemino riscontrato, ho inserito adesso un clip filmato nel secondo fotogramma, sia il primo che il secondo fotogramma hanno il loro stop ();
il problema si presenta solo su internet explorer, ovvero se carico la prima volta il file swf nessun problema ma se viene caricato una seconda volta passa al secondo fotogramma, come mai?
vi do il link per capire meglio il problema
http://www.jumboscreen.it/nuovosito/Contattaci.html
poi non capisco, come mai firefox ricarica sempre il nuovo file swf cogni qual volta premo F5 mentre internet explorer no?
grazie ancora.
Adriano_Bari non in linea   Rispondi citando
Vecchio 31-08-07, 14:01   #6 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
Ho provato a modificare il file php in modo da far validare la mail prima dell'invio, ma la mail non viene inviata in nessun caso, lo so che siamo nella sezione AcrinScript ma non vorrei aprire mille discussioni per un problema che riguarda sempre lo stesso form.

questo è il codice del php

<?
global $destinatario = stripslashes($_POST['destinatario']);
global $email = stripslashes($_POST['email']);//richiamo la mail del mittente
global $risposta = 'email inviata';
global $erroremail = 'email non valida';
if (!eregi("^[a-z0-9][_\.a-z0-9-]+@([a-z0-9][0-9a-z-]+\.)+([a-z]{2,4})", $email))//controllo l'indirizzo email
{echo "&risposta=".global $erroremail;//Indirizzo email non valido
}
else {//in caso di indirizzo mal valido eseguo l'invio dei dati
if ( isset($HTTP_POST_VARS))
if (mail("$destinatario","NUOVO CONTATTO","Nome: $_POST[nome] \nCognome: $_POST[cognome] \nRagione Sociale: $_POST[ragsol] \nNazione: $_POST[naz] \nCittà: $_POST[cit] \nCAP: $_POST[cap] \nIndirizzo: $_POST[ind] \nTel.: $_POST[tel] \nCell.: $_POST[cell] \nFax: $_POST[fax] \ne-mail: $_POST[email] \nTesto: $_POST[testomail]","From: $_POST[email]))
{echo "&risposta=".global $risposta;}//invio una variabile di risposta al file swf che informa dell'avvenuto invio della mail
}
?>

dov'è l'errore adesso?

Ultima modifica di Adriano_Bari : 31-08-07 14:10. Motivo: per una lettura migliore del codice
Adriano_Bari non in linea   Rispondi citando
Vecchio 31-08-07, 14:04   #7 (permalink)
User Attivo
 
L'avatar di Flep
 
Data di registrazione: Feb 2006
Ubicazione: Undisclosed city of South America
Messaggi: 4,901
Questo è il codice che uso per inviare una mail:

Codice:
 <?php
$to = "xxx@xxx.com";
$subject = ($_POST['titolo']);
$message = ($_POST['messaggio']);
$message .= "\n\n---------------------------\n";
$message .= "E-mail inviata da: " . $_POST['nome'] . " <" . $_POST['email']  . ">\n";
$headers = "From: " . $_POST['nome'] . " <" . $_POST['email'] . ">\n";
if(@mail($to, $subject, $message, $headers))
{
     echo "answer=ok";
} 
else 
{
    echo "answer=error";
}
?>
Flep non in linea   Rispondi citando
Vecchio 31-08-07, 14:47   #8 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
ma answer è la variabile che invii a flash o questo codice lo usi per un form html?
Il mio problema non è riuscire ad inviare una mail con i dati inseriti nei campi, a questo ci sono arrivato, ora devo riuscire a far si che l'utente debba compilare i campi obbligatori e che venga avvisato in maniera corretta se per esempio non ha compilato il campo nome o ha scritto in maniera errata la mail. Dopo che sarò riuscito a far questo mi piacerebbe poter memorizzare in un db i dati di chi invia le mail magari dando anche un messaggio del tipo, bentornato mario rossi.
Ci riuscirò? Io sono fiducioso, quando finirò il codice lo posterò come toutorial.
Adriano_Bari non in linea   Rispondi citando
Vecchio 31-08-07, 18:15   #9 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
continuo ad avere sempre lo stesso problema, non riesco ad inviare il valore della variabile a flash, ho provato nei seguenti modi.

echo "risposta=".$risposta;
echo "&risposta=".$risposta;
echo "risposta="$risposta;
echo "&risposta="$risposta;
echo "&risposta=.$risposta;";

poi ho provato dando un valore TRUE

echo "risposta = TRUE;";
echo "&risposta = TRUE;";
echo "<h1>risposta = TRUE;</h1>";
echo "<h1>&risposta = TRUE;</h1>";

credo di aver provato anche in altre maniere ma nulla, non viene inviato nessun valore, in molti casi se inserisco la & la mail non viene inviata ed in flash la funzione success risulta false

sto facendo ricerche su vari forum ma ancora non riesco a trovare nulla che mi dice come devo definire una variale che possa essere caricata dal onload in flash. AIUTOOOOOOOO!!!!!!!!
Adriano_Bari non in linea   Rispondi citando
Vecchio 31-08-07, 21:20   #10 (permalink)
User
 
L'avatar di momino
 
Data di registrazione: Aug 2007
Ubicazione: Casandrino, Napoli
Messaggi: 145
Il problema sta nel codice ActionScript.
Quando richiami la variabile di php che hai inviato con
Codice PHP:
echo "&risposta=".$risposta
nella funzione onLoad devi prenderla con
Codice:
this["risposta"]
e quindi assegnarla al campo di testo con
Codice:
controllo = this["risposta"];
Sicuramente ti manca questo
__________________
...e quello che non so lo so cantare...
momino non in linea   Rispondi citando
Vecchio 03-09-07, 13:42   #11 (permalink)
User
 
L'avatar di Adriano_Bari
 
Data di registrazione: Aug 2007
Messaggi: 213
Problema risolto, per chi volesse vedere come, può visitare il post in cui si discute di altri piccoli problemi del form.
FINALMENTE FUNZIONA form in flash con php

questa discussione può èssere chiusa.
Adriano_Bari non in linea   Rispondi citando
Rispondi
Tags: , , , ,



Strumenti di discussione

Regole di scrittura
Non puoi postare nuove discussioni
Non puoi rispondere alle discussioni
Non puoi allegare file
Non puoi editare i tuoi post

BB code is Attivo
smilies è Attivo
[IMG] il codice è Attivo
Il codice HTML è Disattivato
Trackbacks are Attivo
Pingbacks are Attivo
Refbacks are Disattivato
Vai al forum



Tutti gli orari sono GMT +3. Attualmente sono le 10:06.




Forum GT - © 2004-2009 GT idea S.r.l P.iva 02418200800 - Privacy/Disclaimer

SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.