Download teller

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Front end developer Zorgplatform

Functie Jij als Front end ontwikkelen zult komen te werken samen met 1 PHP ontwikkelaar, 1 Python developer en een flexibele schil aan ontwikkelaars . Samen ga je ervoor zorgen dat de huidige producten doorontwikkeld worden. De Marketplace is geschreven in PHP Laravel en in de front end React. De roostersoftware is ontwikkeld in Python in combinatie met React in de front end. Jij zult als Front ender dus voornamelijk bezig zijn met het verbeteren van onze interfaces op onze verschillende producten. Momenteel ligt de uitdaging in het feit dat de roostersoftware breder schaalbaar moet worden zodat het voor meerdere

Bekijk vacature »

Back end developer Digital Agency

Functie Als PHP developer kom jij terecht in een compact team van ervaren (meerdere medior en senioren) programmeurs, waar jij door middel van een uitdagend takenpakket uitgedaagd wordt om jezelf verder te ontwikkelen. Afhankelijk van jouw interesses, wensen en capaciteiten word je bij projecten en onderwerpen naar keuze betrokken. In het begin ben jij vooral bezig met object-georiënteerd programmeren en het uitdenken van nieuwe functionaliteiten. Naarmate jouw skills groeien, zal jouw takenpakket ook uitgebreider worden! Er wordt enorm veel waarde gehecht aan de kwaliteit die niet alleen jij, maar al jouw collega’s opleveren. Daarom staat jouw ontwikkeling op nummer 1!

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 »

Vacature: Oracle APEX Ontwikkelaar

Bedrijfsomschrijving Wij zijn op zoek naar een gepassioneerde en ervaren Oracle APEX ontwikkelaar voor onze klant in Amsterdam die actief is binnen de goede doelen sector. Onze klant streeft naar verbetering van de maatschappij door middel van technologie en ze zoeken iemand die zich daarbij wil aansluiten. Functieomschrijving Als Oracle APEX ontwikkelaar zul je verantwoordelijk zijn voor het ontwikkelen en onderhouden van effectieve en efficiënte APEX toepassingen die bijdragen aan de doelstellingen van onze klant. Je zult nauw samenwerken met andere ontwikkelaars en stakeholders om te zorgen voor een soepele en efficiënte implementatie. Functie-eisen Minimaal 3 jaar ervaring als Oracle

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

Bekijk vacature »

Ervaren PHP developer gezocht!

Functie Het team bestaat inmiddels uit zo’n 25 collega’s met specialisten op het gebied van development, data(analyse), marketing, infrastructuur en finance. Ze hebben een supermodern pand en bieden hiernaast veel vrijheid en verantwoordelijkheid. Ze doen er alles aan om jou op te gemak te stellen. Zo kun je je eigen werkplek inrichten naar persoonlijke wensen, maar gaan ze bijvoorbeeld ook jaarlijks met elkaar wintersporten en zijn er andere leuke uitjes. Als onderdeel van één van de scrumteams ga je aan de slag, samen ben je medeverantwoordelijk voor het doorontwikkelen van hun business applicatie waar het traffic team dagelijks mee werkt.

Bekijk vacature »

Freelance ontwikkelaar Open Forms (zzp)

Startdatum: zsm Duur: 3-6 maanden Inzet: 32 uur Schaal 10, CAO Gemeenten Standplaats Groningen. In overleg kan er remote worden gewerkt. Inhuurdesk zal selectie maken en voorstellen op moment van binnenkomst Wij zoeken een ontwikkelaar in een specifiek vakgebied, namelijk OpenForms ofwel Open Formulieren. In die zin is het te vergelijken met een Drupal ontwikkelaar. Voor het programma PodiumD zoeken we technische development expertise die bekend is met Common Ground principes en in staat is om Open Source toepassingen te modelleren voor onze gebruikers. Een aantal kenmerken wat betreft kennis en ervaring die we denken te zoeken: - Ervaring met

Bekijk vacature »

Senior pega developer

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 your team will have close contact with the Pega organization in NL, USA and India, while developing together. Wat ga je doen? Our Scrum teams are working hard at our headquarters in Waalwijk to successfully develop Pega applications. We have

Bekijk vacature »

C# .NET Developer

Dit ga je doen Ontwikkelen van de Back-end in .NET6 / C# en WebAPI (Focus);) Ontwikkelen van de Front-End in Nodje.js en Angular (secundair); Ontwikkelen in Blazor; Opstellen van een technisch ontwerp; Testen, documenteren en implementeren van de nieuwe applicatie; Verzorgen van de nazorg, na de implementatie. Hier ga je werken Binnen deze organisatie werken duizenden mensen binnen allerlei verschillende disciplines. Tevens hebben zij veel specialiteiten in huis, waaronder ook .Net Developers. Ter uitbreiding van een nieuw team en ter ondersteuning van het project zijn ze opzoek naar een nieuwe collega voor het team. Als C#.NET Developer zal jij je

Bekijk vacature »

PHP backend developer

Functie Momenteel zijn ze op zoek naar een PHP backend developer die in staat is om (Laravel) maatwerkapplicaties te ontwikkelen. Je werkt naast je eigen nieuwbouwprojecten ook aan het optimaliseren van bestaande projecten. Gemiddeld werk je aan 3 proecten tegelijk. Ongeveer 70% van je tijd schrijf je code, 15% documentatie en werken aan interne verbeteringen en de overige 15% heb je overleg met klanten en/of collega’s. Hierin heb je veel vrijheid en verantwoordelijkheid om je werk prettig in te delen. Eisen • HBO werk- en denkniveau • Diepgaande kennis van PHP, daarnaast goede kennis van JavaScript, MySQL en PHP framework

Bekijk vacature »

Medior .NET Developer Brede functie nieuwe technie

Bedrijfsomschrijving Voor een bedrijf gevestigd in de buurt van Bodegraven zijn wij op zoek naar een enthousiaste Software C#.NET Developer! Je komt te werken bij een bedrijf met ongeveer 35 medewerkers waarvan het merendeel een IT achtergrond heeft. Ze hebben al een paar decennia lang ervaring binnen de wereld van ICT voor de Overheid, met een complete focus op de eindgebruiker. Er werken hier gepassioneerde ICT'ers welke in teamverband nieuwe applicaties maken in bijvoorbeeld het belastingdomein. Het team is jong, ervaring is er echter genoeg. Vanuit een mooi vormgegeven pand te Bodegraven wordt er iedere dag hard gewerkt aan highend

Bekijk vacature »

Airport Developer

De functie Als onze nieuwe Airport Developer / System Engineer is je doel om uit nieuwbouw- en onderhoudsprojecten maximale waarde te creëren voor Schiphol Group en haar stakeholders. Vanuit je visie en expertise, maar ook (technologische) ontwikkelingen, wetgeving en beleid vertaal je klantwensen naar een gedegen programma van eisen. In de planontwikkelingsfase werk je nauw samen met Plan Ontwikkelaars om je kennis in te brengen ten behoeve van de kwaliteit van het investeringsvoorstel. Je overlegt met diverse partijen, stelt de vraag achter de vraag en verbindt zo de belangen van de luchthaven, proceseigenaar en asseteigenaar om tot een gedragen ontwikkelopgave

Bekijk vacature »

Front end ontwikkelaar Onderwijs

Functie Het doel van dit team is om te zorgen dat de studenten altijd op de hoogte zijn van relevante informatie en de mogelijkheid hebben om online vragen te stellen. Hiervoor hebben ze een portal ontwikkeld. De app is echt een greenfield project met een eigen inrichting middels cloud. De ontwikkeling wordt gedaan door gebruik te maken van oa. Javascript, React, CSS, Next.js, GraphQL in een Azure Cloud omgeving. Daarnaast gebruiken ze tooling als Figma, storybook, Jest en Github. De complexiteit in deze rol zit hem in het feit dat data uit verschillende bronsystemen komt waarbij er zowel gekoppeld wordt

Bekijk vacature »

Back end Node.js developer

Functie Het ontwikkelteam bestaat momenteel uit 5 (back-end) Developers, 2 systeembeheerders, 1 DevOps engineer, 1 Tech Lead en 2 Scrum Masters. Samen wordt er doorontwikkeld aan twee SaaS-platformen die in een hoog tempo doorontwikkeld moeten worden. Omdat innovatie een belangrijk speerpunt binnen de organisatie is, wordt er ook continu naar snellere en slimmere oplossingen te bedenken en realiseren. Als Back-end Developer hou jij je dagelijks bezig met vraagstukken zoals: API-development, high volume datastromen, het ontwikkelen van Bots aan de hand van A.I. Daarnaast denk en werk jij mee aan de onlineapplicaties voor klanten. Er wordt zelfstandig en in teamverband gewerkt

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

21/03/2023 05:25:03
 
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.