Ajax Call

    ICTscripters maakt gebruik van cookies. Door het gebruiken en browsen naar onze site gaat je automatisch akkoord met het gebruik van cookies. Klik hier voor meer informatie

    • Ajax Call

      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 Source Code

      1. <?php
      2. include '../include/database.class.php';
      3. $docid = $_COOKIE['id'];
      4. $HTTP_USER_AGENT = $_COOKIE['HTTP_USER_AGENT'];
      5. $hostname = $_COOKIE['hostname'];
      6. $result = array();
      7. $imagedata = base64_decode($_POST['img_data']);
      8. $filename = md5(date("dmYhisA"));
      9. //Location to where you want to created sign image
      10. $file_name = './doc_signs/'.$filename.'.png';
      11. file_put_contents($file_name,$imagedata);
      12. $db->query('INSERT INTO getekende_documenten (handtekening, document_id) VALUES (:sign, :docid)', array(':sign' => $filename.'.png', ':docid' => $docid));
      13. $result['status'] = 1;
      14. $result['file_name'] = $file_name;
      15. echo json_encode($result);
      16. ?>
      Laat alles zien
      VIa deze link kan je mee kijken:
      docusign.itsucceeds.nl/documen…ewfile&id=3&pass=NoeGhAhG

      Wat doe ik fout?
      Met vriendelijke groet,
      Frenzo Brouwer
    • 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 Source Code

      1. <?php
      2. // zet dit bovenaan je script
      3. ini_set('display_errors', 'stdout');
      4. ini_set('display_startup_errors', true);
      5. error_reporting(E_ALL);
      6. ?>
      Maar als dat niet werkt zul je je logs moeten checken.

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

      Post werd 1x aangepast, het laatst door FangorN ().

    • FangorN wrote:

      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 Source Code

      1. <?php
      2. // zet dit bovenaan je script
      3. ini_set('display_errors', 'stdout');
      4. ini_set('display_startup_errors', true);
      5. error_reporting(E_ALL);
      6. ?>
      Maar als dat niet werkt zul je je logs moeten checken.

      Enne... Ben je live aan het ontwikkelen ofzo?
      Aanvulling i.v.m. reports;
      Ik gebruik

      Source Code

      1. ini_set('display_errors', 1);
      2. ini_set('display_startup_errors', 1);
      3. 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 : github.com/ThingEngineer/PHP-MySQLi-Database-Class
    • Ferhat.Remory wrote:

      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.

      Ferhat.Remory wrote:

      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?

      Post werd 1x aangepast, het laatst door FangorN ().

    • Ferhat.Remory wrote:

      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.

      Post werd 1x aangepast, het laatst door FangorN ().