Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2010, 12:12
Avatar de JavierMMM
JavierMMM
 
Fecha de Ingreso: agosto-2008
Ubicación: Justito frente a la computadora.
Mensajes: 278
Antigüedad: 15 años, 8 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