Avatar billede clauso Nybegynder
22. september 2001 - 12:00 Der er 5 kommentarer og
1 løsning

Download counter

Hej,
Nogen der har en god idé til lidt kode som:
1/viser et link med en zip fil som kan downloades
2/ved tryk på link tæller et felt i mysql op med een
3/download box springer frem
4/siden med oprindelige link reloades
5/ NOK VIGTIGST: siden ligger på Freepaq, hvorfor
(response.redirect i asp) vel headers i PHP _ikke_
kan bruges. Jeg har tidl. brugt noget javascript
kode i asp, men intet virker i PHP.
Nogen foreslag?
Avatar billede Slettet bruger
22. september 2001 - 12:34 #1
noget lignende:

if ($download) {
$conn = mysql_connect(\"mysql.server\", \"bruger\", \"password\");
mysql_select_db(\"database\");
$sql = \"SELECT * FROM programmer WHERE id=\'$download\'\";
$result = mysql_query($sql);
    if(mysql_num_rows($result) == 1){
    $myrow = mysql_fetch_array($result);
    $old_val = $myrow[\"downloads\"];
    $new_val = $old_val + 1;
    $sql = \"UPDATE programmer SET downloads=\'$new_val\', oprettet=\'$myrow[oprettet]\', opdateret = \'$myrow[opdateret]\' WHERE id = \'$download\'\";
    $result = mysql_query($sql) or die(mysql_error());
    Header(\"Location:$myrow[sti]\");
    }else{
        echo \"fejl\";
        }
}
Avatar billede sunlock.dk Nybegynder
22. september 2001 - 12:37 #2
PHP: http://www.ftls.org/en/examples/php/clicks_counter.php3
ASP: http://www.dotdragnet.co.uk/download.asp?download=38

Den i PHP har jeg lige testet... den virker fint nok, men på freepaq, tja det ved jeg ikke lige.

::sunlock.dk::
Avatar billede clauso Nybegynder
22. september 2001 - 14:05 #3
>>>El_barto:
Jeg har prøvet at ligge dette op:
http://www.flightsim.dk/php/counter.php

<?php
include(\"fjernet.php\");
$sql1 = \"SELECT * FROM Fs WHERE Tb=\'Windows\'\";
$result1 = mysql_query($sql1);
echo \"<table>\";
while ($row = mysql_fetch_array($result1)) {
echo \"<tr><td><a href=counter.php?fileid=$row[34]>$row[34]</a>Download: $row[20]\"; //34=fileid 20=downloads
}
if ($fileid) {
include(\"fjernet.php\");
$sql = \"SELECT fileurl,downloads FROM Fs WHERE fileid=\'$fileid\'\";
$result = mysql_query($sql);
    if(mysql_num_rows($result) == 1){
    $myrow = mysql_fetch_array($result);
    $old_val = $myrow[20]; //20=downloads
    $new_val = $old_val + 1;
$sql = \"UPDATE Fs SET downloads=\'$new_val\' WHERE fileid=\'$fileid\'\";
    $result = mysql_query($sql) or die(mysql_error());
    Header(\"Location:$myrow[8]\"); //8=fileurl
    }else{
    echo \"fejl\";
        }
}
?>

Hvorfor skal jeg bruge $row[34] og ikke $row[\"fileid\"] som giver denne fejl:
Parse error: parse error, expecting `T_STRING\' or `T_VARIABLE\' or `T_NUM_STRING\'
in /www/flightsim.dk/html/php/counter.php on line 7  (***PHP er rimeligt nyt for mig***)

Jeg synes det virker nogenlunde, EXCL. den part
som bruger headeren, som ikke kan bruges på Freepaq grundet reklamen i toppen.

Jeg har tidl. haft held med flg. på asp/freepaq:
<META HTTP-EQUIV=\'REFRESH\' CONTENT=\'0;URL=\"<%= strurl %>\">
samt:
<script>
parent.location.href=\"<%=strURL%>\";
</script>

Dette har jeg prøvet at indsætte diverse steder,
uden held. Skal outputtet ikke holdes tilbage ligesom i asp (med Response.Buffer = True) ???
Hvad kunne dette tænkes at hedde i PHP??


>>>>Sunlock:
Jeg har ikke oploadet det foreslået script, da
jeg iflg. demoen mener det kun laver en
redirect til en anden side (mens det counter)men ikke reloader den med linket. Er det rigtigt forstået?
Avatar billede sunlock.dk Nybegynder
22. september 2001 - 14:10 #4
clauso <<<

Ja, desværre.. har ikke lige set så meget på det :(
Avatar billede clauso Nybegynder
23. september 2001 - 13:08 #5
Dette script er nu her:
http://www.flightsim.dk/php1/counter.php

<?
If ($fileid)  {
include(\"fjernet.php\");
$strSQL = mysql_query(\"SELECT downloads,fileurl FROM Fs WHERE fileid =$fileid\");
if  ($df = mysql_fetch_array($strSQL))  {
mysql_query(\"UPDATE Fs SET Downloads=Downloads+1 where fileid=$fileid\");
Header(\"Location: $df[8]\");
}
}


include(\"fjernet.php\");
$result    = mysql_query(\"SELECT * FROM Fs where Tb=\'Adventures\'\")
  or die( \"Unable to connect to SQL server. Reason: \".mysql_error());
while  ($row = mysql_fetch_array($result))  {
?>
<table><tr>
<td><a href=counter.php?table=Adventures&fileid=<? echo $row[34] ?>><? echo $row[7] ?></a>Downloads: <? echo $row[20] ?>&nbsp;&nbsp;Fileurl($row[8])=&nbsp;<? echo $row[8] ?>
</td></tr>
<?
}
?>
</table><br>
</body>

Counteren virkede vist alligevel ikke helt, men
det gør den nu. Imidlertid kommer download boxen
stadig ikke frem. Det er ikke nødvendigt at siden
reloades med det nye tal, bare counteren virker
ved reload (som nu) samt man kan downloade filen.
Avatar billede clauso Nybegynder
01. oktober 2003 - 18:51 #6
lukket
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