Download teller

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

.NET developer

Over deze functie Als .NET developer bouw je mee aan innovatieve dienstverlening en draag jij bij aan de groei van de organisatie. Kenter groeit namelijk hard op het gebied van kwaliteit, professionaliteit en innovatie en is altijd op zoek naar verbeteringen. Zij richten zich op de ontwikkeling van moderne meetoplossingen, ook juist op korte termijn. Zo kunnen zij vooruitlopen op het gebied van IoT, realtime data en andere innovatieve oplossingen. Als .NET developer ben je van onschatbare waarde. Je werkt samen met ruim 20 IT professionals aan zowel greenfield- als legacy-projecten. Dat doe je in samenwerking met ontwikkelaars, data engineers,

Bekijk vacature »

Java-softwaredeveloper

Wat je gaat doen: Dit ga je doen Daar kunnen we heel kort over zijn: software ontwikkelen met de agile-/scrumteams van toonaangevende organisaties. Zoals ministeries, gemeentes, financiële instellingen en retail- en energiebedrijven. En als het bij je past, begeleid je collega-developers in het ontwikkelproces. Doordat je tijdelijk aan een opdracht werkt, doe je in korte tijd veel mooie ervaringen op en leer je nieuwe technieken en tools kennen. Je teamleden werken bijvoorbeeld met Spring, JPA/Hibernate, AJAX, REST/JSON, GIT, AWS en TDD. Het interessante is dat jij volledig in control bent en zelf kiest welke opdrachten je oppakt. Het soort rol,

Bekijk vacature »

C# ontwikkelaar -> groei naar architect!

Bedrijfsomschrijving Voor deze belangrijke klant van ons zijn wij op zoek naar een echte techneut die een bepalende rol gaat spelen binnen de software afdeling. Je komt te werken bij een organisatie die zich heeft gespecialiseerd in het creëeren van online en offline oplossingen binnen de financiële sector. Als je hier gaat werken kom je terecht bij een grote speler in de markt die jou een stabiele en innovatieve omgeving biedt met veel vrijheid en ruimte om jezelf te blijven. Omdat er veel groei is en ook de komende jaren verwacht wordt is hier ruimte voor een ervaren ontwikkelaar die

Bekijk vacature »

Senior Android Developer

As a Senior mobile developer, you will contribute to the digital transformation of our clients. You will take part in a self-organizing multi-disciplined mobile platform. You have at least five years' experience with mobile development. Working together as a team and collaborate is really important. As a member of a multi-cultural scrum team, you work together towards the best results. You want to create the best solution for the customers and take full responsibility of the mobile platform: building, testing and supporting it. You are able of taking over the basic activities of other DevOps team members when necessary, like

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

Java Developer

Als Java Developer bij Coolblue Energie zorg je ervoor dat onze back-end systemen elke dag een beetje beter zijn. Wat doe je als Java Developer bij Coolblue? Coolblue Energie is de energiemaatschappij voor iedereen die energie wil besparen. Je krijgt niet alleen groene stroom maar we helpen je ook je energieverbruik te verminderen. Als Java Developer werk je met andere development teams samen om onze back-end systemen zo optimaal mogelijk te laten werken en onze klanten het beste inzicht en advies te geven om energieverbruik te verminderen. Op deze manier draag jij bij aan de groene-energietransitie. Ook Java Developer worden

Bekijk vacature »

Angular web developer

Dit is de rol Wat ga je doen? Als (Angular) Web Developer bouw jij mee aan de digitale ontwikkeling van Boels Rental. Samen met je scrum team ontwerp en ontwikkel jij intuïtieve, goed werkende en gebruiksvriendelijke webpagina’s en apps voor onze klanten en partners. Afhankelijk van het team (allen op locatie in Sittard) waar je in terecht komt werk je mee aan de nieuwe self-care portal genaamd MyBoels, onze website en/of het e-commerce platform, altijd met oog voor UX. Met jouw kennis als Angular Web Developer help je het Digital Solutions team om de development capability nog verder te professionaliseren

Bekijk vacature »

Junior PHP Developer

Je maakt een vliegende start van je carrière, door meteen mee te bouwen aan de digitale aspecten van Coolblue. Wat doe je als Junior PHP Developer bij Coolblue? Als Junior PHP Developer ben je meteen vanaf de start onderdeel van een development team. Je kijkt veel mee met collega’s en volgt trainingen om te groeien als Junior Developer. Op dat moment komt je wil om steeds te blijven leren naar boven. Daarnaast pak je in de sprints ook je eigen stories op om Coolblue iedere dag een beetje beter te kunnen maken. Je sterk analytisch vermogen komt dan ook goed

Bekijk vacature »

(Meewerkend) Lead developer MyAthlon

Bedrijfsomschrijving Over Athlon Aangenaam! Wij zijn Athlon. Dé internationale marktleider in moderne mobiliteitsoplossingen en onderdeel van de Mercedes-Benz Group. Met een rijke geschiedenis van meer dan honderd jaar mag je concluderen dat we al de nodige kilometers hebben afgelegd. Nemen we die voorsprong voor lief? Absoluut niet. Het maakt ons juist ambitieuzer om nog betere persoonlijke service te verlenen aan onze klanten. Wij geven samen met zo’n 1.700 collega’s vorm aan duurzame mobiliteit. Daar zijn we trots op. Van voertuigleasing tot wagenparkoplossingen en van elektrificeren tot bijdragen aan de deeleconomie. Functieomschrijving Product MyAthlon – wordt inmiddels in 5 verschillende landen

Bekijk vacature »

Java-softwaredeveloper

Wat je gaat doen: Dit ga je doen Daar kunnen we heel kort over zijn: software ontwikkelen met de agile-/scrumteams van toonaangevende organisaties. Zoals ministeries, gemeentes, financiële instellingen en retail- en energiebedrijven. En als het bij je past, begeleid je collega-developers in het ontwikkelproces. Doordat je tijdelijk aan een opdracht werkt, doe je in korte tijd veel mooie ervaringen op en leer je nieuwe technieken en tools kennen. Je teamleden werken bijvoorbeeld met Spring, JPA/Hibernate, AJAX, REST/JSON, GIT, AWS en TDD. Het interessante is dat jij volledig in control bent en zelf kiest welke opdrachten je oppakt. Het soort rol,

Bekijk vacature »

Full stack Developer / .NET / Angular / Azure

Dit ga je doen Jij gaat je als Full Stack .NET Developer voornamelijk bezighouden met: Het vertalen van concepten naar passende innovatieve en duurzame oplossingen; Het ontwikkelen van bedrijf kritische en gebruiksvriendelijke applicaties voor de internationale markt en intern gebruik; Bouwen aan software om het Internet of Things netwerk te ondersteunen; Het maken en onderhouden van interfaces tussen systemen aan de hand van API's; Het onderhouden en blijven verbeteren van de ontwikkelde software. Hier ga je werken Binnen deze organisatie zal jij als Full Stack .NET Developer een belangrijke rol krijgen en ga je dagelijks de uitdaging aan om maatwerk

Bekijk vacature »

C/C++ Developer

Dit ga je doen Inhouse ontwikkelen van maatwerk oplossingen op basis van de wensen van de klant; Configureren van de inhouse software op generatoren; Het opstellen van regelprogramma’s op basis van specificaties van deskundige; Functioneel en technisch testen; Werken aan tal van verschillende projecten (tegelijkertijd); Meedenken over innovatie en verbeteringen; Mogelijkheid om junioren te begeleiden en als kartrekker binnen het team te fungeren; Samenwerken met Engineers, Deskundigen en diverse klanten. Hier ga je werken Als Software ontwikkelaar C/C++ kom je te werken bij een toonaangevende organisatie in de mobiliteitsbranche die door het produceren van slimme producten Nederland steeds leefbaarder maakt!

Bekijk vacature »

Senior pega developer

As a Pega developer at Mandemakers in Waalwijk you will make an important contribution to the digitization of our business processes. In your role you will coordinate and attribute to all facets of the digital transformation of our company (fulltime). As a Pega developer you will make an important contribution to the digitization of our business processes. In your role you will coordinate and attribute to all facets of the digital transformation of our company. De Mandemakers Group, a house full of opportunities. You will take part in a great project for De Mandemakers Group and for Pega. You and

Bekijk vacature »

Senior Integration Developer

Functieomschrijving As senior integration developer at Randstad Groep Nederland IT you play an integral role in innovating and optimising our processes and way of working. As we continue to move towards a more internationally connected tech environment and build new global platforms, our integration team continues to grow. You will join the APK team (Applicatie Koppelingen), consisting of business analysts, developers, a product owner and scrum master. Together you are responsible for a fundamental aspect of our applications, providing the basis for our other development teams. What will you do as senior integrations developer? As senior integrations developer you work

Bekijk vacature »

Software developer

Over deze functie Als .NET developer bouw je mee aan innovatieve dienstverlening en draag jij bij aan de groei van de organisatie. Kenter groeit namelijk hard op het gebied van kwaliteit, professionaliteit en innovatie en is altijd op zoek naar verbeteringen. Zij richten zich op de ontwikkeling van moderne meetoplossingen, ook juist op korte termijn. Zo kunnen zij vooruitlopen op het gebied van IoT, realtime data en andere innovatieve oplossingen. Als .NET developer ben je van onschatbare waarde. Je werkt samen met ruim 20 IT professionals aan zowel greenfield- als legacy-projecten. Dat doe je in samenwerking met ontwikkelaars, data engineers,

Bekijk vacature »
Ignace Verschaeve

Ignace Verschaeve

22/12/2021 11:33:49
Quote Anchor link
Ik probeer een downloadteller te maken die bij houdt welke bestanden er werden gedownload en hoeveel keer.
In mijn MariaDB heb ik een tabel met maar 2 kolommen. Namelijk bestandsnaam (uniek) en downloads.
De bedoeling is dat telkens een bestand wordt gedownload er ofwel de bestandsnaam in de database wordt gezet of als er het reeds in staat de teller met 1 omhoog gaat.
Ik krijg wel de betreffende bestanden op mijn scherm maar mijn database wordt niet bijgewerkt of aangevuld.Hieronder de code. Als er iemand ziet waar ik in de fout ga dan hoor ik het graag. Maar ik zie het momenteel niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php
// Including the connection file:
//Inladen van de instellingen.

include '../instellingen.php';
 
$conn = new mysqli($database_adres, $database_login_naam, $database_login_wachtwoord, $database_naam);
//connectie testen
if ($conn->connect_error)
{

    die("verbinding mislukt: ".$conn->connect_error);
}



if(!$_GET['file']) error('Missing parameter!');
if($_GET['file'][0]=='.') error('Wrong file!');

if(file_exists("../".$_GET['file']))
{

    /* If the visitor is not a search engine, count the downoad: */
    if(!is_bot())
    $sql = "   INSERT INTO download_manager  (bestandsnaam)
    VALUES ('"
.mysqli_real_escape_string($conn,$_GET['file'])."')
    ON DUPLICATE KEY UPDATE downloads=downloads+1"
;
                
    $bsn=$_GET['file'];
    header("Location: https://fv-??-?????nen.be/$bsn");
    exit();

}

else {
echo "This file does not exist!";
}


/* Helper functions: */

function error($str)
{

    die($str);
}

function
is_bot()
{

    /* This function will check whether the visitor is a search engine robot */

    $botlist = array("Teoma", "alexa", "froogle", "Gigabot", "inktomi",
    "looksmart", "URL_Spider_SQL", "Firefly", "NationalDirectory",
    "Ask Jeeves", "TECNOSEEK", "InfoSeek", "WebFindBot", "girafabot",
    "crawler", "www.galaxy.com", "Googlebot", "Scooter", "Slurp",
    "msnbot", "appie", "FAST", "WebBug", "Spade", "ZyBorg", "rabaz",
    "Baiduspider", "Feedfetcher-Google", "TechnoratiSnoop", "Rankivabot",
    "Mediapartners-Google", "Sogou web spider", "WebAlta Crawler","TweetmemeBot",
    "Butterfly","Twitturls","Me.dium","Twiceler","Bingbot","DuckDuckBot","YandexBot","facebot", "ia_archiver");

    foreach($botlist as $bot)
    {

        if(strpos($_SERVER['HTTP_USER_AGENT'],$bot)!==false)
        return true;    // Is a bot
    }

    return false;   // Not a bot
}
?>
 
PHP hulp

PHP hulp

26/11/2022 23:35:42
 
Ozzie PHP

Ozzie PHP

22/12/2021 11:41:46
Quote Anchor link
Zo te zien maak je een query aan via $sql = ...

Maar je voert de query niet uit.
 
Ignace Verschaeve

Ignace Verschaeve

22/12/2021 11:47:16
Quote Anchor link
Hoe bedoel je? Waar mankeert wat?
 
Ozzie PHP

Ozzie PHP

22/12/2021 11:52:51
Quote Anchor link
Zoals ik het zeg ... je maakt een query (een opdracht) aan, maar je voert 'm nergens uit. Bekijk maar eens een voorbeeldje via Google.
 
- Ariën  -
Beheerder

- Ariën -

22/12/2021 11:55:46
Quote Anchor link
Het enige wat je doet is een string aanmaken met de opdracht, maar niet het commando (de query) geven dat het moet worden uitgevoerd. Dat laatste moet je uiteraard ook doen.
 
Ivo P

Ivo P

22/12/2021 12:16:01
Quote Anchor link
en hoe goed laat mysql_real_escape_string (procedureel) zich mengen met OO $conn = new mysqli() ?
 
- Ariën  -
Beheerder

- Ariën -

22/12/2021 13:24:04
Quote Anchor link
Volgens mij kan dat gewoon. Al raad ik het niet aan.
 
Ignace Verschaeve

Ignace Verschaeve

22/12/2021 14:39:35
Quote Anchor link
Mochten jullie nu eens een voorbeeldje geven dan ben ik al heel wat geholpen.
 
Ivo P

Ivo P

22/12/2021 14:44:24
Quote Anchor link
op regel 24:

$conn->query() neerzetten om die query uit te kunnen voeren.

Verder: je redirect daarna de browser naar het bestand.

Je realiseert je dat iemand dus ook rechtstreeks daarheen kan gaan? Niet erg als de download dan niet geteld wordt, maar je kunt hier zo dus geen beveiliging "mag hij dit bestand downloaden?" aan toe voegen.

Verder kan iemand hier dus ook
index.php?file=instellingen.php aanroepen.

(dat doet dan uiteindelijk weinig omdat je de browser redirect, maar met file_get_contents() of fpassthru() kun je dan een issue krijgen
 
Adoptive Solution

Adoptive Solution

22/12/2021 15:22:23
 
Ivo P

Ivo P

22/12/2021 15:24:41
Quote Anchor link
zit je wel in het juiste topic Adoptive?
 
Ozzie PHP

Ozzie PHP

22/12/2021 15:37:59
Quote Anchor link
Ivo P op 22/12/2021 15:24:41:
zit je wel in het juiste topic Adoptive?

Ja hoor, hij zit volledig in het juiste topic :-)
 
Ignace Verschaeve

Ignace Verschaeve

22/12/2021 16:01:37
Quote Anchor link
Onderstaand de juiste code die werkt zoals ik het wil. Het betreft ondertussen 35000 bestanden die direct opvraagbaar zijn. En inderdaad als ze de link kopiëren kunnen ze het bestand rechtstreeks downloaden en wordt het niet geteld. Het zoeken naar de betreffende bestanden kan maar na het ingeven van een login en paswoord. Het werkt zo:
Ze zoeken een bepaalde naam. Dan krijgen ze een lijst met mogelijke matches en met meer details en een downloadlink die verwijst naar de pagina met dit PHP script waardoor de teller bijgewerkt wordt en ze doorverwezen worden naar het downloadbare bestand.
Een beetje moeten zoeken naar de juiste volgorde van de code lijnen maar nu werkt het.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if(file_exists("../".$_GET['file']))
{
    /* If the visitor is not a search engine, count the downoad: */
    if(!is_bot())
    $sql = "INSERT INTO downloads_manager  (bestandsnaam)
    VALUES ('".mysqli_real_escape_string($conn,$_GET['file'])."')
    ON DUPLICATE KEY UPDATE downloads=downloads+1";

    $bsn=$_GET['file'];
  
    header("Location: https://fv-??-????nen.be/$bsn");
    
if (mysqli_query($conn, $sql)) {
  echo "Record met succes geupdated"."<br/>";
} else {
  echo "Fout updating record: " . mysqli_error($conn)."<br/>";
}
    exit();
}    
else {
echo "This file does not exist!";
}
 
Ivo P

Ivo P

22/12/2021 18:37:20
Quote Anchor link
in dat geval zou ik het toch dichttimmeren: het zal een kwestie van tijd zijn voor de directe url uitlekt naar Google, of voor iemand het systeem in de bestandsnamen herkent.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php

$filename
= filter_input(INPUT_GET, 'file');
if(strpos($filename, '/') !== false  || is_bot()) {
   // de filename bevat een path, en dat wil je niet!
   header('HTTP/1.0 403 Forbidden');
   exit();
}


if(file_exists("../".$filename))
{

    /* If the visitor is not a search engine, count the downoad: */
    $sql = "INSERT INTO downloads_manager  (bestandsnaam)
            VALUES ('"
.mysqli_real_escape_string($conn,$_GET['file'])."')
            ON DUPLICATE KEY UPDATE downloads=downloads+1"
;

    $conn->query($sql);
    fp = fopen('../'.$filename, 'rb');
    header("Content-Type: application/pdf");
    fpassthru($fp);
    exit();
}
    
else {
   header("HTTP/1.0 404 Not Found");
   exit();
}

?>


en je directory ../ mag dan helemaal onbereikbaar gemaakt worden voor browsers (buiten de documentroot, of via .htaccess rules forbidden gemaakt)

edit:
is_bot() miste een {}set,maar doet het beter in de eerste if.
Gewijzigd op 22/12/2021 18:39:46 door Ivo P
 
- Ariën  -
Beheerder

- Ariën -

22/12/2021 19:22:14
Quote Anchor link
Persoonlijk zou ik de directory buiten de webroot plaatsen.
Dan ben je safe dat er niemand zomaar bij komt zonder eerst jouw script te passeren.
 
Ignace Verschaeve

Ignace Verschaeve

22/12/2021 20:33:49
Quote Anchor link
We gaan het eens bekijken die suggesties. Het zijn wel telkens verschillende directories en zelfs verschillende sites waarop die bestanden staan. Dus ga ik dat moeten uittesten.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.