Gravando arquivo de log, não puxa nenhuma informação
Preciso de uma ajudinha para achar aonde está o erro nos códigos abaixo, ele cria o arquivo mas não possui nenhuma informação nele.
index.php
fwrite($log,date("d/m/Y H:i:s")." ".$_SERVER["REMOTE_ADDR"]." ".$_POST['usuario']."\n");
fclose($log);
index.php
define("ARQUIVO_LOG","log.txt");
$log = @fopen(ARQUIVO_LOG, "x");
// se for igual a false, o arquivo já existe
if($log == false) {
// o paramentro a abre o arquivo e posiciona o ponteiro no final do mesmo
$log == fopen(ARQUIVO_LOG,"a");
}
require_once("controller.php");
Karine Sobral
Curtidas 0
Respostas
William
26/07/2015
Karine, vou te dar 2 sugestões como sei que você está começando como programadora:
1 - Evite usar "@" antes de qualquer chamada em PHP, essa prática esconde os erros e vai ter fazer perder horas atrás de um bug.
2 - Quando estiver desenvolvendo sempre habilite a exibição de erros nos seu scripts (código abaixo no topo do seu script), quando terminar e for entregar para o cliente pode retirar essa configuração.
Quanto a sua dúvida, seu código está meio fragmentado não consegui identificar qual script chama a execução do log.
1 - Evite usar "@" antes de qualquer chamada em PHP, essa prática esconde os erros e vai ter fazer perder horas atrás de um bug.
2 - Quando estiver desenvolvendo sempre habilite a exibição de erros nos seu scripts (código abaixo no topo do seu script), quando terminar e for entregar para o cliente pode retirar essa configuração.
error_reporting(E_ALL);
ini_set('display_errors', 1);
Quanto a sua dúvida, seu código está meio fragmentado não consegui identificar qual script chama a execução do log.
GOSTEI 0
Karine Sobral
26/07/2015
Esse código eu coloco acima do meu código? é para executar primeiro?
@ serve para algo afinal?
@ serve para algo afinal?
GOSTEI 0
Jothaz
26/07/2015
Esse código eu coloco acima do meu código? é para executar primeiro?
@ serve para algo afinal?
@ serve para algo afinal?
O William respondeu:
1 - Evite usar "@" antes de qualquer chamada em PHP, essa prática esconde os erros e vai ter fazer perder horas atrás de um bug.
Ele oculta o retorno de erro, só dever utilizado quando for liberada a versão de produção para o usuário.
Durante o processo de desenvolvimento é melhor que os erro sejam lançados na tela.
Claro que você deve implementar uma forma de capturar os erro em produção em um log, pro exemplo, para facilitar a manutenção.
GOSTEI 0
Karine Sobral
26/07/2015
Depois de usar, quando não mais precisar eu tiro, eu vi código pensei que fazia parte do código.
@fopen
GOSTEI 0
Karine Sobral
26/07/2015
Não precisa mais???
GOSTEI 0
Karine Sobral
26/07/2015
Olhem:
fwrite($log,date("d/m/Y H:i:s")." ".$_SERVER['REMOTE_ADDR']." ".$_POST['usuario']."\r\n");GOSTEI 0