Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    ennesimo problema php flash

    per un modulo che invii una mail utilizzo questo codice trovato in rete collegato ad un pulsante INVIA

    codice:
    on(release){ //quando il pulsante viene rilasciato
    if( modello eq "" ) 
    check1=false;/*se il campo nome contiene una stringa vuota (usiamo l'operatore eq "equals" per confrontare due stringhe ), cioè non contiene nulla assegna false alla variabile check1*/
    else 
    check1=true; /*altrimenti assegna true alla variabile check1*/
    /*sul campo mail dobbiamo inserire dei controlli più avanzati, ovvero dobbiamo accertarci che l'indirizzo e-mail immesso sia valido. Lo stratagemma che usiamo è quello di verificare la presenza dei caratteri "." e "@". Usiamo il metodo lastIndexOf('carattere') che ci restituisce un intero che rappresenta l'ultimo "indice" o per semplicità l'ultima posizione di un certo carattere all'interno della stringa sulla quale richiamiamo il metodo. La condizione necessaria a superare il nostro controllo è che il numero restituitoci sia diverso da -1, il che significa che il carattere deve essere effetivamente presente nella stringa. Inoltre controlleremo che la stringa non sia vuota. Tutti questi controlli saranno concatenati dall'operatore logico or "||" che mette a paragone due espressioni e se una sola di queste è vera allora il risultato sarà vero*/ 
    if(mail.lastIndexOf ('.') == -1 || mail.lastIndexOf ('@') == -1 || mail eq "") 
    check2=false; /*se l'ultima posizione dei caratteri '.' e '@' è -1 o la stringa è vuota, assegna false a check2*/
    else 
    check2=true; /*altrimenti assegna true a check2*/
    if( note eq "")
    check3=false;/*se il campo nome contiene una stringa vuota assegna false a check3*/
    else 
    check3=true;/*altrimenti assegna true a check3*/
    if( taglia eq "")
    check4=false;
    else 
    check4=true;
    if( colore eq "")
    check5=false;
    else 
    check5=true;
    if( quantita eq "")
    check6=false;
    else 
    check6=true;
    if(check1 && check2 && check3 && check4 && check5 && check6){ /*ora confrontiamo fra di loro le variabili check1,check2 e check3 tramite l'operatore and "&&" che restituisce vero solo se tutte e tre le variabili sono vere. Per cui se tutti i controlli sono andati a buon fine*/
    var vars:LoadVars = new LoadVars(); /*creiamo un nuovo oggeto LoadVars con nome variabile "vars" che ci servirà ad inviare i dati al file PHP*/
    /*l'oggetto vars può immagazzinare una sorta di attributi che servono da contenitore per i dati da inviare*/
    vars.modello=modello;
    vars.mail=mail;
    vars.note=note;
    vars.taglia=taglia;
    vars.colore=colore;
    vars.quantita=quantita;
    vars.esito="";
    vars.sendAndLoad("invia.php",vars,"POST");/*inviamo il nostro oggetto vars con il metodo sendAndLoad('file PHP che riceverà ed elaborerà i dati, nel nostro caso "invia.PHP"','oggetto che riceverà il risultato, nel nostro caso lo stesso vars','metodo di invio, nel nostro caso POST')*/
    vars.onload = function(success){ /*questa funzione viene eseguita quando si verifica l'evento onload su vars, ovvero quando il nostro oggetto vars riceve la risposta dal file "invia.PHP*/
    if(success){ /*se i dati sono stati passati correttamente e se l'e-mail è stata inviata, viene mostrato un messaggio di successo e vengono resettati i campi*/
    if(vars.esito=="success"){
    output.text="Invio avvenuto correttamente";
    modello="";
    mail="";
    note="";
    taglia="";
    colore="";
    quantita="";
    }
    else
    output.text="Errore invio, riprovare";/*altrimenti viene mostrato un messaggio di errore*/
    }
    
    
    else
    output.text="Errore invio, riprovare";/*altrimenti viene mostrato un messaggio di errore*/
    }//fine funzione
    }//fine if
    else 
    output.text="Compilare i campi correttamente";/*se il controllo sui campi non va a buon fine ricordiamo all'utente di compilare i campi correttamente*/
    }//fine on(release)
    Nel SWF sono presenti 6 caselle di testo di input e una di testo dinamico chiamata output. Il codice del file invia.php è

    Codice PHP:
    <?php
    $to 
    "email";
    $mittente strip_tags($_POST["mail"]);
    $oggetto "ordine ricevuto da $mittente";
    $messaggio "Modello: "strip_tags($_POST["modello"]) . "\nColore: "strip_tags($_POST ["colore"])."\nQuantità: "strip_tags($_POST["quantita"]). "\nTaglia: "strip_tags($_POST["taglia"]) . "\nNote: "strip_tags($_POST ["note"]);
    $headers "From: <$mittente>";
    if(!
    mail($to$oggetto$messaggio$headers)) die("&esito=errore&");
    else echo 
    "&esito=success&";
    ?>
    praticamente la mail viene inviata correttamente, ma il flash non riceve il risultato success e quindi non svuota i campi e non visualizza il messaggio di conferma. Se non compil correttamente i campi alo stesso modo il flash non visualizza il messaggio di errore e la mail non viene inviata.

    Come risolvo?

    Grazie e scusate per l'ennesima discussione sul passaggio variabili
    Viviamo tutti in una palude di fango, ma alcuni di noi guardano le Stelle http://www.comunicareoltre.it

  2. #2
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ho modificato il titolo con uno più significativo

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.