• 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. Javascript + Ajax

Forum

  • Na 15 jaar terug van weggeweest: iCriminals.nl is terug (BETA)!

    Syntax 30 december 2025 om 22:29
  • Developer Gezocht

    K.Rens 30 december 2025 om 12:32
  • Op zoek naar de legends

    Jeffrey.Hoekman 9 december 2025 om 09:41
  • [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
  • Partner Gezocht om meerdere NFT Collecties op Open Sea te Plaatsen

    NFT Art Designer 1 maart 2025 om 14:08

Marktplaats

  • 321 Nieuwe Domeinnamen December 2025

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

    Syntax 28 december 2025 om 21:20
  • Van een pixelige afbeelding naar een strakke, moderne website

    Syntax 21 december 2025 om 17:05

Ajax Call

  • Frenzo.Brouwer
  • 8 juni 2018 om 23:45
  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 8 juni 2018 om 23:45
    • #1

    Hey,

    Kan iemand mij helpen met een AJAX Call die fout gaat?
    Ik snap niet wat hier niet aan werkt hij geeft een error 500 aan..


    PHP
    <?php 
        include '../include/database.class.php';
        $docid = $_COOKIE['id'];
        $HTTP_USER_AGENT = $_COOKIE['HTTP_USER_AGENT'];
        $hostname = $_COOKIE['hostname'];
    	$result = array();
    	$imagedata = base64_decode($_POST['img_data']);
    	$filename = md5(date("dmYhisA"));
    	//Location to where you want to created sign image
    	$file_name = './doc_signs/'.$filename.'.png';
    	file_put_contents($file_name,$imagedata);
        $db->query('INSERT INTO getekende_documenten (handtekening, document_id) VALUES (:sign, :docid)', array(':sign' => $filename.'.png', ':docid' => $docid));
    	$result['status'] = 1;
    	$result['file_name'] = $file_name;
    	echo json_encode($result);
    ?>
    Toon Meer

    VIa deze link kan je mee kijken:
    http://docusign.itsucceeds.nl/document/index…3&pass=NoeGhAhG

    Wat doe ik fout?

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • Guest, wil je besparen op je domeinnamen? (ad)
  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 9 juni 2018 om 00:44
    • #2

    Ik kijk in mijn glazen bol... en deze is troebel :).

    Waarschijnlijk gaat er in dat script iets mis. Check je errorlogs.

    Maakt het class-bestand ook een object van die class aan? Dat is nogal ongebruikelijk? Een class-bestand zou eigenlijk van zichzelf niets moeten "doen". Ook wil je dat soort includes waarschijnlijk niet in je webdirectory hebben staan? Ik kan nu rechtstreeks /include/database.class.php aanroepen, die elke keer ook meteen een connectie opzet? Mooie manier om je site lam te leggen :).

    EDIT: en dat ding laden kost ~220ms, wat doe je daar allemaal?! :D

    Hoe ziet de code voor query() er uit? Want die volgt niet echt de aanpak van PDO noch van MySQLi?

    Ook doe je er verstandig aan om een JSON-result goede headers te geven.

    EDIT: als deze $_POST data verwacht, moet je hier misschien ook op controleren. Alsmede andere instellingen zoals cookies enzo. Voordat je wat dan ook probeert te doen.

    EDIT: je zou ook ff debugging aan kunnen proberen te zetten:

    PHP
    <?php
    // zet dit bovenaan je script
    ini_set('display_errors', 'stdout');
    ini_set('display_startup_errors', true);
    error_reporting(E_ALL);
    ?>

    Maar als dat niet werkt zul je je logs moeten checken.

    Enne... Ben je live aan het ontwikkelen ofzo?

    Bewerkt één keer, laatst door FangorN (9 juni 2018 om 01:30).

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 9 juni 2018 om 05:23
    • #3
    Citaat van FangorN

    Ik kijk in mijn glazen bol... en deze is troebel :).

    Waarschijnlijk gaat er in dat script iets mis. Check je errorlogs.

    Maakt het class-bestand ook een object van die class aan? Dat is nogal ongebruikelijk? Een class-bestand zou eigenlijk van zichzelf niets moeten "doen". Ook wil je dat soort includes waarschijnlijk niet in je webdirectory hebben staan? Ik kan nu rechtstreeks /include/database.class.php aanroepen, die elke keer ook meteen een connectie opzet? Mooie manier om je site lam te leggen :).

    EDIT: en dat ding laden kost ~220ms, wat doe je daar allemaal?! :D

    Hoe ziet de code voor query() er uit? Want die volgt niet echt de aanpak van PDO noch van MySQLi?

    Ook doe je er verstandig aan om een JSON-result goede headers te geven.

    EDIT: als deze $_POST data verwacht, moet je hier misschien ook op controleren. Alsmede andere instellingen zoals cookies enzo. Voordat je wat dan ook probeert te doen.

    EDIT: je zou ook ff debugging aan kunnen proberen te zetten:

    PHP
    <?php
    // zet dit bovenaan je script
    ini_set('display_errors', 'stdout');
    ini_set('display_startup_errors', true);
    error_reporting(E_ALL);
    ?>

    Maar als dat niet werkt zul je je logs moeten checken.

    Enne... Ben je live aan het ontwikkelen ofzo?

    Toon Meer

    Aanvulling i.v.m. reports;
    Ik gebruik

    Code
    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);

    Werkt voor mij altijd, ook met een 500 foutmelding.

    Betreft zijn $db-query zal het van een class komen.
    Gelijk een Mysqli of PDO wrapper. Voorbeeldje : https://github.com/ThingEngineer/PHP-MySQLi-Database-Class

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 9 juni 2018 om 15:28
    • #4
    Citaat van Ferhat.Remory

    Ik gebruik


    ini_set('display_errors', 1);
    ini_set('display_startup_errors', 1);
    error_reporting(E_ALL);Werkt voor mij altijd, ook met een 500 foutmelding.

    De waarde van de display_errors setting is al een tijdje geen boolean meer. En soms hapert een script zodanig dat je toch enkel een error 500 pagina ziet (en ligt het buiten je controle om dit gedrag anders in te stellen), in welk geval je toch in de logs zult moeten duiken. Jouw snippet en die van mij doen effectief waarschijnlijk hetzelfde.

    Citaat van Ferhat.Remory

    Gelijk een Mysqli of PDO wrapper. Voorbeeldje : github.com/ThingEngineer/PHP-MySQLi-Database-Class

    Wow, dat is wel erg veel code voor iets redelijk simpels. Als je er over nadenkt is dat ook een grappig ding, immers, deze extend niet van een of andere abstracte database-class of interface die deze class implementeert, maar je hebt wel een complete abstractielaag... specifiek voor MySQLi? :P Zie je de contradictie hier? 8o Wat is het punt daarvan dan?

    EDIT: okay, toegegeven, die class kan heel veel. Maar vraag jezelf in alle eerlijkheid af. Bij normaal gebruik van een database, hoeveel van die code zul je dan gebruiken? En zou je dan al die code in één class moeten stampen?

    Bewerkt één keer, laatst door FangorN (9 juni 2018 om 15:43).

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 9 juni 2018 om 18:40
    • #5

    Ik gaf maar een voorbeeld op je vraag waarom hij dat als query gebruikte. Maar inderdaad, het is veel code

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 9 juni 2018 om 19:42
    • #6
    Citaat van Ferhat.Remory

    Ik gaf maar een voorbeeld op je vraag waarom hij dat als query gebruikte. Maar inderdaad, het is veel code

    Dat begrijp ik, maar de topicstarter moet wat meer duidelijkheid geven over het hoe en wat. Hij geeft ons een halve puzzel en dan is het moeilijk om een voorstelling te maken van het complete plaatje. Natuurlijk is dit een class of library die hij gebruikt, maar hier weet ik inhoudelijk niets van, dus doe ik hier ook geen aannames over, ik zeg alleen "ik ken deze aanroep niet, vertel hier eens wat over", of spoor in ieder geval aan op verduidelijking.

    Dit is ook eigenlijk weer zo'n vraagstuk waarbij het probleem niet echt het probleem is, maar meer de aanpak van het probleem. In dit geval is het gewoon zaak dat je weet/uitzoekt wat de foutmelding is. Het "probleem" hier is dus informatie-vergaring, als dat eenmaal is opgelost (door te weten waar je moet kijken of hoe je dit kunt debuggen) dan is het wegwerken van de interne serverfout waarschijnlijk triviaal. Het probleem hier is dus het gebrek aan een strategie om duidelijk te krijgen wat er precies fout gaat, en (voor nu, in ieder geval :)) niet de daadwerkelijke fout zelf.

    Bewerkt één keer, laatst door FangorN (10 juni 2018 om 11:48).

  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 10 juni 2018 om 18:11
    • #7

    Ik krijg bij beide geen fout melding.

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 10 juni 2018 om 18:43
    • #8

    moet wel of je plaatst het niet goed :)

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 10 juni 2018 om 19:21
    • #9

    De pagina geeft inmiddels een 200 OK status dus wss heeft ie al wat gewijzigd.

    Is het nu opgelost?

  • Thisguyisgone
    Elite members
    Ontvangen Reacties
    197
    Berichten
    7.880
    • 10 juni 2018 om 20:20
    • #10

    1 little thing;
    mag je dit wel in cookie opslaan?

    1. $HTTP_USER_AGENT = $_COOKIE['HTTP_USER_AGENT'];
    2. $hostname = $_COOKIE['hostname'];
  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 10 juni 2018 om 20:57
    • #11

    (En ook IP?)
    "Mogen" in welke zin? Juridisch? Of technisch?

    Het heeft in ieder geval weinig zin. Elke page-access is deze informatie beschikbaar via $_SERVER, waarom zou je dat apart in cookies bijhouden? Daarnaast zijn dit HTTP_-variabelen, en dus niet heel erg betrouwbaar. Cookies zijn ook manipuleerbaar, dus, afhankelijk van verdere code, maakt het dit makkelijker om je voor te doen als iemand die je niet bent? Lijkt mij een hoop boekhouding voor niets inderdaad.

    Tenzij de TS onze gegevens aan het verzamelen is :s.

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 10 juni 2018 om 22:53
    • #12

    Toch fijn dat de topicstarter ff laat weten wat de status is.

  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 10 juni 2018 om 23:08
    • #13

    Heb het script werkend, sorry voor de onduidelijke uitleg. Mijn kennis met javascript is helaas niet zo groot. Loop nu tegen een volgend probleem aan dat is het weergeven van een succes melding.

    Hoe dit is gemaakt durf ik ook niet te zeggen omdat ik dit heb laten voor een klein bedrag.

    JavaScript
    <script>
        jQuery(document).ready(function($){
            $('#signArea').signaturePad({drawOnly:true, drawBezierCurves:true, lineTop:90});
        });
        $('#handtekeninggeplaatst').hide();
        $("#btnSaveSign").click(function(e){
            html2canvas([document.getElementById('sign-pad')], {
                onrendered: function (canvas) {
                    var canvas_img_data = canvas.toDataURL('image/png');
                    var img_data = canvas_img_data.replace(/^data:image\/(png|jpg);base64,/, "");
                    //ajax call to save image inside folder
                    $.ajax({
                        url: 'save_sign.php',
                        data: { 
                            img_data,
                            doc_id: '<?php echo $fetch['id'] ?>',
                            ip: '<?php echo getUserIP() ?>',
                            user_agent: '<?php echo $_SERVER['HTTP_USER_AGENT'] ?>',
                            hostname: '<?php echo $hostname ?>'
                        },
                        type: 'post',
                        dataType: 'json',
                        success: function (response) {
                           $("#handtekeninggeplaatst").show();
                        }
                    });
                }
            });
        });
    </script>
    Toon Meer


    Ik heb een #handtekeninggeplaatst id gemaakt met een succes melding. maar hoe kan ik die nou het beste weergeven? Op deze manier doet die het niet.


    HTML
    <div id="handtekeninggeplaatst" class="alert alert-success pd-y-20" role="alert">
                            <button type="button" class="close" data-dismiss="alert" aria-label="Close">
                              <span aria-hidden="true">&times;</span>
                            </button>
                            <div class="d-sm-flex align-items-center justify-content-start">
                              <i class="icon ion-ios-checkmark alert-icon tx-52 mg-r-20 tx-success"></i>
                              <div class="mg-t-20 mg-sm-t-0">
                                <h5 class="mg-b-2 tx-success">Handtekening geplaatst</h5>
                              </div>
                            </div><!-- d-flex -->
                          </div><!-- alert -->
    Toon Meer

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 10 juni 2018 om 23:29
    • #14

    Daarnaast wil ik een digitaal vinger afdruk maken om rechtsgeldige overeenkomsten te kunnen maken voor bedrijven. Heb inmiddels de cookies verwijderd en aangepast naar $_SERVER. Loop alleen vast op het weergeven van de succesmelding.

    Het zou ook goed zijn als de pagina na het uitvoeren van de ajax call naar een andere pagina wordt door verwezen zoals index.php?page=getekend&id=3 Dat zou ook makkelijk zijn voor het afhandelen van de procedure

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • Frenzo.Brouwer
    Web Developer
    Ontvangen Reacties
    35
    Berichten
    535
    • 10 juni 2018 om 23:56
    • #15

    UPDATE: redirect naar andere pagina wanneer ajax call is uitgevoerd is gelukt. Ik heb de redirect een paar regels later gezet.

    Eigenaar van:
    Online Marketing & Webdesign Bureau - https://marketingmetrics.nl/
    Gaming Plaform - https://onetwogaming.nl/
    Banditi - https://banditi.nl/
    Criminas - https://criminas.nl/

  • FangorN
    Professional
    Ontvangen Reacties
    196
    Articles
    2
    Berichten
    737
    • 11 juni 2018 om 12:00
    • #16
    Citaat van Frenzo.Brouwer

    Daarnaast wil ik een digitaal vinger afdruk maken om rechtsgeldige overeenkomsten te kunnen maken voor bedrijven. Heb inmiddels de cookies verwijderd en aangepast naar $_SERVER. Loop alleen vast op het weergeven van de succesmelding.

    Ik kan op dit moment niet meer in het oorspronkelijke document ("Helaas! U heeft geen rechten om dit document in te zien!") dus kan niet zien wat je hiermee bedoelt. Het is in ieder geval niet nodig om deze gegevens over te hevelen naar het script want al deze informatie kun je rechtstreeks in dat script opvragen.

    Het is in wezen simpel: je doet een AJAX-call en roept daarmee een script aan dat een aantal handelingen verricht. Na afloop kun je een status terugmelden. Deze status (response) kun je gebruiken om te bepalen wat er gebeurt. Als alle handelingen zijn geslaagd geef je een "succes" status terug, anders een "mislukt" status.

    Citaat van Frenzo.Brouwer

    Het zou ook goed zijn als de pagina na het uitvoeren van de ajax call naar een andere pagina wordt door verwezen zoals index.php?page=getekend&id=3 Dat zou ook makkelijk zijn voor het afhandelen van de procedure

    Dat lijk mij niet direct nodig, je maakt immers gebruik van AJAX dus je kunt interactief delen van een pagina verversen. Daar zou je dus (na de "succes" status van hierboven) ook een tekst + linkje kunnen presenteren om weg te navigeren, bijvoorbeeld naar een pagina waar je een eigen kopie van het document kunt opvragen. Als het ondertekenen is geslaagd zou je dit ook onklaar kunnen maken om verder duidelijk te maken dat de gebruiker klaar is.

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

  • 1 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