Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gabriel S.

[Resolvido] Fatal error

Recommended Posts

Olá pessoal,

como resolvo esse problema?

 

Fatal error: Maximum execution time of 30 seconds exceeded in /home/gabrielr/public_html/15/index.php on line 58

 

Obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom o que tem nessa linha, esse erro e de script muito demorado ou

algo que esta em loop infinito.

 

pode tentar isso também definindo o tempo máximo.

essa verificação de safe_mode esta sendo feita porque se tiver ligado a opção de safe_mode setar o limite não vai ter efeito.

<?php 
       if( !ini_get('safe_mode') ){ 
           set_time_limit(25); 
       } 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este é o código do script com problemas:

 

<?php
if ($_GET['id']=="GR")
{
echo "<html>\n";
echo "<head>\n";
echo "<title>UPLOAD por URL</title>\n";
echo "<link href=\"estilo.css\" rel=\"stylesheet\" type=\"text/css\" />\n";
echo "<script language=\"JavaScript\">
<!--
function valida(){
       var url

       url=document.url.url.value

       if (url==\"\"){
               alert(\"Por favor, preencha a URL\");
               document.url.url.focus();
       return false;
       }
return true;

}
//-->
</script>\n";
echo "</head>\n";
echo "<body>\n";
echo "<form action=\"index.php\" name=\"url\" method=\"post\" onSubmit=\"return(valida())\">\n";
echo "<label for=\"url\"><b>URL:</b> </label><input type=\"text\" id=\"url\" class=\"txt\" name=\"url\" autofocus placeholder=\"URL aqui\" />\n";
echo "<input type=\"submit\" value=\"Baixar\" class=\"btn\" name=\"submit\" onSubmit=\"return(valida())\" />\n";
echo "</form>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<p align=\"center\">Criado por <a onclick=\"window.open('http://www.meusite.com');\" style=\"cursor:pointer\" title=\"Script de teste - Transload\">Tester</p>\n";
echo "</body>\n";
echo "</html>\n";
}

else
if($_POST["submit"]){

$url = trim($_POST["url"]);

if($url){
$file = fopen($url,"rb");

$rand = rand(100000000000000,999999999999999);
$newfile = fopen("./arquivos-gr/" . $rand . _ . basename($url), "wb");

echo "id do arquivo: <b>$rand</b>";

if($newfile){

while(!feof($file)){

fwrite($newfile,fread($file,1024 * 8),1024 * 8); //linha 58

}
}
}
}

else
{
header("HTTP/1.0 404 Nada Encontrado");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a lógica desse código porque não lê o arquivo e grava de uma vez.

em vez desse while.

 

bom acredito ser mais interessante algo assim

 


$contents = fread($file, filesize($file));
fwrite($newfile,$contents);

ou

$content="";
while(!feof($file)){

$content.= fread($file,1024 * 8);

}
fwrite($newfile,$content);

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

 

Este código seria para pegar um arquivo de outro servidor e passar para o meu.

 

Tentei do modo como você disse Fernando, mas apareceu outro erro:

 

Fatal error: Allowed memory size of 67108864 bytes exhausted (tried to allocate 66847989 bytes) in /home/gabrielr/public_html/15/index.php on line 57

Compartilhar este post


Link para o post
Compartilhar em outros sites

pode-se usar isso.

 

 

ini_set("memory_limit", "16M");

 

ou

 

$contents = file_get_contents($url);

 

ou

 

copy($url, "./arquivos-gr/" . $rand . _ . basename($url));

posta o endereço de um arquivo de exemplo fiquei curioso que arquivo e esse para dar estouro de memória.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá

 

não está mais com erro, porem ele não baixa o arquivo inteiro, como teste eu tentei baixar um arquivo de 658mb, mas só baixou 445mb.

 

agora o código está assim:

<?php 
       if( !ini_get('safe_mode') ){ 
           set_time_limit(0); 
       } 
?>
<?php
if ($_GET['id']=="GR")
{
echo "<html>\n";
echo "<head>\n";
echo "<title>UPLOAD por URL</title>\n";
echo "<link href=\"estilo.css\" rel=\"stylesheet\" type=\"text/css\" />\n";
echo "<script language=\"JavaScript\">
<!--
function valida(){
       var url

       url=document.url.url.value

       if (url==\"\"){
               alert(\"Por favor, preencha a URL\");
               document.url.url.focus();
       return false;
       }
return true;

}
//-->
</script>\n";
echo "</head>\n";
echo "<body>\n";
echo "<form action=\"index.php\" name=\"url\" method=\"post\" onSubmit=\"return(valida())\">\n";
echo "<label for=\"url\"><b>URL:</b> </label><input type=\"text\" id=\"url\" class=\"txt\" name=\"url\" autofocus placeholder=\"URL aqui\" />\n";
echo "<input type=\"submit\" value=\"Baixar\" class=\"btn\" name=\"submit\" onSubmit=\"return(valida())\" />\n";
echo "</form>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<p align=\"center\">Criado por <a onclick=\"window.open('http://www.meusite.com');\" style=\"cursor:pointer\" title=\"Script de teste - Transload\">Tester</p>\n";
echo "</body>\n";
echo "</html>\n";
}

else
if($_POST["submit"]){

$url = trim($_POST["url"]);

if($url){
$file = fopen($url,"rb");

$rand = rand(100000000000000,999999999999999);
$newfile = copy($url, "./arquivos-gr/" . $rand . _ . basename($url)); 

echo "id do arquivo: <b>$rand</b>";

$content="";
while(!feof($file)){

$content= fread($file,1024 * 8);

}
fwrite($newfile,$content);

}
}

else
{
header("HTTP/1.0 404 Nada Encontrado");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

nessa linha

 

$content= fread($file,1024 * 8);

 

altera ela para

 

 

$content.= fread($file,1024 * 8);

 

com esse ponto antes do igual.

 

porque da forma que esta ele substitui o valor e com o .= ele concatena.

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu esse erro:

 

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 16515509 bytes) in /home/gabrielr/public_html/15/index.php on line 63

 

segue o codigo:

<?php 
       if( !ini_get('safe_mode') ){ 
           set_time_limit(0); 
       } 
?>
<?php
ini_set("memory_limit", "16M");
if ($_GET['id']=="GR")
{
echo "<html>\n";
echo "<head>\n";
echo "<title>UPLOAD por URL</title>\n";
echo "<link href=\"estilo.css\" rel=\"stylesheet\" type=\"text/css\" />\n";
echo "<script language=\"JavaScript\">
<!--
function valida(){
       var url

       url=document.url.url.value

       if (url==\"\"){
               alert(\"Por favor, preencha a URL\");
               document.url.url.focus();
       return false;
       }
return true;

}
//-->
</script>\n";
echo "</head>\n";
echo "<body>\n";
echo "<form action=\"index.php\" name=\"url\" method=\"post\" onSubmit=\"return(valida())\">\n";
echo "<label for=\"url\"><b>URL:</b> </label><input type=\"text\" id=\"url\" class=\"txt\" name=\"url\" autofocus placeholder=\"URL aqui\" />\n";
echo "<input type=\"submit\" value=\"Baixar\" class=\"btn\" name=\"submit\" onSubmit=\"return(valida())\" />\n";
echo "</form>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<br>\n";
echo "<p align=\"center\">Criado por <a onclick=\"window.open('http://www.meusite.com');\" style=\"cursor:pointer\" title=\"Script de teste - Transload\">Tester</p>\n";
echo "</body>\n";
echo "</html>\n";
}

else
if($_POST["submit"]){

$url = trim($_POST["url"]);

if($url){
$file = fopen($url,"rb");

$rand = rand(100000000000000,999999999999999);
$newfile = copy($url, "./arquivos-gr/" . $rand . _ . basename($url)); 

echo "id do arquivo: <b>$rand</b>";

$content="";
while(!feof($file)){

$content.= fread($file,1024 * 8);

}
fwrite($newfile,$content);

}
}

else
{
header("HTTP/1.0 404 Nada Encontrado");
}
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela ajuda Fernando, com ftp deu certinho

 

ai vai o código:

<?php 
$ftp_server = "ipdosite ou ftp.meusite.com.br"; 
$conn_id = ftp_connect ($ftp_server) 
   or die("Não foi possível conectar a $ftp_server"); 

$login_result = ftp_login($conn_id, "login", "senha"); 
if ((!$conn_id) || (!$login_result)) 
   die("Conexão falhou"); 

ftp_sync ("pasta para copiar");

ftp_close($conn_id);  

function ftp_sync ($dir) { 

   global $conn_id; 

   if ($dir != ".") { 
       if (ftp_chdir($conn_id, $dir) == false) { 
           echo ("Falha: $dir<BR>\r\n"); 
           return; 
       } 
       if (!(is_dir($dir))) 
           mkdir($dir); 
       chdir ($dir); 
   } 

   $contents = ftp_nlist($conn_id, "."); 
   foreach ($contents as $file) { 

       if ($file == '.' || $file == '..') 
           continue; 

       if (@ftp_chdir($conn_id, $file)) { 
           ftp_chdir ($conn_id, ".."); 
           ftp_sync ($file); 
       } 
       else 
           ftp_get($conn_id, $file, $file, FTP_BINARY); 
   } 

   ftp_chdir ($conn_id, ".."); 
   chdir (".."); 

} 
?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

poderia ter sido feito assim também

<?php
copy("http://dl.dropbox.com/u/11545678/GTA_San_Andreas_by_www.gabrielramos10.com_.exe","teste.exe");

?>

pelo menos no meu server local funcionou.

 

mas demorou muito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.