Salve a tutti...
Premetto che non sono al mio primo form Flash-Php, e in effetti non c'è stata mai una volta in cui non ho avuto problemi però alla fine sono riuscito a farli funzionare.
I form che avevo gestito inviavano una ventina di variabili al massimo... quello che ho realizzato ora ne invia circa 70.
Qualche volta ho notato (non so se è un bug) che Flash mi da problemi con variabili nominate con lettere e numeri (ad esempio cs1, cs2, cs3 etc.). In effetti ora ho molte variabili nominate in questo modo... potrebbe essere lì il problema.
Dunque =_=' cominciamo dall'inizio.
Il file .php che riceve e inserisce i dati in un database funzione, perchè l'ho lanciato senza passare da Flash e in effetti lui inserisce tutti campi vuoti (o 0 a seconda se hanno settato un default). Anche il Flash doverbbe funzionare perchè facendo un trace di myLoadVars la stringa che restituisce è corretta. A proposito, in un primo momento alcune variabili avevano anche il carattere underscore, che nel trace veniva convertito in qualcosa del tipo %F5, quindi ho eliminato tutti gli underscore dai nomi delle variabili per evitare problemi.
Lo script di Flash che invia, come vi dicevo l'ho già riutilizzato in altri form e funzionava, cmq ve lo scrivo
Variante tentata:Codice PHP:function checkUser() {
myLoadVars = new LoadVars();
myLoadVars.jmnome = _root.pages.page_1.jm_nome.txt.text;
myLoadVars.jmcognome = _root.pages.page_1.jm_cognome.txt.text;
myLoadVars.jmdisponibilita = _root.disponibilita; // da un combobox
//(...) altre variabili
myLoadVars.onLoad = function (success) {
phprisp = myLoadVars.phprisp;
if (phprisp != undefined || phprisp == "si") {
_root.status = "Dati inviati correttamente.";
_root.nextFrame();
} else {
_root.status = "Dati NON Inviati!!!!!";
}
}
myLoadVars.sendAndLoad("http://sito/pagina.php", myLoadVars, "POST");
Il file php che legge le variabili è molto semplice:Codice PHP:myLoadVars.onLoad = function (success) {
if (success) {
if (this.phprisp) {
_root.status = "Dati inviati correttamente.";
_root.nextFrame();
}
} else {
_root.status = "Dati NON Inviati, per un problema del server. Riprovare più tardi.";
}
}
myLoadVars.sendAndLoad("http://", myLoadVars, "POST");
contiene tutte le variabili scritte in questa forma
$jmnome = $_POST['jmnome'];
Flash invia tutte le variabili che per me sono "principali",
per quanto riguarda le altre variabili che ritengo secondarie, ho fatto un ciclo in cui verifico se la variabile è stata settata viene passata al php altrimenti no.
Ho fatto come nel tutorial del sendAndLoad() di sephiroth anche per la parte in php:
ho preso tutte le variabili facendo sia così
$jm_nome = $_POST['jmnome'];
che così
$jm_nome = (isset($_POST['jmnome']) && $jm_nome) ? $jm_nome : "";
evitando problemi se la variabile non viene passata,
ma il risultato non cambia:
mi va a finire sempre su "Dati NON Inviati!!!!!"
Qualche idea? :master:![]()

Rispondi quotando