Jump to content


Photo

Fopen - Caminho Absoluto - Não Consigo !


  • Faça o login para participar
5 replies to this topic

#1 augustorosauro

augustorosauro

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado

Posted 28/03/2005, 01:42

Meus amigos,

Meu erro deve ser bastante básico, mas vamos lá!

Criei uma função para criar um log de acesso à paginas protegidas.
O problema é que a função esta escrevendo no diretório de cada página, e não na raiz como eu queria. Acabo ficando com várias logs...

Já tentei de tudo para mudar o caminho, entre estas :

1. Funciona, mas escreve em cada diretorio...[/B]
$filename = "log_visitas.php";
$fp=fopen($filename,"a+");


2. Não funciona... não escreve em lugar algum.
$filename = "http://www.meusite.c...g_visitas.php";

2. Não funciona... não escreve em lugar algum.
$filename = "/login/log_visitas.php";

Já troquei "" por '', não sei o que mais tentar...

O que pode ser?

Obrigado, Augusto.




=================================================
Código Completo da função :

<?php
function r4log () {
include ("log_visitas.php");
$pagina = $_SERVER["PHP_SELF"];
$usuario = $_SESSION["user"];
$ip = $_SESSION["ip"];
if ($ip == "") $ip = "IP não registrado";
if($usuario == "") $usuario = "usuário desconhecido";
$datahora = date("m/d/Y H:i:s");

$varpagina = "Paginalog_u[";
$varusuario = "Usuario_u["; /// alterado senha - agora criptografada.
$varip = "IP_u[";
$vardatahora = "Datahora_u[";
$filename = "log_visitas.php";
$fp=fopen($filename,"a+");
fputs($fp,"
<?php
//Log de Visita no Sistema : $usuario
$$varusuario$i] = \"$usuario\";
$$vardatahora$i] = \"$datahora\";
$$varpagina$i] = \"$pagina\";
$$varip$i] = \"$ip\";
?> ");
}

#2 recycled

recycled

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado
  • Localidade:Florianópolis/SC
  • Interesses:Aprender e ensinar o pouco que sei :)

Posted 28/03/2005, 05:27

olha, este é um exemplo, você muda o "TEXTO AQUI", pela variavel q vc quiser :)


<?
//pega o diretório atual:
$dir = getcwd();
$logdir = '/logs/';
$filename = 'log.php';
echo "DIRETORIO: ".$dir.$logdir."<br>";
if(!is_dir($dir.$logdir)){ #diretorio
	umask(0);
	mkdir($dir.$logdir,0777); #cria o diretorio com permissão de escrita
}

touch($dir.$logdir.$filename);#muda o ultimo acesso ao arquivo, e se ele nao existir, ele é criado
$fp = fopen($dir.$logdir.$filename, 'a+'); #abre
	fwrite($fp, "TEXTO AQUI"); #escreve
	fclose($fp); #fecha
?>


| will - d.sign&c..odes
| www.neuronio.org
| fotolog.net/recycled

é isso aí :D

#3 augustorosauro

augustorosauro

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado

Posted 29/03/2005, 01:15

Não é bem isto...<_<

O problema é que o script grava logs em todos os diretórios que tenho páginas.
Como faço para dar um único endereço para todas as páginas visitadas?
(ENDEREÇO ABSOLUTO).

da forma atual ele grava um arquivo de log para cada pasta que eu tiver páginas...

Gostaria de gravar em : www/logs/log.php

Para qualquer página visitada. Porém, só estou conseguindo gravar em endereços relativos à pagina visitada...:blink:


Obrigado,
Augusto.

#4 recycled

recycled

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado
  • Localidade:Florianópolis/SC
  • Interesses:Aprender e ensinar o pouco que sei :)

Posted 29/03/2005, 03:21

Tenta usar:

$filename = 'log.php';

#verifica se existe o diretório de logs na raiz do servidor
if(!is_dir($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/logs/")){
umask(0);
mkdir($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/logs/",0777);
}
#grava o arquivo
touch($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/logs/".$filename);#muda o ultimo acesso ao arquivo, e se ele nao existir, ele é criado
$fp = fopen($HTTP_SERVER_VARS['DOCUMENT_ROOT']."/logs/".$filename, 'a+'); #abre
fwrite($fp, "TEXTO AQUI"); #escreve
fclose($fp); #fecha


Assim ele vai gravar sempre na mesma pasta. :)
| will - d.sign&c..odes
| www.neuronio.org
| fotolog.net/recycled

é isso aí :D

#5 augustorosauro

augustorosauro

    Turista

  • Usuários
  • 54 posts
  • Sexo:Não informado

Posted 29/03/2005, 15:14

Pergunta de newbie...

em 'DOCUMENT_ROOT' eu substituo pelo meu site como :
'www.meusite.com.br" ou mantenho como 'DOCUMENT_ROOT'.

Novato é uma xxxxxx...

Vlw, Augusto.

#6 recycled

recycled

    Turista

  • Usuários
  • 50 posts
  • Sexo:Não informado
  • Localidade:Florianópolis/SC
  • Interesses:Aprender e ensinar o pouco que sei :)

Posted 29/03/2005, 15:23

Mantém assim :)
| will - d.sign&c..odes
| www.neuronio.org
| fotolog.net/recycled

é isso aí :D




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq