webForumDet fria alternativet

Har en enkel download counter. Bara ett noob problem...

PHP

3 svar · 243 visningar · startad av Pontus Thor

Medlem sedan juni 2002324 inlägg
Frågan#1

Jag har letat efter en bra download-counter men har inte hittat det så jag försöker göra om en dålig....

Vill att den ska välja textfil och nerladningsfil beroende på vilket id det står efter download.php (download.php?id=x)

Kladar in ett par switch i koden så ni fattar vad jag menar. :birp (det ända ni behöver göra är att göra om

switch ($id){ case 1;....

till giltig php kod!)

<?php
switch ($id){
  case 1:
    echo "$fp=fopen("counter1.txt","r+");";
    break;
  case 2:
    echo "$fp=fopen("counter2.txt","r+");";
    break;
}

flock($fp,1);
$count=fgets($fp,6);
$count+=1;
rewind($fp);
fputs($fp,$count);
flock($fp,3);
fclose($fp);
switch ($id){
  case 1:
    echo "header ("location: film1.zip");";
    break;
  case 2:
    echo "header ("location: flyganfall.zip");";
    break;
}
exit();
?>
Medlem sedan aug. 20002 975 inlägg
#2

Prova med att slänga bort dina echo. Typ

echo "$fp=fopen("counter1.txt","r+");";

till

$fp=fopen("counter1.txt","r+");
Medlem sedan juni 2002324 inlägg
#3

Funkar utmärkt. Viste att det var något äckligt enkelt.....

Tack så mycket :birp

Medlem sedan okt. 20023 030 inlägg
#4

Vill du ha en mycket midre kod och har tänkt göra filerna med samma namn fast med siffran som enda skillnad (alltså counter##.txt) kan du göra såhär.

<?php
    $fp=fopen("counter$id.txt","r+");
    flock($fp,1);
    $count=fgets($fp,6);
    $count+=1;
    rewind($fp);
    fputs($fp,$count);
    flock($fp,3);
    fclose($fp);
    switch ($id){
        case 1:
            echo "header ("location: film1.zip");";
            break;
        case 2:
            echo "header ("location: flyganfall.zip");";
            break;
    }
    exit();
?>
253 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)