Samenvatting

Zoals we hebben gezien bij onze algemen structuur beginnen we met de error reporting. De error reporting is een zeer handig iets, het helpt ons bij het debuggen van onze PHP-code. De algemene error-reporting moet op ELKE PHP pagina staan en mag NOOIT aan staan als je site gepubliceert is. Je wilt toch niet dat een bezoeker zo'n rare PHP error te zien krijgt?! Voor onze SQL-debug functie geldt hetzelfde. Site is publiek -> SQL debug moet uit. Hier is dat nog belangrijker omdat potentiele hakkers belangrijke zaken uit zo'n error kunnen halen.

Voor SELECT, SHOW, DESCRIBE, EXPLAIN en enkele anderen SQL statement geeft mysql_query() een resultaat als het is gelukt, of FALSE als er een error is. Voor andere typen van SQL-statements, INSERT, UPDATE, DELETE, DROP,... geeft mysql_query() TRUE als het is gelukt of FALSE als er een error is. Als het false is laten we d.m.v. de if/else constructie een foutmelding zien en indien de sql-debug mode aanstaat laten we ook de sql error's Zien. Indien mysql_query true geeft, is de query gelukt en kan je een bedank berichtje zetten als je iets toevoegt aan de database, of je kan je gegevens weergeven als je iets uit de database haalt. (Zie het voorbeeld)

We hebben ook iets gezien over Sql-injectie. Sql-injectie houdt in dat men je sql query kan manipuleren. Dit gebeurt bijvoorbeeld wanneer je een identifier, die wordt meegegeven in de url, zonder enige vorm van beveiliging in je query propt. Die identifier kan men dus gemakkelijk manipuleren en men kan zo zelfs je totale database verwijderen. Opgelet dus!

Zo nu iedereen weet hoe je SQL op een nette manier kan afhandelen zullen we nooit meer mysql_query zien gevolgd door or die. :)

« Lees de omschrijving en reacties

Inhoudsopgave

  1. Algemene structuur
  2. Voorbeeld 1 - Het ophalen van gegevens
  3. Voorbeeld 2 - Invoeren van gegevens
  4. Samenvatting

PHP tutorial opties

 
 

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.