Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  17 2665
Håper dere sjønner spørsmålet mitt

Jeg har sikkert over 20 filer jeg vil "telle" nedlastinger på, og jeg legger til opp til flere filer for nedlastning hver dag, og istedet for at hver å en skal telle fra hver sin "counter.txt" fil (som de gjør nå), er det vell MYE enklere å bruke database til dette, slikt at alt havner på samme plass.. Alt jeg trenger at det skal stå i databasen er jo "name" og "count".(?)

Noen som kan hjelpe meg? Bruker host1 så har tilgang til MySQL og phpMyAdmin osv.. Er ikke så veldig flink med bruk av database heller, så hadde vært fint å fått hjelp her
Sist endret av pcn00b; 23. januar 2015 kl. 15:30.
En bedre måte å gjøre det på er å lage en tabell som følger:

navn: Download
id integer primary key
downloaded_file string (eventuelt varchar)
downloaded_at datetime
downloaded_by string

Hver gang noen laster ned filen legger du til en rad med hvilken fil, IP til den som lastet ned, samt tidspunktet det skjedde. På denne måten har du et veldig fleksibelt system, og du kan f.eks. lett skrive spørringer som viser trend på når forskjellige filer er populære, om samme bruker laster ned mange forskjellige filer (+++)
Sist endret av etse; 23. januar 2015 kl. 16:02. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
Trådstarter
98 3
Sitat av etse Vis innlegg
En bedre måte å gjøre det på er å lage en tabell som følger:

navn: Download
id integer primary key
downloaded_file string (eventuelt varchar)
downloaded_at datetime
downloaded_by string

Hver gang noen laster ned filen legger du til en rad med hvilken fil, IP til den som lastet ned, samt tidspunktet det skjedde. På denne måten har du et veldig fleksibelt system, og du kan f.eks. lett skrive spørringer som viser trend på når forskjellige filer er populære, om samme bruker laster ned mange forskjellige filer (+++)
Vis hele sitatet...
Trenger ikke så avansert oppsett
Navnene heter noe som:
com.oxox.fil1.deb
com.oxox.fil2.deb

Også vil jeg at det skal stå på min index.php
Eksempel: Download Count: 1

Så hver gang noen laster ned fil1.deb, blir tallet høyere for hver gang.
Sitat av pcn00b Vis innlegg
Trenger ikke så avansert oppsett
Navnene heter noe som:
com.oxox.fil1.deb
com.oxox.fil2.deb

Også vil jeg at det skal stå på min index.php
Eksempel: Download Count: 1

Så hver gang noen laster ned fil1.deb, blir tallet høyere for hver gang.
Vis hele sitatet...
Det er ikkje noe avansert oppsett, dette er veldig enkel database tabell oppsett. Det etse snakket om er bare en feature SQL språket gir deg.
Sist endret av 0xFF; 23. januar 2015 kl. 16:33.
Jeg vil påstå at det jeg foreslår er like enkelt som det du spør om, bare mye bedre. Kanskje til og med enklere siden du må gjøre en update med din og med min slipper du unna med kun insert.
Om du vil ha det enkelt så trenger du ikke lage funksjonalitet i databasen engang. Webserveren din har allerede logger du kan lese, og på den måten telle opp antall ganger en gitt url har blitt etterspurt
Trådstarter
98 3
Sitat av moridin Vis innlegg
Om du vil ha det enkelt så trenger du ikke lage funksjonalitet i databasen engang. Webserveren din har allerede logger du kan lese, og på den måten telle opp antall ganger en gitt url har blitt etterspurt
Vis hele sitatet...
Men.... how do i do that?
Trådstarter
98 3
Sitat av tripflag Vis innlegg
Vis hele sitatet...
Hva med denne database.sql? Jeg må jo ha en .sql fil som jeg importerer og leser ifra/til(?)
Sitat av pcn00b Vis innlegg
Men.... how do i do that?
Vis hele sitatet...
1. lærer et vilkårlig programmeringsspråk
2. finner ut hvordan man kan lese filer i språket valgt i pkt 1
3. åpner loggfilen og teller antall linjer som inneholder hver url
4. viser resultatet enten til konsoll eller skriver det til et eller annet lurt sted for senere bruk

Om alt dette viser gresk foreslår jeg å lese en bok om programmering, og et par uker med øvelser i hvordan man finner dokumentasjon på det store internettet ved hjelp av en søkemotor.

Om det fortsatt virker helt gresk er det også mulig å bare bruke ferdige analyseverktøy som Google Analytics til å vise all statistikk over dette, sortert på tid, verdenskart, isp, hvilken nettleser en bruker hadde og om det (sannsynligvis) var en jente eller gutt som lastet ned filen.

Dette er tross alt et underforum for programmering, så et snev av kunnskap fra trådstarter får man forvente. Og om du absolutt vil ha en database så har etse gitt deg et finfint forslag til hvordan det kan implementeres, det er bare å begynne å skrive kode
Overskuddsmateriell
Sitat av tripflag Vis innlegg
Vis hele sitatet...
Du bør ha key på file også, ikke bare id og ip.


Videre så støtter jeg forslaget om å legge inn en ny row for hver download. Pr i dag er kun antall downloads du ønsker å se, men la oss si om en mnd så kommer det en luring som vil ha grafer over når ting lastes ned. Hvordan er popularitet på nedlastingene og hvordan utvikler de seg etter som tiden går. Da har du allerede all data du trenger for å kunne levere ut de tallene.
Trådstarter
98 3
Ok, hva med slikt da:

Kode

CREATE TABLE IF NOT EXISTS `downloads` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `filename` text,
    `dldate` datetime DEFAULT NULL,
    `count` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM
Hvordan skal jeg lese denne filen?
Du kan importere filen rett til phpmyadmin etc, eller lime det inn i en query.

Du trenger forøvrig ikke "count" feltet.
For å sjekke antall downloads at et spesifikk filnavn kan du spørre:

SELECT COUNT(id) FROM downloads WHERE filename = "navnetpåfilen"
Trådstarter
98 3
Sitat av b1rken Vis innlegg
Du kan importere filen rett til phpmyadmin etc, eller lime det inn i en query.

Du trenger forøvrig ikke "count" feltet.
For å sjekke antall downloads at et spesifikk filnavn kan du spørre:

SELECT COUNT(id) FROM downloads WHERE filename = "navnetpåfilen"
Vis hele sitatet...
Ja, har importert filen i phpMyAdmin.
Har igjnnomført hele denne guiden:
https://gist.github.com/kirb/1922421

Nå lurer jeg på hvordan jeg kan se hvor mange ganger den har blitt lastet ned, i php.

Jeg har gjort akuratt det som står på den siden, alt er gjort 100% slikt det står. Problemet er at når jeg velger å laste ned noen av filene i "downloads" mappa, så kommer det ikke opp noe i phpmyadmin, men hvis jeg velger å navigere til den "minside.com/counter.php" så begynner den å laste ned "Packages" filen, og teller hvor mange ganger "Packages" har blitt lastet ned. Hvordan i alle dager er dette mulig?
Sist endret av pcn00b; 24. januar 2015 kl. 01:34. Grunn: Automatisk sammenslåing med etterfølgende innlegg.
En kjapp titt på scriptet sier meg følgende angående hvorfor Packages blir lastet ned og telt:

Kode

//Store the file name in a variable
$file = isset($_GET["filename"]) ? mysqli_real_escape_string($link, $_GET["filename"]) : "";
//The following code checks for attempts to read files that aren't debs.
//Not doing this lets attackers read PHP scripts and system files.
if (empty($file) or stristr("..", $file) or stristr("/", $file) or stristr("\\", $file) or !file_exists("downloads/$file")) {
//Reset the file name to the Cydia package listing
$file = "Packages";
}
Siden du går til minside.com/counter.php vil $file bli satt til "Packages", siden $_GET['filename'] er tom.

Database blir så oppdatert og counter økt med +1

Og tilslutt havner du her:

Kode

//Finally, serve the user the file they requested
$cont = file_get_contents($file == "Packages" ? "Packages" : "downloads/$file");
//If it's more than 16 bytes long, it's ok to serve it
if (strlen($cont) > 16) {
//Force Cydia to download the file, not display it
header("Content-Type: application/octet-stream");
header("Content-Disposition: inline; filename=\"$file\"");
//Tell Cydia how big the file is so it can show the progress bar
header("Content-Length: " . strlen($cont));
//And finally, output the file!
echo $cont;
Scriptet sjekker om $file inneholder "Packages" og om dette er tilfellet blir denne verdien sendt til nettleseren din og filen forsøkt lastet ned.
Sist endret av s1gh; 24. januar 2015 kl. 08:58.
Sitat av pcn00b Vis innlegg
Ok, hva med slikt da:

Kode

CREATE TABLE IF NOT EXISTS `downloads` (
    `id` int(11) NOT NULL AUTO_INCREMENT,
    `filename` text,
    `dldate` datetime DEFAULT NULL,
    `count` int(11) DEFAULT NULL,
    PRIMARY KEY (`id`)
) ENGINE=MyISAM
Hvordan skal jeg lese denne filen?
Vis hele sitatet...
Du bør skrive at dette ikke er noe du har laget selv, slik at folk som prøver å hjelpe deg kan komme med svar som kan brukes.

Sitat av b1rken Vis innlegg
Du kan importere filen rett til phpmyadmin etc, eller lime det inn i en query.

Du trenger forøvrig ikke "count" feltet.
For å sjekke antall downloads at et spesifikk filnavn kan du spørre:

SELECT COUNT(id) FROM downloads WHERE filename = "navnetpåfilen"
Vis hele sitatet...
Det er helt riktig det du sier, men ettersom OP har kopiert et script vil dette føre til at h*n må endre på dette scriptet også. Basert på kommentarene i denne tråden, virker ikke det veldig aktuelt. Anbefaler derfor at trådstarter bruker scriptet slik det står, men selv når man bruker andres arbeid er det et minstekrav at man kan forstå hvordan ting henger sammen.

Ingen til trådstarter, vær ærlig om hva du driver med og hvordan du går frem, så slipper vi andre å bruke tid på ubrukelige svar, som forøvrig er gode tips.

Til slutt, absolutt en fordel å lese litt grunnleggende SQL-teori, da dette handler om enkel database-design.
Sist endret av hosjmeister; 24. januar 2015 kl. 10:46.
Trådstarter
98 3
Sitat av hosjmeister Vis innlegg
Du bør skrive at dette ikke er noe du har laget selv, slik at folk som prøver å hjelpe deg kan komme med svar som kan brukes.



Det er helt riktig det du sier, men ettersom OP har kopiert et script vil dette føre til at h*n må endre på dette scriptet også. Basert på kommentarene i denne tråden, virker ikke det veldig aktuelt. Anbefaler derfor at trådstarter bruker scriptet slik det står, men selv når man bruker andres arbeid er det et minstekrav at man kan forstå hvordan ting henger sammen.

Ingen til trådstarter, vær ærlig om hva du driver med og hvordan du går frem, så slipper vi andre å bruke tid på ubrukelige svar, som forøvrig er gode tips.

Til slutt, absolutt en fordel å lese litt grunnleggende SQL-teori, da dette handler om enkel database-design.
Vis hele sitatet...
Hvis du ser litt lengre opp, så refererte jeg til posten jeg hadde fulgt, så ingen løgn her Scriptene har jeg funnet på nettsiden, og har ikke laget de selv.
Trigonoceps occipita
vidarlo's Avatar
Donor
Du spør åpenbart ikkje etter hjelp til programmering, men ei fiks ferdig løsning.