Ir para conteúdo

POWERED BY:

Arquivado

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

Rafael Portal

Aumentar o TimeOut da sessão

Recommended Posts

Olá gente, bom o que está acontecendo comigo é o seguinte... Criei uma aplicação que é muito demorada para executar, bastante demorada mesmo, e quando eu executo ela até funciona mas pára no meio pq dá erro de TimeOut, aparece uma mensagem dizendo que saiu do TimeOut de CGI (mais ou menos isso, vocês devem conhecer). E eu alterei no meu programa o tempo de limite usando uma função do PHP set_time_limit(), e coloquei um número estrondoso, e TAMBÉM mudei o tempo de limit no próprio php.ini, mas mesmo assim depois de exatos 6 minutos de execução o erro acontece novamente. Bom, alguém sabe me dizer como eu resolvo isso ? Obrigado desde já e um abraço a todos !Oks,Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo, você não deve ter lido toda a minha pergunta.. Nela eu disse q já usei o set_time_limit(), só q tem um porém.. Qual é o máximo de tempo de limite que eu posso inserir ? Eu coloquei um número estrondoso "900000000000" (nem sei se isso existe), está errado ? Se não tem como aumentar ? Tem q mudar em mais algum lugar ? Obrigado e um abraço a todos.Oks,Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu não tenho outra sugestão não :(

 

nunca aconteceu isso comigo :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ainda não funciona... Afinal existe alguma forma de aumentar o tempo de execução ? Pq apesar de todas as modificações que eu fiz até agora eu nunca consigo mais do q exatamente 6min.. Abraço a todos, espero q possam me ajudar..Oks,Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que estou fazendo neste script é enviar um arquivo para o servidor e carrega-lo para um programa específico.. Em função disso é que a demora ocorre, realmente é um processo lento, por isso que preciso aumentar o tempo de execução do browser, espero que entendam:

 

 

Erro:

Imagem Postada

 

Script:

 

<?php

sleep(28000);

set_time_limit(0);

 

//$vIPServidor = file('IPServidor.txt', 'r');

//$IPServidor = file ($vIPServidor[0]);

 

$aINI = array();

$nomeINI = $_POST['cboNomeScript'];

 

$aINI = parse_ini_file($nomeINI, TRUE);

//echo "<pre>";

//print_r($aINI);

 

//Pegando o IP do servidor

$IPServidor = $aINI['CONFIG']['IPSERVIDOR'];

 

// Pegando o código do tipo do documento que será passado dentro do XML

$codTipoDoc = $aINI['CONFIG']['CODTIPODOC'];

 

// Criando um vetor com o código dos campos de indexação

$codRotulosSalvus = array();

$Linhas = explode(";", $aINI['CONFIG']['CODROTULOSSALVUS']);

$auxCont = count($Linhas) - 1;

$codRotulosSalvus = array();

foreach ($Linhas as $numeroLinha => $line){

if ($auxCont <> $numeroLinha){

$codRotulosSalvus[$numeroLinha] = $line;

}

}

 

//print_r($codRotulosSalvus);

// Pegando o caminho do arquivo de definição

//$CaminhoArqDefinicao = array();

$CaminhoArqDefinicao = $aINI['CONFIG']['CAMINHOARQDEFINICAO'];

$Linhas = file ($CaminhoArqDefinicao);

 

if ($CaminhoArqDefinicao != "") {

foreach ($Linhas as $line_numDoc => $line){

$linhaFinal = trim(str_replace('"','',$line));

$Exp = explode(",",$linhaFinal);

$ultimaPos = count($Exp) - 1;

$auxCont = 1;

foreach($Exp as $line_num => $line)

{

if($ultimaPos == $line_num )

{

$aPathLote = $aINI['CONFIG']['CAMINHOLOTE'];

if ($aPathLote <> ""){

$strArquivo = $aPathLote.basename($line);

}else{

$strArquivo = $line;

}

 

// XML da criação do novo documento

$sXMLin = 'data=<Data><NomeObjeto>Documentos</NomeObjeto>

<NomeMetodo>CriaNovoDocumento</NomeMetodo>

<Parametros>

<Usuario>Admin</Usuario>

<Senha>Admin</Senha>

<Empresa>1</Empresa>

<Campos>

<CamposEl>

<NomeCampo>cod_tipodoc</NomeCampo>

<Valor>'.number_format($codTipoDoc).'</Valor>

</CamposEl>

<CamposEl>

<NomeCampo>cod_lote</NomeCampo>

<Valor>1</Valor>

</CamposEl>

<CamposEl>

<NomeCampo>cod_volume</NomeCampo>

<Valor>1</Valor>

</CamposEl>

<CamposEl>

<NomeCampo>cod_locl</NomeCampo>

<Valor>1</Valor>

</CamposEl>

<CamposEl>

<NomeCampo>nome</NomeCampo>

<Valor>'.trim($strArquivo).'</Valor>

</CamposEl>

</Campos>

</Parametros></Data>';

 

//echo "<xmp>";

//print_r($sXMLin);

 

$header = "POST http://".$IPServidor."/Salvus/GDAL/GDal.php HTTP/1.0\r\n";

//$header = "POST http://10.0.0.237/Salvus/GDAL/GDal.php HTTP/1.0\r\n";

$header .= "Content-type: application/x-www-form-urlencoded\r\n";

$header .= "Content-length: " . strlen($sXMLin) . "\r\n\r\n";

 

$fp = fsockopen($IPServidor, 80, $errno, $errstr);

//$fp = fsockopen('10.0.0.237', 80, $errno, $errstr);

 

if ($fp){

fputs($fp, $header . $sXMLin);

$response="";

while (!feof($fp)){

$response .= fgets($fp, 128);

}

fclose($fp);

}

else{

die('Erro de conexão com o Servidor : '.$errno.' - '.$errstr);

}

 

$newStr = strstr($response, '<Parametros>');

$aFinal = array();

$aFinal = xml2Array($newStr);

 

//echo "\n\n";

//print_r($aFinal);

$ChaveDoc = $aFinal['Parametros'][0]['Dados'][0]['Chave'];

 

$sXMLindexa = 'data=<Data><NomeObjeto>Documentos</NomeObjeto>

<NomeMetodo>IndexaDocumento</NomeMetodo>

<Parametros>

<Usuario>Admin</Usuario>

<Senha>Admin</Senha>

<Empresa>1</Empresa>

<Chave>'.number_format(trim($ChaveDoc)).'</Chave>

<CamposIndexacao>';

 

// Indexando o documento obtendo a ID em ChaveDoc

foreach($codRotulosSalvus as $numeroLinha => $regAtual){

$sXMLin = 'data=<Data><NomeObjeto>Rotulos</NomeObjeto>

<NomeMetodo>Busca</NomeMetodo>

<Parametros>

<Usuario>Admin</Usuario>

<Senha>Admin</Senha>

<Empresa>1</Empresa>

<Filtro>

<FiltroEl>

<Coluna>cod</Coluna>

<Valor>'.trim($regAtual).'</Valor>

</FiltroEl>

</Filtro>

</Parametros></Data>';

 

//echo "<xmp>";

//print_r($sXMLin);

 

 

$header = "POST http://".$IPServidor."/Salvus/GDAL/GDal.php HTTP/1.0\r\n";

//$header = "POST http://10.0.0.237/Salvus/GDAL/GDal.php HTTP/1.0\r\n";

$header .= "Content-type: application/x-www-form-urlencoded\r\n";

$header .= "Content-length: " . strlen($sXMLin) . "\r\n\r\n";

 

$fp = fsockopen($IPServidor, 80, $errno, $errstr);

//$fp = fsockopen('10.0.0.237', 80, $errno, $errstr);

 

if ($fp){

fputs($fp, $header . $sXMLin);

$response="";

while (!feof($fp)){

$response .= fgets($fp, 128);

}

fclose($fp);

}

else{

die('Erro de conexão com o Servidor : '.$errno.' - '.$errstr);

}

$newStr = strstr($response, '<Parametros>');

$aFinal = array();

$aFinal = xml2array($newStr);

$codCampo = $aFinal['Parametros'][0]['Dados'][0]['Registros'][0]['RegistrosEl'][0]['Campos'][0][1]; // Pegando o código do campo

 

//$cont = 0;

$val = false; // Atribuindo falso para a variável booleana

 

$lnArqCampos = $aINI['CONFIG']['CAMPOSARQDEFINICAO']; // Pegando a linha onde estão listados os campos

$ExpCampos = explode(";", $lnArqCampos); // Criando um vetor com todos os campos listados

$countExpCampos = count($ExpCampos) - 1;

foreach ($ExpCampos as $nroExpCampos => $RegExpCampos){

//echo $nroExpCampos." ".$countExpCampos."\n";

if ($nroExpCampos <> $countExpCampos){

$aCampos[$nroExpCampos] = $RegExpCampos;

}

}

//print_r($aCampos);

//foreach($ExpCampos as $nroRegArqCampos => $RegArqCampos) // Criando o for dentro do vetor criado

// { // 2x

//echo "ad"."\n";

$lnCaminhoArqDefinicao = $aINI['CONFIG']['CAMINHOARQDEFINICAO']; // Abrindo o arquivo que tem o caminho do arquivo de definição

//echo $lnCaminhoArqDefinicao."<br>";

$lnCamposArqDefinicao = file($lnCaminhoArqDefinicao); // Pegando o caminho do arquivo de definição

//foreach ($lnCamposArqDefinicao as $nroReg => $Reg) // Dando um for dentro de cada linha no arquivo de definição

//{ // 1x

 

 

$Exp = explode(",", $lnCamposArqDefinicao[$line_numDoc]); // Criando um vetor da linha atual

 

$ultimaPos = count($Exp) - 1; // Verificando a posição do caminho do arquivo que está como padrão, e não tem que estar dentro da indexação

foreach($Exp as $nroCpIndex => $Reg) // Entrando no for para a indexação

{ // 6x

 

if($ultimaPos <> $nroCpIndex) // Se o número de registros for igual a última posição, não entra

{

$strCampos = str_replace('"','', $Reg); // Tirando as aspas duplas ["] da linha

$strCampos = trim($strCampos); // Tirando os espaços em branco [ ] da linha

//echo $nroRegArqCampos."\n";

//echo $strCampos."\n";

//echo trim(str_replace('"','', $ExpCampos[$cont]))."\n";

//echo "RegAtual: ".$strCampos." strCampos: ".trim(str_replace('"','', $ExpCampos[$numeroLinha]))."<BR>";

if ($strCampos == trim(str_replace('"','', $aCampos[$numeroLinha]))){

$val = true; // Variável boleana recebe true para que na próxima passagem entre no valor

}

else // Se forem diferentes

{

if ($val == true) // Se a variável boleana for verdadeira quer dizer que é o campo do valor

{

//echo ">>".$strCampos."\n";

$sXMLindexa .= '<CamposIndexacaoEl>

<Id>'.$codCampo.'</Id>

<Rotulos>

<RotulosEl>';

$sXMLindexa .= '<Id>'.trim($regAtual).'</Id>

<Valor>'.$strCampos.'</Valor>

</RotulosEl>

</Rotulos>

</CamposIndexacaoEl>';

$val = false;

}

}

}

}

//$cont = $cont + 1;

//}

}

 

$sXMLindexa .= '</CamposIndexacao>

</Parametros></Data>';

 

//echo "<xmp>";

//print_r($sXMLindexa);

 

 

$header = "POST http://".$IPServidor."/Salvus/GDAL/GDal.php HTTP/1.0\r\n";

//$header = "POST http://10.0.0.237/Salvus/GDAL/GDal.php HTTP/1.0\r\n";

$header .= "Content-type: application/x-www-form-urlencoded\r\n";

$header .= "Content-length: " . strlen($sXMLindexa) . "\r\n\r\n";

 

$fp = fsockopen($IPServidor, 80, $errno, $errstr);

//$fp = fsockopen('10.0.0.237', 80, $errno, $errstr);

 

if ($fp){

fputs($fp, $header . $sXMLindexa);

$response="";

while (!feof($fp)){

$response .= fgets($fp, 128);

}

fclose($fp);

}

else{

die('Erro de conexão com o Servidor : '.$errno.' - '.$errstr);

}

//print_r($response);

//$newStr = strstr($response, '<Parametros>');

//$aFinal = array();

//$aFinal = xml2array($newStr);

//print_r($aFinal);

 

}

}

}

}

 

 

 

// Limpando o conteúdo do arquivo tipoDocs.txt

$arq = fopen('tipoDocs.txt', 'w');

fwrite($arq,"");

// Limpando o conteúdo do arquivo camposSalvus.txt

$arq = fopen('camposSalvus.txt', 'w');

fwrite($arq,"");

// Limpando o conteúdo do arquivo CaminhoArqDefinicao.txt

$arq = fopen('CaminhoArqDefinicao.txt', 'w');

fwrite($arq,"");

echo "<br><br><center><b><font size='4' face='tahoma'>Importação de imagens e dados do Acsent para o Salvus realizada com sucesso.</font></b></center>"

 

?>

 

<?php

function MyXMLtoArray($XML) {

$xml_parser = xml_parser_create();

xml_parse_into_struct($xml_parser, $XML, $vals);

xml_parser_free($xml_parser);

reset($vals);

$dom = array(); $lev = 0;

myParseXML($vals, $dom, $lev);

return $dom;

}

 

function &last(&$array) {

if (!count($array)) return null;

end($array);

return $array[key($array)];

}

 

function myParseXML(&$vals, &$dom, &$lev) {

do {

$curr = current($vals);

$lev = $curr['level'];

switch ($curr['type']) {

case 'open':

if (isset($dom[$curr['tag']])) {

$tmp = $dom[$curr['tag']];

if (!$tmp['__multi'])

$dom[$curr['tag']] = array('__multi' => true, $tmp);

array_push($dom[$curr['tag']], array());

$new =& last($dom[$curr['tag']]);

} else {

$dom[$curr['tag']] = array();

$new =& $dom[$curr['tag']];

}

next($vals);

myParseXML(&$vals, $new, $lev);

break;

case 'cdata':

break;

case 'complete':

if (!isset($dom[$curr['tag']]))

$dom[$curr['tag']] = $curr['value'];

else {

if (is_array($dom[$curr['tag']]))

array_push($dom[$curr['tag']] , $curr['value']);

else

array_push($dom[$curr['tag']] = array($dom[$curr['tag']]) , $curr['value']);

}

break;

case 'close':

return;

}

}

while (next($vals)!==FALSE);

}

 

 

function xml2array($text) {

$reg_exp = '/<(.*?)>(.*?)<\/\\1>/s';

preg_match_all($reg_exp, $text, $match);

foreach ($match[1] as $key=>$val) {

if ( preg_match($reg_exp, $match[2][$key]) ) {

$array[$val][] = xml2array($match[2][$key]);

} else {

$array[$val] = $match[2][$key];

}

}

return $array;

}

 

function writeINIfile ($filename, $array1, $commentchar, $commenttext) {

$handle = fopen($filename, 'wb');

if ($commenttext!='') {

$comtext = $commentchar.

str_replace($commentchar, "\r\n".$commentchar,

str_replace ("\r", $commentchar,

str_replace("\n", $commentchar,

str_replace("\n\r", $commentchar,

str_replace("\r\n", $commentchar, $commenttext)

)

)

)

)

;

if (substr($comtext, -1, 1)==$commentchar && substr($comtext, -1, 1)!=$commentchar) {

$comtext = substr($comtext, 0, -1);

}

fwrite ($handle, $comtext."\r\n");

}

foreach ($array1 as $sections => $items) {

//Write the section

if (isset($section)) { fwrite ($handle, "\r\n"); }

//$section = ucfirst(preg_replace('/[\0-\37]|[\177-\377]/', "-", $sections));

$section = ucfirst(preg_replace('/[\0-\37]|\177/', "-", $sections));

fwrite ($handle, "[".$section."]\r\n");

foreach ($items as $keys => $values) {

//Write the key/value pairs

//$key = ucfirst(preg_replace('/[\0-\37]|=|[\177-\377]/', "-", $keys));

$key = ucfirst(preg_replace('/[\0-\37]|=|\177/', "-", $keys));

if (substr($key, 0, 1)==$commentchar) { $key = '-'.substr($key, 1); }

$value = ucfirst(addcslashes($values,''));

fwrite ($handle, ' '.$key.' = "'.$value."\"\r\n");

}

}

fclose($handle);

}

?>

 

Obs.: Se repararem alguma coisa estranha ou errada no meu script não se apavorem, não conheço quase nada de PHP, ainda sou aprendiz.. Abraço a todos.

 

Obs. 2: O código não está identado pq no fórum não tem como (pelo menos eu não descobri como se faz) colocar o código dentro das Tags ([COD][/COD]) mais, agora tem aquele Prompt lá que não deixa a gente colocar nada dentro, enfim espero q consigam entender.

 

 

Oks,

Rafael Portal

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso foi só uma opção q me deram, q também não funcionou, na verdade nem sei para q serve o sleep(), sou iniciante, logo estou tentando todas as opções possíveis. Espero q alguém tenha mais idéias. Obrigado e um grande abraço a todos. Oks,Rafael Portal

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.