Avatar billede dotcom1 Nybegynder
06. juli 2004 - 13:17 Der er 2 kommentarer og
1 løsning

Kombinere to php-scripts

Jeg bruger flg. .txt-baserede download-tæller: (download.php)

  $extension = "";         //leave this blank if you have various extensions.
  $counterdir = "counters/";     //change this if you want other directory for the counter files.

  $textfont = "Verdana,Arial";  //text font for the error msg
  if (file_exists("$get$extension"))
      {
        header("location: $get$extension"); // download the file [download.php?get=name_of_file]
    $file = fopen("$counterdir/$get.txt","r");  // download counter
    $count = fread($file, 100);
    $countplus = ($count + 1);
        fclose($file);
    $fileb = fopen("$counterdir/$get.txt","w");
    fwrite($fileb, $countplus, 100);
    fclose($fileb);
      }
  else     echo "<font face=$textfont size=2>";
    echo "<center><br><br>The file [<b>$get$extension</b>] is not available for download.<br>";
    echo "Please contact the web administrator <a href='http://www.minwebside.dk</a>here";

?>
-som kaldes med download.php?get=minfil.pdf

Jeg vil nu gerne tilføje dette script (forcedownload.php), som tvinger browseren til at downloade scriptet i stedet for at åbne det i vinduet:

<?
$path = "minmappe/".$HTTP_GET_VARS['filename'];
$file = basename($path);
$size = filesize($path);

header ("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=$file");
header("Content-Length: $size");

readfile($path);
?>
- som kaldes med forcedownload.php?filename=minfil.pdf"

Begge scripts virker fint hver for sig, men hvordan får jeg dem til at virke samtidigt ved ét klik på links til den fil (.pdf), der skal downloades, så den både tæller, samt gemmer pdf-filen lokalt på den enkelte computer?

På forhånd tak. :-)
Avatar billede dotcom1 Nybegynder
07. juli 2004 - 12:16 #1
Ingen der kan hjælpe?
Avatar billede dotcom1 Nybegynder
07. juli 2004 - 21:09 #2
har nu fået følgende script, som også virker, men tælleren tæller ikke helt rigtigt. I stedet for at tælle én op ved hvert klik, så skriver den det nye tal ved siden af det gamle, dvs. 25 bliver ved et klik til 2526 som ved næste klik bliver til 25262527... Er der én, der kan rette denne fejl?

<?php

$download_dir = '.'; // the folder where the files are stored
$counter_dir = 'counters'; // the folder where your counter files are stored

// each file to download must have a file called like "filename + .txt" in the counter folder
// download the file [download.php?get=name_of_file]

$path = $download_dir.'/'.$HTTP_GET_VARS['get'];

if (file_exists($path))
{
    $file = fopen($counter_dir.'/'.$HTTP_GET_VARS['get'].'.txt','r+');
    $count = fread($file, 100);
    $count++;
    fwrite($file, $count, 100);
    fclose($file);
   
    $size = filesize($path);
   
   
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.$HTTP_GET_VARS['get']);
    header('Content-Length: '.$size);
   
    readfile($path);

}else{

    echo "<font face=$textfont size=2>";
    echo "<center><br><br>The file [<b>$get$extension</b>] is not available for download.<br>";
    echo "Please contact the web administrator.";
}

?>
Avatar billede dotcom1 Nybegynder
08. juli 2004 - 13:04 #3
Her er den endelige løsning:
<?php

$download_dir = '.'; // the folder where the files are stored
$counter_dir = 'counters'; // the folder where your counter files are stored

// each file to download must have a file called like "filename + .txt" in the counter folder
// download the file [download.php?get=name_of_file]

$path = $download_dir.'/'.$HTTP_GET_VARS['get'];

if(file_exists($path)){
$file = fopen($counter_dir.'/'.$HTTP_GET_VARS['get'].'.txt','r+');
$count = fread($file,100);
fclose($file); // closes file
$count++;
$file = fopen($counter_dir.'/'.$HTTP_GET_VARS['get'].'.txt','w'); // opens file again with 'w'-parameter
fwrite($file, $count);
fclose($file);

$size = filesize($path);

header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$HTTP_GET_VARS['get']);
header('Content-Length: '.$size);

readfile($path); 

}else{

    echo "<font face=$textfont size=2>";
    echo "<center><br><br>The file [<b>$get$extension</b>] is not available for download.<br>";
    echo "Please contact the web administrator <a href='http://www.ditsite.dk</a>here";
}

?>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester