Foros del Web » Programando para Internet » PHP »

Pasar datos entre frames

Estas en el tema de Pasar datos entre frames en el foro de PHP en Foros del Web. Hola de nuevo... He estado algo trabado con la programación de PHP... Por lo que he leido, el uso de frames ya es obsoleto, pero ...
  #1 (permalink)  
Antiguo 12/04/2010, 12:12
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Pasar datos entre frames

Hola de nuevo... He estado algo trabado con la programación de PHP...

Por lo que he leido, el uso de frames ya es obsoleto, pero es usado en casos muy específicos. Y creo que es mi caso... Y ahora tengo problemas con estos frames.

Tengo mi página principal donde tengo definidos mis frames, que son dos; el primer frame contiene un form con el cual envio un dato numérico X validado con un captcha; el segundo frame recibe el dato y debe de refrescarse X veces.

Primero probé enviar el dato X sin el captcha y si lo envia y recibe sin problemas. El problema es que, cuando trato de hacerlo validando con el captcha, pasa el dato, pero la validación no se puede hacer en el frame destino, y por ende no puedo ejecutar el ciclo con el cual refrescaré las X veces el segundo frame y seguir con mis pruebas. He probado varias formas, como, validar el captcha en mi frame de envio, pero no se ejecuta; y si hago la validación en el frame destino, la cadena de validación que se genera siempre me marca erronea.

Este es mi pagina principal:

Código HTML:
<html>
<head>
<title>home.php</title>
</head>

<FRAMESET rows="35%,*" >
    <FRAME SRC="imp_datos.php" name="enviar" >
	<FRAME SRC="proc_calc.php" name="recibir" >
</FRAMESET><noframes></noframes>

</html> 
y este es parte del frame "enviar"

Código HTML:
<form name="form1" method="POST" action="proc_calc.php" target="recibir" >
<img src="php_captcha.php">
Escribir cadena.<br>
<input name="number" type="text" id=\&quot;number\&quot;>
Número de exámenes.<br>
<input type="text" name="num" id="text" tabindex="0" />
<input name="Submit" type="submit"   value="Consultar">
</form> 
y por último, el código que recibe:

Código PHP:
<?php
    header
("Expires: Tue, 01 Jul 2001 06:00:00 GMT");
    
header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
    
header("Cache-Control: no-store, no-cache, must-revalidate");
    
header("Cache-Control: post-check=0, pre-check=0"false);
    
header("Pragma: no-cache");    


    
session_start();        
    
set_time_limit(0); // Deshabilita el tiempo máximo de espera determinado en 30s del explorador.
    
$tiempo_micro[1]= microtime();
    
$q_espacios explode(" ",$tiempo_micro[1]);
    
$tiempo_[1]= $q_espacios[1]+$q_espacios[0];
    
?>    

<script   language="javascript">
function focuson()
  { document.form1.number.focus()}

function check()
    {
        if(document.form1.number.value==0)
            {
                alert("Debes de escibir la cadena");
                document.form1.number.focus();
                return false;
            }
    }
</script>

<?php
     
     $nex 
$_POST['num'];    
    if(isset(
$_REQUEST['Submit']))
   {
      
$key=substr($_SESSION['key'],0,5);
      
$number $_REQUEST['number'];
      if(
$number!=$key)
          {
              echo 
'<center><font face="Verdana, Arial, Helvetica, sans-serif" color="#FF0000">Cadena Incorrecta, intenta de nuevo!</font></center>';
          }
      else
//******************************************************************************************************************************************    
          
{   
          
          
               
/* echo '<center><font face="Verdana, Arial, Helvetica, sans-serif"  color="#66CC00">
                Cadena valida!</font></center>'; */
                
function tiempo($segundos)
                    {
                        
$minutos=$segundos/60;
                        
$horas=floor($minutos/60);
                        
$minutos2=$minutos%60;
                        
$segundos_2=$segundos%60%60%60;
                        if(
$minutos2<10)$minutos2='0'.$minutos2;
                        if(
$segundos_2<10)$segundos_2='0'.$segundos_2;        
                        if(
$segundos<60)
                            { 
/* segundos */
                                
$resultadoround($segundos,5).' Segundos';
                            }
                        elseif(
$segundos>60 && $segundos<3600)
                            {
/* minutos */
                                
$resultado$minutos2.':'.round($segundos_2,2).' Minutos';
                            }else
                                {
/* horas */
                                    
$resultado$horas.':'.$minutos2.':'.round($segundos_2,2).' Horas';
                                }
                        return 
$resultado;
                    }    
                    
                
$nex1 $nex;
                
                
$entrada $nex 70;
                
$tamano_KB $entrada;
                
$entrada1 $entrada
                
                
$descarga "http://sandisk.es/Assets/Image/DigitalAudioPlayers/Sansac100_1GB_white_case_ca.jpg";
                                        
                for (
$i=1$i <= $nex$i++)
                    {

                        
$descarga;
                    } 
          } 
//******************************************************************************************************************************************         
   
}

    
$tiempo_micro[2] = microtime();
    
$q_espaciosexplode(" ",$tiempo_micro[2]);
    
$tiempo_[2] =$q_espacios[1]+$q_espacios[0];
    
$tiempo_utilizado number_format(($tiempo_[2]-$tiempo_[1]),10"." ,",");
    
    
$velocidad = ($tamano_KB/$tiempo_utilizado);
    
$velocidad round(($velocidad 1024),2);
    
$segundos $tiempo_utilizado;

    echo 
'<center>Se descargaron '.$nex.' exámenes. ('.$entrada.' Kb)<br></center>';
    echo 
'<center>Tiempo de conexión: '.tiempo($segundos).'<br>Velocidad: '.$velocidad.' Kb/s </center>';
?>
Ahora bien, la otra cuestión es que cuando ya se pueda validar, el frame que recibe se debe de ejecutar X veces y debo de calcular el tiempo y es esto lo que no sé cómo implementarlo. ¿Ideas?

Espero haberme dado a entender y alguien pueda comentar al respecto.

Saludos.

Última edición por JavierMMM; 12/04/2010 a las 12:51
  #2 (permalink)  
Antiguo 13/04/2010, 08:30
Avatar de JavierMMM  
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Pasar datos entre frames

Regresé... Ando algo apurado con este tema...

Analizando el asunto, el concepto de recursividad viene a mi mente, así que, ¿puede aplicarse un frame recursivo?

En mi caso, quiero saber cómo poder implementar recursividad en mi frame

Código HTML:
<FRAME SRC="proc_calc.php" name="recibir" > 
Gracias por leerme.

Etiquetas: frames, pasar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:10.