• Login
  • Register
  • Zoek
This Thread
  • Everywhere
  • This Thread
  • This Forum
  • Articles
  • Pages
  • Forum
  • Filebase Entry
  • More Options

ICTscripters

Dé plek voor IT

Dé plek voor IT

Login

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  9. Goedkope domeinnamen
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • Beta-testers gezocht voor Crypto-oefenplatform

    Syntax 29 januari 2026 om 16:11
  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 19 januari 2026 om 09:34
  • Developer Gezocht

    Mikevdk 10 januari 2026 om 18:57
  • Op zoek naar de legends

    Syntax 5 januari 2026 om 13:50
  • [FREE] WeFact Hosting module

    Jeroen.G 13 oktober 2025 om 14:09
  • Help testers nodig voor android app Urgent

    urgentotservices 26 september 2025 om 10:21
  • Versio vervanger

    Jeroen.G 25 augustus 2025 om 15:56
  • Afspraken systeem met planbeperking

    Lijno 1 augustus 2025 om 23:04

Marktplaats

  • 350 Nieuwe Domeinnamen Januari 2026

    shiga 1 februari 2026 om 14:21
  • 321 Nieuwe Domeinnamen December 2025

    shiga 1 januari 2026 om 10:26
  • Meerdere mafia game template te koop

    Syntax 26 december 2025 om 00:07

[PHP] Automatisch updaten

  • WHMCSAddons
  • 18 oktober 2015 om 20:38
  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 18 oktober 2015 om 20:38
    • #1

    Goedenavond,

    Ik ben voor een persoonlijk project bezig om een op afstand te beheren updater te maken, hiermee kan de gebruiker een controle doen op een versie nummer.

    Korte uitleg:
    Ik wil het voor gebruikers mogelijk maken op afstand te kunnen updaten zonder hiervoor hun account te benaderen. De code moet dus met één klik volledig bijgewerkt worden naar een nieuwe versie die door ons aangeleverd wordt.

    Waar lijkt het op:
    WordPress heeft een soort gelijke functie als je een controle doet op de core updater, zoiets wil ik dus ook maken maar dan voor eigen code.

    Kent iemand, of weet iemand soort gelijke code, mag betaalde code zijn mits ik wel volledig toegang heb tot de code ervan om het uit te lezen. Wil de veiligheid ervan kunnen garanderen dus encoded versies accepteer ik niet voor gebruik.

  • mica-
    Student
    Ontvangen Reacties
    10
    Berichten
    111
    • 18 oktober 2015 om 21:03
    • #2

    Deze is mss interessant ex collega van mij deed zo een logica voornamelijk met github.
    http://www.thisprogrammingthing.com/2013/automatic…-service-hooks/

    Geen idee of deze bron je enkele waarde kan verschaffen maar weet alle sinds dat het mogelijk is via een github repository.

    Mafiasource on Github

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 18 oktober 2015 om 21:42
    • #3

    Goedenavond MiCa-,

    Het is niet de bedoeling dat deze updates openbaar of via andere bronnen gaan, we houden de updates binnen eigen bron omdat het een om een gesloten directory gaat die alleen via het bestand bereikbaar is.

    Edit:
    Mogelijk dat ik het zelf toch maar ga schrijven, heb de versie nummer controle momenteel al draaien.
    Nu moet ik eigenlijk alleen het update gedeelte nog schrijven welke het bestand toegang geeft tot onze downloads directory.

    De directory is voor de rest afgesloten en onbereikbaar, alleen het upgrade bestand (welke met ioncube encode gegeven wordt) zal automatisch controleren. Indien een update beschikbaar is kan de gebruiker zelf op elk gewenst moment een update uitvoeren.

    Edit:
    Het is inmiddels al gelukt, moet alleen de beveiliging ervan op orde zetten.

    Bewerkt één keer, laatst door WHMCSAddons (18 oktober 2015 om 22:13).

  • mica-
    Student
    Ontvangen Reacties
    10
    Berichten
    111
    • 18 oktober 2015 om 23:49
    • #4

    Ja ik dacht wel dat je dit ook zelf kon schrijven zonder er al te veel werk van te maken.
    Leuk dat het gelukt is!

    Mafiasource on Github

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 19 oktober 2015 om 20:11
    • #5

    Ik deel de code liever niet maar kan wel erop in gaan hoe ik de beveiliging precies gedaan heb, onthoud dat de upgrade bestand in mijn geval dus encoded is en niet uitgelezen kan worden.

    Stap 1:
    Ik heb met de file_get_contents() functie een POST uitgevoerd op een bestand die op eigen server aanwezig is. In dit bestand stuur ik login gegevens en de gewenste versie die gedownload zal worden.

    Voorbeeld code:

    PHP: upgrade.php
    $postdata = http_build_query(
        array(
            'var1' => 'some_variable',
            'var2' => 'another_variable'
        )
    );
    
    
    $opts = array('http' =>
        array(
            'method'  => 'POST',
            'header'  => 'Content-type: application/x-www-form-urlencoded',
            'content' => $postdata
        )
    );
    
    
    $context  = stream_context_create($opts);
    
    
    $result = file_get_contents('http://example.com/download.php', false, $context);
    Toon Meer


    Stap 2:
    Nu heb ik op eigen server een bestand genaamt "download.php" dit wordt aangeroepen in stap 1. Via de $postdata variable heb ik login gegevens gestuurd die controleert of de aanvraag geldig is gedaan via eigen bestand. Ik weet immers als enigste wat de login gegevens hiervan zijn aangezien die door mij ook ingestelt zijn.

    Hier controleer ik simpelweg of de POST waarde overeenkomt, dus klopt de username/password combinatie met wat ingesteld is.


    Stap 3:
    Wanneer alles klopt kan ik een bestand aanroepen buiten de publieke map, ik wil namelijk niet dat iedereen zomaar toegang heeft tot die bestanden. Omdat ik deze bestanden zelf bijwerk kan ik dus ook als enigste de versies vrij geven.


    Korte samenvatting is eigenlijk dat het toch iets makkelijker voor me was dan ik in eerste instantie dacht, ik heb deze code in vrije tijd gemaakt dus mijn late reactie is omdat ik na me eigen werk hier pas aan verder kan werken.

    Hopelijk heeft iemand er nog iets aan, mochten jullie vragen hebben hoor ik dit graag :)

  • mica-
    Student
    Ontvangen Reacties
    10
    Berichten
    111
    • 19 oktober 2015 om 23:51
    • #6

    Heb ook een gelijkaardige code ontwikkeld voor mijn register, login, passlost enz... voor al mijn applicaties. En wat je zeker goed hebt gedaan is om die gevoelige files dus buiten de public mappen te houden, meerdere mensen zouden zo tewerk moeten gaan, goodjob!

    Mafiasource on Github

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 20 oktober 2015 om 14:34
    • #7

    Wellicht is het toch verstandiger om een Version Control System te gebruiken, je hebt dan namelijk ook een historie van vorige versies en wijzigingen. Mocht er dan onverhoopt iets fout gaan als je je code pusht kun je weer terug naar een vorige versie.

    Waarschijnlijk/hopelijk heb je daarnaast al allerlei voorzieningen getroffen die de kans op problemen minimaliseren:
    - continuous integration (push vaak (kleine) wijzigigen in plaats van af en toe mega-updates)
    - backwards compatible ontwikkelen (alle code die je schrijft conflicteert niet met bestaande code maar is (bij voorkeur) backwards compatible)
    - ontwikkel- en testomgeving benaderen zo goed mogelijk de productie-omgeving (platform, versies van gebruikte technologieën et cetera)

    @MiCa- interessant idee, maar ik weet niet of het handig is dat wijzigingen automatisch gepusht worden naar live; zelfs al heb je hiervoor een aparte (master) branch, mogelijk moet je voordat je iets live zet toch al dingen handmatig regelen, dus het moment dat updates binnen komen wil je wellicht zelf bepalen. Daarnaast is er na afloop (als het goed is) ook een zekere controle of alles goed is overgekomen. Het zou niet echt een goed idee zijn om je wijzigingen te committen en er dan maar vanuit te gaan dat alles goed staat op productie :s.

  • J.Rijdes
    Elite members
    Ontvangen Reacties
    37
    Berichten
    1.581
    • 20 oktober 2015 om 16:23
    • #8

    Mag ik vragen waarom je gebruik maakt van file_get_contents en niet van cUrl? Ik hoor namelijk vaak dat file_get_contents een minder goeie optie is dan cUrl.

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 20 oktober 2015 om 17:44
    • #9

    Omdat Curl sneller is.

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 20 oktober 2015 om 18:24
    • #10

    @FangorN
    Ik heb zelf een selectief groepje mensen waar ik het vooraf bij ga testen alvorens deze als een live productie gegeven wordt. Heb in het verleden deze fout al eens eerder gemaakt dus heb hiervoor wel de voorzorgsmaatregelen genomen.

    Het betreft hier een module op een bestaand systeem (WHMCS), ik ben dus vrij snel op de hoogte mocht er iets wijzigen. Heb zelf een speciale developers licentie waarbij ik eerst de nieuwe versie kan testen met de huidige code.

    De downloads worden inderdaad wel gecontroleerd, ik heb een aparte controle gemaakt die precies ziet welke versie de licentie houder draait.

    Edit:
    @J.Rijdes
    Geen verklaring voor eerlijk gezegd, had het inderdaad met cURL op kunnen lossen. Denk dat ik de code toch maar om ga zetten in cURL, file_get_contents was toen het eerste wat in me op kwam.

    Edit:
    @Ferhat.Remory
    Niet alleen sneller, cURL heeft vele voordelen zover ik weet.

  • WHMCSAddons
    Master
    Ontvangen Reacties
    88
    Berichten
    2.411
    • 23 oktober 2015 om 15:58
    • #11

    Zojuist alles omgezet in cURL, hierbij heb ik een extra beschermlaag geplaatst op de download.

    1. Een aanvraag kan alleen door geldige licentie houders opgevraagd worden.
    2. De update staat buiten de publieke map en is dus alleen via mijn bestand op te vragen.
    3. Alle geldige licentie sleutels staan in de database opgeslagen die worden vergelijkt voor download.

    Hebben jullie nog tips, laat het zeker weten :)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!

Maak een account aan Login

ICT Nieuws

  • Fijne feestdagen

    tcbhome 28 december 2025 om 13:55
  • Kritieke update voor Really Simple Security-plug-in

    K.Rens 16 november 2024 om 16:12
  • ING Nederland streeft naar ondersteuning van Google Pay tegen eind februari

    K.Rens 2 november 2024 om 16:09

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 2 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacy Policy
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen | Beste Zetes eid kaartlezer webshop
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design