Gravando arquivo de log, não puxa nenhuma informação

PHP

26/07/2015

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.


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

Karine Sobral

Curtidas 0

Respostas

William

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.
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

Karine Sobral

26/07/2015

Esse código eu coloco acima do meu código? é para executar primeiro?

@ serve para algo afinal?
GOSTEI 0
Jothaz

Jothaz

26/07/2015

Esse código eu coloco acima do meu código? é para executar primeiro?

@ 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

Karine Sobral

26/07/2015

Depois de usar, quando não mais precisar eu tiro, eu vi código
@fopen
pensei que fazia parte do código.
GOSTEI 0
Karine Sobral

Karine Sobral

26/07/2015

Não precisa mais???
GOSTEI 0
Karine Sobral

Karine Sobral

26/07/2015

Olhem:

fwrite($log,date("d/m/Y H:i:s")." ".$_SERVER['REMOTE_ADDR']." ".$_POST['usuario']."\r\n");
GOSTEI 0
POSTAR