Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/09/2009, 11:03
Razican
 
Fecha de Ingreso: enero-2008
Mensajes: 37
Antigüedad: 17 años, 1 mes
Puntos: 0
No consigo hacer funcionar mi programa

Hola. Estoy creando un generador de números primos. Resulta que las funciones no reciben las variables globales. (No me regañéis por tener un bucle infinito al final. (es para que esté generando números primos siempre))

Código PHP:
<?php
define
('INSIDE'  true);
include (
'numbers.php');
include (
'lastnumber.php');
$number $lastnumber 2;
function 
prime($num){
    global 
$numbers;
    
$cont 1;
    foreach (
$numbers as $num => $prime){
        if(
$num $prime == 0){
            
$cont++;
        }
        if (
$cont 2){
            return 
false;
            break;
        }
    }
    if(
$cont==2){
        return 
true;
    } else {
        return 
false;
    }
}
function 
writting ($resp$number){
    global 
$primenumbers$lastprime;
    if (
$resp == true) {
        
$handle fopen("numbers.php""rb");
        
$contents stream_get_contents($handle);
        
fclose($handle);
        
$replacement    str_replace($primenumbers." => ".$lastprime$primenumbers." => ".$lastprime.","$content);
        
$replacement2    str_replace(");?>"""$content);
        
$newprimes $primenumbers +1;
        
$fp fopen('numbers.php''w');
        
fwrite($fp"".$contents."\n");
        
fwrite($fp"".$newprimes." => ".$number."\n");
        
fwrite($fp");?>\n");
        
fclose($fp);
        
$fp2 fopen('lastnumber.php''w');
        
fwrite($fp2"<?php\n");
        
fwrite($fp2"    if(!defined(\"INSIDE\")){die(\"Intento de Hackeo\");}\n");
        
fwrite($fp2"    \$lastnumber = ".$number.";\n");
        
fwrite($fp2"    \$primenumbers = ".$newprimes.";\n");
        
fwrite($fp2"    \$lastprime = ".$number.";\n");
        
fwrite($fp2"?>");
        
fclose($fp2);
        echo 
"".$number."<br>";
    } else {
        
$fp2 fopen('lastnumber.php''w');
        
fwrite($fp2"<?php\n");
        
fwrite($fp2"    if(!defined(\"INSIDE\")){die(\"Intento de Hackeo\");}\n");
        
fwrite($fp2"    \$lastnumber = ".$number.";\n");
        
fwrite($fp2"    \$primenumbers = ".$primenumbers.";\n");
        
fwrite($fp2"    \$lastprime = ".$lastprime.";\n");
        
fwrite($fp2"?>");
        
fclose($fp2);
    }
}
if (
$_GET['mode'] == "show"){
    include(
'numbers.php');
    foreach (
$numbers as $num => $prime){
        echo 
"".$prime."<br>";
    }
    exit();
}
for (
$i 1$i <= 2;){
    
$resp prime($number);
    
writting ($resp$number);
    if (
$resp == true){
        require(
'numbers.php');
    }
    
$number++;
}
?>
El lastnumber.php:
Código PHP:
<?php
    
if(!defined("INSIDE")){die("Intento de Hackeo");}
    
$lastnumber 3;
    
$primenumbers 3;
    
$lastprime 3;
?>
Y el numbers.php:
Código PHP:
<?php
if(!defined("INSIDE")){die("Intento de Hackeo");}
$numbers = array(
=> 1,
=> 2,
=> 3
);?>