Visualizzazione dei risultati da 1 a 10 su 10

Discussione: da php a flash a php

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536

    da php a flash a php

    ciao

    Allora:

    Invio una variabile ad un filmato flash tramite questo link:

    <td width='120'align='center'><a href=\"filmato.php?variabile=$cust\">Visualizza</a></td>


    La pagina filmato.php visualizza il filmato flash e gli invia la variabile:

    codice:
    <?
    $variabile_ric=$_REQUEST['variabile'];
    ?>
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>movie_ric</title>
    </head>
    <body bgcolor="#ffffff">
    
    
    <!--
     
    -->
    
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="558" height="806" id="movie_ric" align="middle">
    <param name="allowScriptAccess" value="sameDomain" />
    <param name="movie" value="movie_ric.swf" /><param name="FlashVars" value="<? echo "&id=".$variabile_ric; ?>" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="movie_ric.swf" quality="high" bgcolor="#ffffff" width="558" height="806" name="movie_ric" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
    </body>
    </html>
    <?php 
    echo  "&id=".$variabile_ric;
    ?>
    Il filmato flash riceve la variabile e la invia ad un terzo file php che non fa altro che interrogare il db mysql per estrarre i dati (che dovrebbero essere visualizzati in un documento dello stesso filmato flash:

    questo l'actionscript completo del filmato:

    codice:
    function sendDatauno(){
    	nome=new LoadVars();
    	nome.id = _root.id;
    	nome.send("script_ricerca.php","_parent","POST");	
    	}
        sendDatauno();
    
    System.useCodepage    = true;
    _root.num.html        = true;   
    _root.ann.html        = true;
    _root.anno.html       = true;
    _root.cliente.html    = true;
    _root.asp.html        = true;
    
    _root.codice.html        = true;
    _root.descrizione.html   = true;
    _root.quan.html          = true;
    _root.iva.html           = true;
    _root.prezzo_u.html      = true;
    _root.imponibile.html    = true;
    
    _root.totimponibile.html = true;
    _root.ivafour.html       = true;
    _root.ivaten.html      = true;
    _root.totfatt.html    = true;
    
      loader = new loadVars();
      loader.load("script_ricerca.php");
      loader.onLoad = function(success) {
      if(success)
        {           
             _root.num.htmlText     = eval("this.num");
             _root.ann.htmlText     = eval("this.ann"); 
    		 _root.anno.htmlText    = eval("this.anno");
    		 _root.cliente.htmlText = eval("this.cliente");
    		 _root.asp.htmlText     = eval("this.asp"); 
    		  
    		  if(this.ok)
          {
    	  _root.codice.htmlText       = "";
          _root.descrizione.htmlText  = "";
          _root.quan.htmlText         = "";
    	  _root.iva.htmlText          = "";
    	  _root.prezzo_u.htmlText     = "";
    	  _root.imponibile.htmlText   = "";
    
    	  for(var j = 1; j <= this.i; j++)
             {
             _root.codice.htmlText       += eval("this.codice" + j);
             _root.descrizione.htmlText  += eval("this.descrizione" + j);
             _root.quan.htmlText         += eval("this.quan" + j);
    		 _root.iva.htmlText          += eval("this.iva" + j);
    		 _root.prezzo_u.htmlText     += eval("this.prezzo_u" + j);
    		 _root.imponibile.htmlText   += eval("this.imponibile" + j);		 
             }      
          }
    	     _root.totimponibile.htmlText     = eval("this.totimponibile");
             _root.ivafour.htmlText      = eval("this.ivafour"); 
    		 _root.ivaten.htmlText     = eval("this.ivaten");
    		 _root.totfatt.htmlText   = eval("this.totfatt");
    print(target, "bframe");
        }   
      }
    stop();
    Il filmato effettivamente riceve la variabile id e la invia al terzo file php, ma la pagina php
    si carica nel browser e visualizza i dati che dovrebbero essere visualizzati solo nel filmato flash.
    In pratica nel browser deve essere visualizzato una volta aperto solo il filmato (magari i dati completi potranno essere visibili in un secondo momento subito dopo la query del terzo file php).
    Mi hanno detto di usare la funzione sendandload() ma io conosco quasi niente di actionscript e non so come fare.
    La seconda parte dell'actionscrit (quella che dovrebbe visualizzare i dati completi) l'ho copiata da un mio precedente progetto e in quel caso il filmato doveva semplicemente richiamare i dati dallo script php senza l'invio di nessuana variabile adesso la cosa è più complicata come potete vedere.
    Mi aiutate a risolvere il problema e a rendere "coerente" tutto il codice di cui sopra magari aggiungendo i dovuti if di controllo (successo o meno )delle operazioni?
    Spero di essere stato chiaro.
    Grazie

  2. #2
    devi usare sendAndLoad, il send apre sempre la pagina.

    comunque tramite un link permetti a chiunque, in questo modo, di ravanare sul database.

    Se vuoi un consiglio leggi qualcosa sulla sicurezza in php prima di fare interrogazioni al db tramite flash o javascript che sia

    P.S. tutti quegli eval non servono a niente
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  3. #3
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Originariamente inviato da andr3a

    comunque tramite un link permetti a chiunque, in questo modo, di ravanare sul database.
    Ciao andr3a,

    cosa intendi con "link", a cosa ti riferisci?


  4. #4
    Originariamente inviato da nep036
    cosa intendi con "link", a cosa ti riferisci?
    Prova a seguire il percorso del primo link mostrato:
    codice:
    <a href=\"filmato.php?variabile=$cust\">Visualizza</a>
    Questo è un link, posso replicarlo dove mi pare o appenderlo a mano nell'indirizzo della pagina filmato.php

    http://pippo.com/filmanto.php?variabile=hello world

    Quella variabile arriva dritta al player tramite FlashVars come id
    codice:
    <param name="FlashVars" value="<? echo "&id=".$variabile_ric; ?>" />
    e come per magia raggiunge la pagina script_ricerca.php tramite LoadVars
    codice:
    nome=new LoadVars();
    nome.id = _root.id;
    nome.send("script_ricerca.php","_parent","POST");
    Dato che a parte l'ultima parte il tutto è facilmente riconoscibile dal solo markup e dato che non c'è alcun filtro alle variabili in ingresso
    codice:
    <?
    $variabile_ric=$_REQUEST['variabile'];
    ?>
    e dato che questa assegnazione è inutile ed i tag del PHP sono deprecati, ho dedotto, forse erroneamente, che lucas726 non fosse un esperto col PHP (ma mi sembra che anche con ActionScript abbia qualche carenza) e mi gioco quello che vuoi che script_ricerca.php fa la query in db senza filtrare in alcun modo il tipo di dato, permettendo di ravanare il database o nella peggiore delle ipotesi di fare danni.

    Quindi il consiglio che posso dare, in generale, è di studiare le problematiche di sicurezza inerenti il linguaggio server e le ottimizzazioni possibili sul client per agevolare la buona riuscita delle operazioni (un cast a intero, per dirne una) prima di buttarsi nelle interazioni client/server su database.

    Se invece lucas726 conosceva già le problematiche e filtrava bene il tuto solo nel server mi scuso e spero che il consiglio arrivi eventualmente ad altri magari meno preprati

    [in fondo è tra gli errori più comuni fare interazioni client/server senza avere approfondito le problematiche inerenti la sicurezza di quest'ultimo, quindi ribadisco fosse solo un consiglio disinvolto]
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  5. #5
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    Adesso ho capito a cosa ti riferivi, beh, che dire, hai perfettamente ragione...

  6. #6

  7. #7
    Originariamente inviato da rempox
    Ciao Andr3a .... Rempox in PVT
    Roger ....
    Formaldehyde a new Ajax PHP Zero Config Error Debugger

    WebReflection @WebReflection

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    Originariamente inviato da andr3a
    Roger ....
    si infatti non sono un esperto di php e flash.
    Ma il lavoro che sto facendo deve girare (almeno per il momento) solo in locale quindi nessun problema di sicurezza
    Quale sarebbero poi i cambiamenti da fare per la sicurezza per esempio?

    Si il sendandload non fa aprire la pagina
    In ogni caso dovresti aiutarmi però anche ad integrare il tutto con il mio vecchio codice visto che adesso al posto dei dati nei campi di testo dinamico del filmato flash mi ritrovo con dei "level0" ecc ecc.

    In pratica ho problemi a ricevere i dati definitivi nel filmato flash dallo script ricerca.
    Grazie e ciao

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    536
    ok risolto!!

    Rimane solo un problema
    Ho messo questa funzione di stampa per ultimo nell'AS

    print(target, "bframe");

    ma la procedura di stampa si avvia prima che i dati siano caricati...ho dovuto toglierla.
    Come posso fare per fare in modo che una volta caricati i dati nel documento sia richiamata la funzione di stampa?
    Ho provato un po' con var IF messi qua e la ma niente.
    grazie

  10. #10
    Utente di HTML.it L'avatar di nep036
    Registrato dal
    Nov 2003
    Messaggi
    1,453
    quando i dati sono pronti:

    loadVars.onLoad = function(){
    //popoli i campi
    //poi stampi
    }

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.