Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439

    [Mx] myLoadVars con php... Flash malefico!

    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
    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"); 
    Variante tentata:
    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"); 
    Il file php che legge le variabili è molto semplice:
    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:
    わさび

  2. #2
    phprisp != undefined || phprisp == "si"


    non sara' mai vera questa condizione ...


    dentro un oggetto LoadVars si interpella l' oggetto con this, solitamente seguito dal valore rilasciato dal php


    esempio


    echo '&result=OK';


    phprisp.onLoad = function( s ) {
    if( s && this['result'] == 'OK' ) {
    // ... fai quello che ti pare ...
    }
    else if( this['result'] != 'OK' ) {
    // qualcosa e' andato storto
    }
    else {
    // trace( 'impossibile caricare il file' );
    }
    }
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    phprisp != undefined || phprisp == "si"


    non sara' mai vera questa condizione ...


    dentro un oggetto LoadVars si interpella l' oggetto con this, solitamente seguito dal valore rilasciato dal php


    esempio


    echo '&result=OK';


    phprisp.onLoad = function( s ) {
    if( s && this['result'] == 'OK' ) {
    // ... fai quello che ti pare ...
    }
    else if( this['result'] != 'OK' ) {
    // qualcosa e' andato storto
    }
    else {
    // trace( 'impossibile caricare il file' );
    }
    }
    Avevo provato anche quella strada (leggi variante, ho editato su)...
    Un'altra cosa:
    in php io gli rimando la variabile con questa sintassi
    echo "phprisp=true";
    È necessario utilizzare la & prima della variabile anche se ce n'è una sola?
    E poi c'è un altro problema, che è poi quello principale:
    il flash non sembra inviare per nulla ste variabili,
    altrimenti sarebbero comunque inserite nel database; invece nel database non viene inserito nulla... il problema non è solo di comunicazione in risposta
    わさび

  4. #4
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Questo è lo script php che, dopo aver ricevuto le variabili fa le (2) query e invia la risposta al flash (malefico!)

    Codice PHP:
    $errore 0;
    $risjm mysql_query($queryjm$conn);
    if (
    $risjm === false$errore 1;
    if (
    $errore == 1) {
        echo 
    "phprisp=false";
    } else {
        
    $risjp mysql_query($queryjp$conn);
        if (
    $risjp === false$errore 1;
        if (
    $errore == 1) {
            echo 
    "phprisp=false";
        } else {
            echo 
    "phprisp=true";
        }
    }
    mysql_close($conn); 
    わさび

  5. #5
    Originariamente inviato da Trinità76
    È necessario utilizzare la & prima della variabile anche se ce n'è una sola?
    esatto



    Originariamente inviato da Trinità76
    E poi c'è un altro problema, che è poi quello principale:
    il flash non sembra inviare per nulla ste variabili,
    altrimenti sarebbero comunque inserite nel database; invece nel database non viene inserito nulla... il problema non è solo di comunicazione in risposta
    non esiste questo problema, o i campi che assegni al loadvars non hanno valore o sono stringhe vuote oppure sbagli il check in PHP e non arrivi a controllare che esista $_POST['jmnome']

    posta il codice php
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  6. #6
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    esatto




    non esiste questo problema, o i campi che assegni al loadvars non hanno valore o sono stringhe vuote oppure sbagli il check in PHP e non arrivi a controllare che esista $_POST['jmnome']

    posta il codice php
    Il codice l'ho postato su ↑

    Le variabili, come ti ho scritto facendo un trace vengono incorporate bene al myLoadVars... ovviamente invio al php solo quelle piene xchè essendo circa 70 risparmio un po' di codice inutile...
    わさび

  7. #7
    fai il debug in php ...

    if( isSet( $_POST['pippo'], $_POST['paperino'], $_POST['pluto'], ... etc etc ) == false ) {
    echo '&error=dove stanno le variabili post ?';
    }


    e controlla


    this['error'] sull' onLoad del loadvars


    insisto, non esiste questo problema in flash, o posti il file php o non so come aiutarti
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Originariamente inviato da andr3a
    fai il debug in php ...

    if( isSet( $_POST['pippo'], $_POST['paperino'], $_POST['pluto'], ... etc etc ) == false ) {
    echo '&error=dove stanno le variabili post ?';
    }


    e controlla


    this['error'] sull' onLoad del loadvars


    insisto, non esiste questo problema in flash, o posti il file php o non so come aiutarti
    Grazie andr3a,
    il codice php è praticamente solo quello che ti ho scritto; ora lo metto tutto
    Codice PHP:
    include "includephp/connessione.php";
    $jp_li_ita = (isset($_POST['liita']) && $jp_li_ita) ? $jp_li_ita "0";
    $jp_li_eng = (isset($_POST['lieng']) && $jp_li_eng) ? $jp_li_eng "0";
    $jp_li_spa = (isset($_POST['lispa']) && $jp_li_spa) ? $jp_li_spa "0";
    $jp_li_fra = (isset($_POST['lifra']) && $jp_li_fra) ? $jp_li_fra "0";
    $jp_li_ger = (isset($_POST['liger']) && $jp_li_ger) ? $jp_li_ger "0";
    $jp_li_jpn = (isset($_POST['lijpn']) && $jp_li_jpn) ? $jp_li_jpn "0";

    $jp_co_1 = (isset($_POST['co1']) && $jp_co_1) ? $jp_co_1 "0";
    $jp_co_2 = (isset($_POST['co2']) && $jp_co_2) ? $jp_co_2 "0";
    $jp_co_3 = (isset($_POST['co3']) && $jp_co_3) ? $jp_co_3 "0";
    $jp_co_4 = (isset($_POST['co4']) && $jp_co_4) ? $jp_co_4 "0";
    $jp_co_5 = (isset($_POST['co5']) && $jp_co_5) ? $jp_co_5 "0";
    $jp_co_6 = (isset($_POST['co6']) && $jp_co_6) ? $jp_co_6 "0";
    $jp_co_7 = (isset($_POST['co7']) && $jp_co_7) ? $jp_co_7 "0";
    // etc. etc. etc. etc. *70

    $queryjm "INSERT INTO tabella (`campo1`, `campo2`, `campo3`) VALUES ('$jp_li_ita', $jp_li_eng$jp_li_spa);";

    $queryjp""// uguale a $queryjm

    $errore 0;
    $risjm mysql_query($queryjm$conn);
    if (
    $risjm === false$errore 1;
    if (
    $errore == 1) {
        echo 
    "phprisp=false";
    } else {
        
    $risjp mysql_query($queryjp$conn);
        if (
    $risjp === false$errore 1;
        if (
    $errore == 1) {
            echo 
    "phprisp=false";
        } else {
            echo 
    "phprisp=true";
        }
    }
    mysql_close($conn); 
    わさび

  9. #9
    Utente di HTML.it L'avatar di Trinità76
    Registrato dal
    Jan 2002
    Messaggi
    1,439
    Ho fatto come mi hai detto e sta volta l'errore è diverso:
    in Flash ho messo
    Codice PHP:
        phprisp.onLoad = function(success) {
            if(
    success && this['result'] == "true") {
                
    _root.status "Dati inviati correttamente.";
                
    _root.nextFrame();
            } else if (
    this['result'] != "true") {
                
    _root.status "il result non ha restituito true";
            } else {
                
    _root.status "Impossibile inviare i dati. Riprovare più tardi.";
            }
        }
        
    myLoadVars.sendAndLoad("http://"phprisp"POST"); 
    In php ho messo
    Codice PHP:
    $errore 0;
    $risjm mysql_query($queryjm$conn);
    if (
    $risjm === false$errore 1;
    if (
    $errore == 1) {
        echo 
    "&result=false";
    } else {
        
    $risjp mysql_query($queryjp$conn);
        if (
    $risjp === false$errore 1;
        if (
    $errore == 1) {
            echo 
    "&result=false";
        } else {
            echo 
    "&result=true";
        }
    }
    mysql_close($conn); 
    ..e sta volta il messaggio è: "un momento per favore..."
    In pratica la risposta non c'è proprio!

    Il trace mi delle variabili attaccate al myLoadVars mi restituiscono questo:
    codice:
    pr5:	1
    pr2:	1
    ap16:	1
    ap4:	1
    co2:	1
    liger:	0
    lieng:	2
    liita:	1
    jmdisponibilita:	4
    jmcellulare:	
    jmtelefono:	8787987
    jmemail:	email@email.it
    jmindirizzo:	indirizzo
    jmdatadinascita:	miadata
    jmcognome:	miocognome
    jmnome:	mionome
    
    (etc.)
    Quindi fin qui dovrebbe andare
    わさび

  10. #10
    dimmi secondo te e in italiano a cosa serve questo

    $jp_li_ita = (isset($_POST['liita']) && $jp_li_ita) ? $jp_li_ita : "0";




    ...


    io ti giuro che avrei scritto cosi' ...


    $jp_li_ita = isset($_POST['liita']) ? $_POST['liita'] : "0";
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.