Comunidad de diseño web y desarrollo en internet online

Pasando variable para parámetro del Object con php

Citar            
MensajeEscrito el 11 Ene 2010 01:55 pm
Tengo tres enlaces que al ser clicados abren una nueva ventana de navegador donde va a ser cargada una imagen con Flash (swf).

Mi intención entonces es pasar la dirección de la misma para dentro del los parámetros del Object.

Mis enlaces son así:

Código HTML :

<p><a href="#" onclick="MM_openBrWindow('pagina.php?direccion=swf/auto1.swf','Ventana','width=375,height=280')">Auto 1</a></p>
<p><a href="#" onclick="MM_openBrWindow('pagina.php?direccion=swf/auto2.swf','Ventana','width=375,height=280')">Auto 2</a></p>
<p><a href="#" onclick="MM_openBrWindow('pagina.php?direccion=swf/auto3.swf','Ventana','width=375,height=280')">Auto 3</a></p>


y en la pagina php que va a recibir la información tengo

Código PHP :

<body>
    <?php
      $direccion = $_GET['direccion'];
      <div>   
         <object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="375" height="280">
            <param name="movie" value="exemplo.swf" />
                <param name="quality" value="high" />  
               <param name="bgcolor" value="#FFFFFF" />  
               <param name="FlashVars" value="myFlashVar=JESUS CRISTO" />  
              <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="exemplo.swf" width="375" height="280">
                <param name="quality" value="high" />  
                 <param name="bgcolor" value="#FFFFFF" />  
                 <param name="pluginurl" value="http://www.adobe.com/go/getflashplayer" />  
                 <param name="FlashVars" value="myFlashVar=$direccion" />  
            <!--<![endif]-->
            <div>
               <h1>Alternative content</h1>
               <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
            </div>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->
         </object>
      </div>
      ?> 
   </body>


Pero cuando ejecuto estoy recibiendo este error

Parse error: syntax error, unexpected '<' in /home/arachnos/public_html/testing/pagina.php on line 14

La línea 14 es donde comienza la div del Object.

Alguna idea de dónde puede estar el error?. Desde ya muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Ene 2010 06:32 pm
Tienes que cerrar el tag indicador de PHP.

En el código tienes mezclado código PHP con HTML sin separar con los tags <?php ?>

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 11 Ene 2010 06:51 pm
Organicé el código quedando de esta forma

Código HTML :

<object id="myId" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="375" height="280">
            <param name="movie" value="exemplo.swf" />
                <param name="quality" value="high" />  
               <param name="bgcolor" value="#FFFFFF" />  
               <param name="FlashVars" value="myFlashVar=<?php $_GET['endereco']; ?>"/>  
              <!--[if !IE]>-->
            <object type="application/x-shockwave-flash" data="exemplo.swf" width="375" height="280">
                <param name="quality" value="high" />  
                 <param name="bgcolor" value="#FFFFFF" />  
                 <param name="pluginurl" value="http://www.adobe.com/go/getflashplayer" />  
                 <param name="FlashVars" value="myFlashVar=<?php $_GET['endereco']; ?>" />  
            <!--<![endif]-->
            <div>
               <h1>Alternative content</h1>
               <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
            </div>
            <!--[if !IE]>-->
            </object>
            <!--<![endif]-->
         </object>


Pero cuando voy a mirar el código fuente la línea de la variable está vacía:

Código HTML :

<param name="FlashVars" value="myFlashVar=" /> 


Lo raro es que la URL de esa página tiene el parámetro. Ella está así:

http://www.pluspixel.com.br/testing/pagina.php?endereco=swf/carro1.swf

Qué será que está pasando?. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 11 Ene 2010 11:16 pm
Ignoro qué puede estar pasando porque sintácticamente parece estar bien.

Intenta esto: bien al inicio del archivo pagina.php pon esto:

Código PHP :

<?php
if (isset($_GET["direccion"])) { // o endereco
  echo "Dirección existe: ".$_GET["direccion"]."<br />";
}
else {
  echo "Dirección no existe.<br />";
}

Esto es para saber si realmente está recibiendo un parámetro por get.

Al margen de esto. Veo que tienes los .swf que quieres cargar siempre en el mismo lugar, así que no veo necesidad de pasar en el parámetro el directorio, ni siquiera la extensión del archivo, solo basta el nombre. Algo así:
[html]
pagina.php?direccion=auto1
[/html}

Y luego puedes completar lo que falta:

Código PHP :

$archivo = @$_GET["direccion"];
if (!empty($archivo)) {
   $archivo = "swf/".$archivo.".swf";
}


Como lo tienes ahora el código es suceptible de ser explotado pues basta con pasar cualquier directorio con cualquier archivo para que se "reproduzca". De la forma que te recomiendo, si se intenta algo así, lo más probable es que se obtenga un directorio inválido.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Ene 2010 01:43 am
Amigo conseguí que funcione cambiando la línea:

Código HTML :

<param name="FlashVars" value="myFlashVar=<?php $_GET['endereco']; ?>" />


Por:

Código HTML :

<param name="FlashVars" value="myFlashVar=<?php echo $_GET['endereco']; ?>" />


O sea, estaba faltando el echo antes de la variable

Tu idea de pasar una parte de la variable dejando la otra parte como constante es buena pero no sé cuál sería el benefício real para hacer esto.

Muchas gracias. Claudio

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 12 Ene 2010 03:31 am

Ishkandar escribió:

Tu idea de pasar una parte de la variable dejando la otra parte como constante es buena pero no sé cuál sería el benefício real para hacer esto.

Seguridad.

Siempre que hagas algo expuesto al público y "desatendido" debes pensar: "¿Cómo se puede usar mal esto?". Debes tener siempre presente que nunca se debe confiar en los datos proporcionados por el usuario ;).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 12 Ene 2010 10:59 am
Ah si...es verdad. No había pensado en eso, es una excelente idea que voy a tener en cuenta.

Aunque me parece que la parte constante sería mejor dejarla dentro del swf, sería un poco más difícil de ser leída que si quedase dentro de los parámetros del swfObject.

Por Ishkandar

Claber

303 de clabLevel



Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.