1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[PHP] file_exists nao funciona [12% insane]

Discussão em 'Web Development' iniciada por Armadillo, 27 de Dezembro de 2007. (Respostas: 43; Visualizações: 5359)

?

PHP devia ser banido?

  1. Sim

    5 vote(s)
    27,8%
  2. Nao

    13 vote(s)
    72,2%
  1. Armadillo

    Armadillo Folding Member

    boas pessoal :hello:

    Código:
    //...
    if(file_exists($pathOrigem . $FicheiroOrigem))
    //...
    
    Esta instrucção nao me retorna o valor True mesmo existindo o ficheiro.
    Alguma razao para isso?
     
    Última edição: 28 de Dezembro de 2007
  2. hasta.g5

    hasta.g5 I quit My Job for Folding

    Eu uso e comigo funciona. Verifica permissões na pasta e isso..

     
  3. mcog_blaster

    mcog_blaster Power Member

    Pode acontecer.
    Faz echo de $pathOrigem.$FicheiroOrigem, podes estar a indicar um caminho invalido.
     
  4. Armadillo

    Armadillo Folding Member

    tou farto de fazer echos e var_dumps, ta tudo ok - os fichs existem...
    tambem ja faço antes do if clearstatcache.

    Tou a desenvolver em ambiente Windows, poderá haver uma causa-efeito devido ao OS?

    alguém me pode trocar isto em miudos?

    Por exemplo, o caminho do meu ficheiro tem este aspecto: \\machine\dados\2006\Loja\FACTURA_Loja200629668-2941-20061026.txt
    o caminho ta definido assim:$p_regFacturas="\\\machine\dados\\";

    Usando PHP Version 4.4.3.
     
    Última edição: 27 de Dezembro de 2007
  5. mcog_blaster

    mcog_blaster Power Member

    If you are trying to access a Windows Network Share you have to configure your WebServer with enough permissions for example:

    $file = fopen("\\siscomx17\c\websapp.log",'r');

    You will get an error telling you that the pathname doesnt exist this will be because Apache or IIS run as LocalSystem so you will have to enter to Services and configure Apache on "Open a session as" Create a new user that has enough permissions and also be sure that target share has the proper permissions.

    Hope this save some hours of research to anyone.

    Algo que estava nos comentarios na pagina de ajuda da funçao file_exists.
     
  6. Armadillo

    Armadillo Folding Member

    antes ja tinha tentado com o nome fisico (mesmo fisico do tipo c:\programas\......) do ficheiro e nao funcionava também. Esta partilha encontra-se na minha maquina que tambem é o meu servidor.
     
    Última edição: 27 de Dezembro de 2007
  7. slack_guy

    slack_guy Power Member

    E que dizem os logs do servidor?
     
  8. Armadillo

    Armadillo Folding Member

    acho que nao consigo abrir o log. o ficheiro só tem 74194102 KB = 70Gb.
    Ja apaguei o ficheiro e mesmo assim, quando volto a executar o php, volta-me aos 70GB.

    :offtopic: isto é normal???
     
  9. slack_guy

    slack_guy Power Member

    Não me parece nada normal! Qual é o server? Apache? IIS?
     
  10. Armadillo

    Armadillo Folding Member

    Apache a correr no windows - wamp do sugarCRM 4.5.1e (Build 1049)

    Apache Version Apache/2.0.59 (Win32) mod_ssl/2.0.59 OpenSSL/0.9.8a PHP/4.4.3
    Apache API Version 20020903
     
    Última edição: 28 de Dezembro de 2007
  11. slack_guy

    slack_guy Power Member

    Ainda aí coisa estranha... Esse error-log é comum a todos os sites (supondo que tenhas mais sites no mesmo servidor)? Se sim, cria um error-log próprio para esse site.
    Não precisas de abrir o ficheiro, basta um 'tail -f /path/to/error-log'.

    EDIT: just in case... Unix Style Tail Command
     
    Última edição: 28 de Dezembro de 2007
  12. Armadillo

    Armadillo Folding Member

    Presumo que o log é comum a todos os sites, mas so tenho um na minha maquina. Desculpa-me a ignorancia: 'tail -f /path/to/error-log'. O que queres dizer com isto?
    me:Windows_guy; you:slack_guy ;)

    edit: ja vi o teu edit...
     
  13. Armadillo

    Armadillo Folding Member

    TAIL: can't open error.log
    Tou fdx!!:005:

    Acho que vou pra padeiro, desde que a massa nao dê bug!!
     
  14. slack_guy

    slack_guy Power Member

    Epa... parece-me que tens aí um problema maior que o problema inicial.
    Eu cá não fazia mais nada enquanto não conseguisse ler o que está no log. Pára o servidor... copia o log para outro disco... faz o pino ou dá cambalhotas :-) mas arranja maneira de ver o que está no log.
     
  15. Armadillo

    Armadillo Folding Member

    ok, vou fazer uma app para cortar o ficheiro em ficheiros mais pequenos a ver se consigo abrir o ficheiro, pq com 70GB acho que nada o vai conseguir abrir (será que aminha app o vai conseguir cortar aos pedaços?)

    Obrigado pela ajuda
     
  16. slack_guy

    slack_guy Power Member

  17. Armadillo

    Armadillo Folding Member

    Terminei e reiniciei o serviço do Apache e o ficheiro passou-me para uns miseros 865 bytes.

    Aqui vai o log:
    Código:
    [Fri Dec 28 10:19:30 2007] [notice] Apache/2.0.59 (Win32) mod_ssl/2.0.59 OpenSSL/0.9.8a PHP/4.4.3 configured -- resuming normal operations
    [Fri Dec 28 10:19:30 2007] [notice] Server built: Jul 21 2006 08:48:52
    [Fri Dec 28 10:19:30 2007] [notice] Parent: Created child process 908272
    [Fri Dec 28 10:19:32 2007] [notice] Child 908272: Child process is running
    [Fri Dec 28 10:19:32 2007] [notice] Child 908272: Acquired the start mutex.
    [Fri Dec 28 10:19:32 2007] [notice] Child 908272: Starting 250 worker threads.
    [Fri Dec 28 10:19:58 2007] [error] [client 127.0.0.1] PHP Warning:  file(C:\\Programas\\sugarcrm-4.5.1e\\htdocs\\sugarcrm\\Filtros_crm_int\\dados\\) [<a href='function.file'>function.file</a>]: failed to open stream: Permission denied in C:\\Programas\\sugarcrm-4.5.1e\\htdocs\\sugarcrm\\Filtros_crm_int\\sync\\importar_facturas.php on line 100
    
    tenho um permission denied. E agora?

    EDIT: Tou a dar permissoes totais nesse directorio a todos os utilizadores. Deve ser isto certo?
     
    Última edição: 28 de Dezembro de 2007
  18. slack_guy

    slack_guy Power Member

    OK! aí está o teu problema... não tens permissões para abrir o ficheiro.
    Verifica as permissões do ficheiro e das respectivas pastas. Estás 5/10 minutos de resolver o problema :-)

    EDIT: provavelmente não precisas das mensagens 'notice' no log do apache. No ficheiro httpd.conf sobe o 'LogLevel' para 'warn'.
     
    Última edição: 28 de Dezembro de 2007
  19. Armadillo

    Armadillo Folding Member

    Mesmo dando permissoes full a todos os utilizadores, continua a dar a mesma mensagem erro:
    Código:
    [Fri Dec 28 10:31:21 2007] [error] [client 127.0.0.1] PHP Warning:  file(C:\\Programas\\sugarcrm-4.5.1e\\htdocs\\sugarcrm\\Filtros_crm_int\\dados\\) [<a href='function.file'>function.file</a>]: failed to open stream: Permission denied in C:\\Programas\\sugarcrm-4.5.1e\\htdocs\\sugarcrm\\Filtros_crm_int\\sync\\importar_facturas.php on line 100
    
     
  20. slack_guy

    slack_guy Power Member

    Pode ser nabice minha, mas em "file(C:\\Programas\\sugarcrm-4.5.1e\\htdocs\\sugarcrm\\Filtros_crm_int\\dados\\)" não vejo nenhum ficheiro, só directorias.
     

Partilhar esta Página