Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Contador de Download


®odrigo_$am

Pergunta

Oopa..

Fala aí galera..

Eu fiz um sistema de Upload e Download..e resolvi colocar uma paradinha pra contar os downloads...

Porém está acontecendo um erro que não estou sacando qual que é..

Será que alguém pode me ajudar?

O código do download.php é esse.

<?php
chdir('./docs'); // entrar no diretório
if (!is_file($arquivo)) { // se o arquivo não é arquivo ...
echo "Erro: arquivo $file não encontrado !";
exit; // ... aborte o programa
}
$con = mysql_connect('localhost','root','');
mysql_select_db('noticia');
$consulta = "SELECT arquivo,hits FROM contador WHERE arquivo='$arquivo'";
$res = mysql_query($consulta,$con);

if ($saida = mysql_fetch_array($res)) { // registro existe
$hit = ++$saida[1]; // some 1 (um) ao número de cliques
$update = "UPDATE contador SET hits=$hit WHERE arquivo='$arquivo'";
mysql_query($update,$con); // atualize o registro
} else {
$insert = "INSERT INTO contador (arquivo) VALUES ('$arquivo')";
mysql_query($insert,$con); // insira o novo arquivo na tabela. O valor padrão
// de hit é 1 (um)
}
$tamanho = filesize($arquivo); // pega o tamanho do arquivo em bytes
// enviar os cabeçalhos HTTP para o browser
header("Content-Type: application/save");
header("Content-Length: $tamanho");
header("Content-Disposition: attachment; filename=$arquivo");
header("Content-Transfer-Encoding: binary");
// abrir e enviar o arquivo
$fp = fopen("$arquivo", "r");
fpassthru($fp);
fclose($fp);
?>
E esse é o código do Link ..
<?php
  $cont = 0;
  while ($row = mysql_fetch_array($res))
  {
  $arq = $row['foto'];
  if ($cont % 2 == 0)
  {
  $cor = "#f2f2f2";
  }
  else
  {
  $cor = "#ffffff";
  }
  echo "<tr style='border-right:#333 1px dotted;' bgcolor='".$cor."'>";
  echo "<td style='border-right:#333 1px dotted;' align='center'>".$row['id']."</td>";
  echo "<td style='border-right:#333 1px dotted;'>"."<a href='./download.php?arquivo=$arq'>$arq</a>"."</td>";
  echo "</tr>";
  $cont = $cont + 1;
  }
?>

E o erro que está ocorrendo é esse

Notice: Undefined variable: arquivo in C:\EasyPHP\www\site\download.php on line 3

Notice: Undefined variable: file in C:\EasyPHP\www\site\download.php on line 4

Tipo, a pasta está criada, o arquivo existe... agora não seu porque ele diz sobre as variáveis... onde estou errando.. por favor será que alguém pode me ajudar..?

Abraço!!

Editado por ®odrigo_$am
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Basta ler o erro, variável indefinida... quer dizer que a variável não existe, você tem que resgatar ela com $_GET/$_POST (dependendo do caso), para que ela existir, ela só é criada automaticamente com register_globals ON.

Troca:

if (!is_file($arquivo)) { 
echo "Erro: arquivo $file não encontrado !";
Por:
$arquivo = $_GET['arquivo'];
if (!is_file($arquivo)) { 
echo "Erro: arquivo $arquivo não encontrado !";

Link para o comentário
Compartilhar em outros sites

  • 0

Oopa..

Graaande ESerra ... não acredito que era só isso..

Vlw irmãozinhu... esse script eu peguei aqui mesmo no forum... e nem meliguei pra essa parada..

Vlw... mais uma pra aprender..

Obrigado!

Obs.: Ah...e quanto a ler a msg do erro... eu tinha lido cara...e sabia que a variável não estava definida... eu só não havia me ligado como proceder... daí você me abriu os olhos " $_GET[' '];" .... vlw irmão!

Editado por ®odrigo_$am
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...