01100100111001011100011001111111110101010100000100110010101100000001101101011110001101000011110000010101100001000101011000111100000101100010000111011110100001001100000101100001101110111000111011010011

Viele Anforderungen lassen sich heute bereits mit vorhandenen Lösungen erledigen. Dennoch gibt es immer wieder Bedarf an individuellen Lösungen, sei es, weil vorhandene Lösungen zu kompliziert oder aber nicht weitreichend genug sind. Für diese Fälle biete ich meinen Kunden eine maßgeschneiderte Software an, die exakt den individuellen Bedürfnissen und Anforderungen entspricht.

Da ich mich auf die Programmierung webbasierter Anwendungen spezialisiert habe, kommen insbesondere die folgenden Script- bzw. Programmiersprachen zum Einsatz:

  • HTML5
  • PHP
  • SQL / MySQL
  • Javascript
  • JQuery
  • CSS3

Durch die Kombination dieser Programmiersprachen lassen sich umfangreiche und ansprechende Lösungen für die unterschiedlichsten Anforderungen realisieren.

Ein Beispiel einer solchen Web-Anwendung ist das Terminreservierungssystem Onlineplaner.

Daniel Heinemann Webdesign * info(at)werner-webdesign.de * Tel.: +49(0)175-3608363
5.889MBMemory Usage106msRequest Duration
Joomla! Version5.2.5
PHP Version8.2.28
Identityguest
Response200
Templateheinemannwebdesign
Database
Server
mysql
Version
10.6.18-MariaDB-0ubuntu0.22.04.1
Collation
utf8mb3_general_ci
Conn Collation
utf8mb4_general_ci
$_GET
[]
$_POST
[]
$_SESSION
array:1 [ "joomla" => "***redacted***" ]
$_COOKIE
[]
$_SERVER
array:57 [ "USER" => "werner-webdesign" "HOME" => "/var/www/vhosts/werner-webdesign.de" "SCRIP...
session
array:3 [ "counter" => 1 "timer" => array:3 [ "start" => 1743993095 "last" => 1743993095...
registry
array:3 [ "data" => [] "initialized" => false "separator" => "." ]
user
array:21 [ "id" => 0 "name" => null "username" => null "email" => null "password" => "***r...
  • afterLoad (87.42KB) (6.23ms)
  • afterInitialise (3.26MB) (38.45ms)
  • afterRoute (1.88KB) (397μs)
  • beforeRenderComponent com_content (70.75KB) (3.66ms)
  • Before Access::preloadComponents (all components) (41.55KB) (2.77ms)
  • After Access::preloadComponents (all components) (116.31KB) (580μs)
  • Before Access::preloadPermissions (com_content) (424B) (13μs)
  • After Access::preloadPermissions (com_content) (19.47KB) (299μs)
  • Before Access::getAssetRules (id:68 name:com_content.article.7) (1.04KB) (12μs)
  • After Access::getAssetRules (id:68 name:com_content.article.7) (7.38KB) (148μs)
  • afterRenderComponent com_content (522.45KB) (21.4ms)
  • afterDispatch (2.08KB) (146μs)
  • beforeRenderRawModule mod_menu (Menü links) (326.2KB) (3.77ms)
  • afterRenderRawModule mod_menu (Menü links) (42.8KB) (2.08ms)
  • beforeRenderModule mod_menu (Menü links) (720B) (6μs)
  • afterRenderModule mod_menu (Menü links) (3.92KB) (327μs)
  • beforeRenderRawModule mod_menu (Menü Seitenkopf) (88B) (89μs)
  • afterRenderRawModule mod_menu (Menü Seitenkopf) (22.16KB) (788μs)
  • beforeRenderModule mod_menu (Menü Seitenkopf) (720B) (5μs)
  • afterRenderModule mod_menu (Menü Seitenkopf) (3.05KB) (91μs)
  • beforeRenderRawModule mod_breadcrumbs (Pfad) (2.07KB) (41μs)
  • afterRenderRawModule mod_breadcrumbs (Pfad) (8.09KB) (1.07ms)
  • beforeRenderModule mod_breadcrumbs (Pfad) (704B) (5μs)
  • afterRenderModule mod_breadcrumbs (Pfad) (2.07KB) (120μs)
  • afterRender (878.83KB) (22.53ms)
  • 1 x afterInitialise (3.26MB) (36.33%)
    38.45ms
    1 x afterRender (878.83KB) (21.28%)
    22.53ms
    1 x afterRenderComponent com_content (522.45KB) (20.21%)
    21.40ms
    1 x afterLoad (87.42KB) (5.88%)
    6.23ms
    1 x beforeRenderRawModule mod_menu (Menü links) (326.2KB) (3.56%)
    3.77ms
    1 x beforeRenderComponent com_content (70.75KB) (3.45%)
    3.66ms
    1 x Before Access::preloadComponents (all components) (41.55KB) (2.62%)
    2.77ms
    1 x afterRenderRawModule mod_menu (Menü links) (42.8KB) (1.97%)
    2.08ms
    1 x afterRenderRawModule mod_breadcrumbs (Pfad) (8.09KB) (1.01%)
    1.07ms
    1 x afterRenderRawModule mod_menu (Menü Seitenkopf) (22.16KB) (0.74%)
    788μs
    1 x After Access::preloadComponents (all components) (116.31KB) (0.55%)
    580μs
    1 x afterRoute (1.88KB) (0.38%)
    397μs
    1 x afterRenderModule mod_menu (Menü links) (3.92KB) (0.31%)
    327μs
    1 x After Access::preloadPermissions (com_content) (19.47KB) (0.28%)
    299μs
    1 x After Access::getAssetRules (id:68 name:com_content.article.7) (7.38KB) (0.14%)
    148μs
    1 x afterDispatch (2.08KB) (0.14%)
    146μs
    1 x afterRenderModule mod_breadcrumbs (Pfad) (2.07KB) (0.11%)
    120μs
    1 x afterRenderModule mod_menu (Menü Seitenkopf) (3.05KB) (0.09%)
    91μs
    1 x beforeRenderRawModule mod_menu (Menü Seitenkopf) (88B) (0.08%)
    89μs
    1 x beforeRenderRawModule mod_breadcrumbs (Pfad) (2.07KB) (0.04%)
    41μs
    1 x Before Access::preloadPermissions (com_content) (424B) (0.01%)
    13μs
    1 x Before Access::getAssetRules (id:68 name:com_content.article.7) (1.04KB) (0.01%)
    12μs
    1 x beforeRenderModule mod_menu (Menü links) (720B) (0.01%)
    6μs
    1 x beforeRenderModule mod_menu (Menü Seitenkopf) (720B) (0%)
    5μs
    1 x beforeRenderModule mod_breadcrumbs (Pfad) (704B) (0%)
    5μs
29 statements were executed, 4 of which were duplicates, 25 unique7.47ms216.8KB
  • SELECT @@SESSION.sql_mode;102μs968B/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:308Copy
  • SELECT `data` FROM `joomla3_session` WHERE `session_id` = ?632μs1008BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:250Copy
  • SELECT `session_id` FROM `joomla3_session` WHERE `session_id` = :session_id LIMIT 177μs1.3KBParams/libraries/src/Session/MetadataManager.php:187Copy
  • INSERT INTO `joomla3_session` (`session_id`,`guest`,`time`,`userid`,`username`,`client_id`) VALUES (:session_id, :guest, :time, :user_id, :username, :client_id)170μs944BParams/libraries/src/Session/MetadataManager.php:260Copy
  • SELECT `extension_id` AS `id`,`element` AS `option`,`params`,`enabled` FROM `joomla3_extensions` WHERE `type` = 'component' AND `state` = 0 AND `enabled` = 1249μs17.61KB/libraries/src/Component/ComponentHelper.php:399Copy
  • SELECT `id`,`rules` FROM `joomla3_viewlevels`92μs656B/libraries/src/Access/Access.php:955Copy
  • SELECT `b`.`id` FROM `joomla3_usergroups` AS `a` LEFT JOIN `joomla3_usergroups` AS `b` ON `b`.`lft` <= `a`.`lft` AND `b`.`rgt` >= `a`.`rgt` WHERE `a`.`id` = :guest118μs1.33KBParams/libraries/src/Access/Access.php:868Copy
  • SELECT `folder` AS `type`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id` FROM `joomla3_extensions` WHERE `enabled` = 1 AND `type` = 'plugin' AND `state` IN (0,1) AND `access` IN (:preparedArray1,:preparedArray2) ORDER BY `ordering`509μs3.98KBParams/libraries/src/Plugin/PluginHelper.php:294Copy
  • SHOW FULL TABLES WHERE table_type="BASE TABLE"582μs3.69KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:635Copy
  • SELECT `m`.`id`,`m`.`menutype`,`m`.`title`,`m`.`alias`,`m`.`note`,`m`.`link`,`m`.`type`,`m`.`level`,`m`.`language`,`m`.`browserNav`,`m`.`access`,`m`.`params`,`m`.`home`,`m`.`img`,`m`.`template_style_id`,`m`.`component_id`,`m`.`parent_id`,`m`.`path` AS `route`,`e`.`element` AS `component` FROM `joomla3_menu` AS `m` LEFT JOIN `joomla3_extensions` AS `e` ON `m`.`component_id` = `e`.`extension_id` WHERE ( (`m`.`published` = 1 AND `m`.`parent_id` > 0 AND `m`.`client_id` = 0) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :currentDate1)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :currentDate2) ORDER BY `m`.`lft`316μs3.55KBParams/libraries/src/Menu/SiteMenu.php:166Copy
  • SELECT * FROM `joomla3_languages` WHERE `published` = 1 ORDER BY `ordering` ASC142μs1.61KB/libraries/src/Language/LanguageHelper.php:177Copy
  • SELECT `id`,`home`,`template`,`s`.`params`,`inheritable`,`parent` FROM `joomla3_template_styles` AS `s` LEFT JOIN `joomla3_extensions` AS `e` ON `e`.`element` = `s`.`template` AND `e`.`type` = 'template' AND `e`.`client_id` = `s`.`client_id` WHERE `s`.`client_id` = 0 AND `e`.`enabled` = 1167μs848B/administrator/components/com_templates/src/Model/StyleModel.php:775Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `joomla3_assets` WHERE `name` IN (:preparedArray1,:preparedArray2,:preparedArray3,:preparedArray4,:preparedArray5,:preparedArray6,:preparedArray7,:preparedArray8,:preparedArray9,:preparedArray10,:preparedArray11,:preparedArray12,:preparedArray13,:preparedArray14,:preparedArray15,:preparedArray16,:preparedArray17,:preparedArray18,:preparedArray19,:preparedArray20,:preparedArray21,:preparedArray22,:preparedArray23,:preparedArray24,:preparedArray25,:preparedArray26,:preparedArray27,:preparedArray28,:preparedArray29,:preparedArray30,:preparedArray31,:preparedArray32,:preparedArray33,:preparedArray34,:preparedArray35,:preparedArray36,:preparedArray37,:preparedArray38,:preparedArray39,:preparedArray40)265μs7.44KBParams/libraries/src/Access/Access.php:357Copy
  • SELECT `id`,`name`,`rules`,`parent_id` FROM `joomla3_assets` WHERE `name` LIKE :asset OR `name` = :extension OR `parent_id` = 0148μs1.73KBParams/libraries/src/Access/Access.php:301Copy
  • SHOW FULL COLUMNS FROM `joomla3_content`345μs1.77KB/libraries/vendor/joomla/database/src/Mysqli/MysqliDriver.php:587Copy
  • UPDATE `joomla3_content` SET `hits` = (`hits` + 1) WHERE `id` = '7'125μs48B/libraries/src/Table/Table.php:1348Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `joomla3_content` AS `a` INNER JOIN `joomla3_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `joomla3_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `joomla3_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `joomla3_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `joomla3_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)269μs7.38KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `joomla3_categories` AS `s` INNER JOIN `joomla3_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`268μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT `m`.`tag_id`,`t`.* FROM `joomla3_contentitem_tag_map` AS `m` INNER JOIN `joomla3_tags` AS `t` ON `m`.`tag_id` = `t`.`id` WHERE `m`.`type_alias` = :contentType AND `m`.`content_item_id` = :id AND `t`.`published` = 1 AND `t`.`access` IN (:preparedArray1,:preparedArray2)198μs11.97KBParams/libraries/src/Helper/TagsHelper.php:388Copy
  • SELECT `c`.`id`,`c`.`asset_id`,`c`.`access`,`c`.`alias`,`c`.`checked_out`,`c`.`checked_out_time`,`c`.`created_time`,`c`.`created_user_id`,`c`.`description`,`c`.`extension`,`c`.`hits`,`c`.`language`,`c`.`level`,`c`.`lft`,`c`.`metadata`,`c`.`metadesc`,`c`.`metakey`,`c`.`modified_time`,`c`.`note`,`c`.`params`,`c`.`parent_id`,`c`.`path`,`c`.`published`,`c`.`rgt`,`c`.`title`,`c`.`modified_user_id`,`c`.`version`, CASE WHEN CHAR_LENGTH(`c`.`alias`) != 0 THEN CONCAT_WS(':', `c`.`id`, `c`.`alias`) ELSE `c`.`id` END as `slug` FROM `joomla3_categories` AS `s` INNER JOIN `joomla3_categories` AS `c` ON (`s`.`lft` <= `c`.`lft` AND `c`.`lft` < `s`.`rgt`) OR (`c`.`lft` < `s`.`lft` AND `s`.`rgt` < `c`.`rgt`) WHERE (`c`.`extension` = :extension OR `c`.`extension` = 'system') AND `c`.`access` IN (:preparedArray1,:preparedArray2) AND `c`.`published` = 1 AND `s`.`id` = :id ORDER BY `c`.`lft`229μs3.91KBParams/libraries/src/Categories/Categories.php:375Copy
  • SELECT DISTINCT a.id, a.title, a.name, a.checked_out, a.checked_out_time, a.note, a.state, a.access, a.created_time, a.created_user_id, a.ordering, a.language, a.fieldparams, a.params, a.type, a.default_value, a.context, a.group_id, a.label, a.description, a.required, a.only_use_in_subform,l.title AS language_title, l.image AS language_image,uc.name AS editor,ag.title AS access_level,ua.name AS author_name,g.title AS group_title, g.access as group_access, g.state AS group_state, g.note as group_note FROM joomla3_fields AS a LEFT JOIN `joomla3_languages` AS l ON l.lang_code = a.language LEFT JOIN joomla3_users AS uc ON uc.id=a.checked_out LEFT JOIN joomla3_viewlevels AS ag ON ag.id = a.access LEFT JOIN joomla3_users AS ua ON ua.id = a.created_user_id LEFT JOIN joomla3_fields_groups AS g ON g.id = a.group_id LEFT JOIN `joomla3_fields_categories` AS fc ON fc.field_id = a.id WHERE ( (`a`.`context` = :context AND (`fc`.`category_id` IS NULL OR `fc`.`category_id` IN (:preparedArray1,:preparedArray2)) AND `a`.`access` IN (:preparedArray3,:preparedArray4)) AND (`a`.`group_id` = 0 OR `g`.`access` IN (:preparedArray5,:preparedArray6)) AND `a`.`state` = :state) AND (`a`.`group_id` = 0 OR `g`.`state` = :gstate) AND `a`.`only_use_in_subform` = :only_use_in_subform ORDER BY a.ordering ASC639μs4.75KBParams/libraries/src/MVC/Model/BaseDatabaseModel.php:164Copy
  • SELECT `folder` AS `type`,`name` AS `longname`,`element` AS `name`,`params` AS `params`,`extension_id` AS `id`,`manifest_cache` AS `manifest_cache` FROM joomla3_extensions WHERE enabled = 1 AND type = 'plugin' AND state IN (0,1) AND access IN (1,5) ORDER BY ordering558μs67.3KB/libraries/erecht24/Plugin/Helper/Erecht24PluginHelper.php:64Copy
  • SELECT * FROM joomla3_erecht24api_data WHERE `extension_id` = '10143' AND `data_key` = 'legaltext_params'135μs56.69KB/libraries/erecht24/Api/Erecht24Api.php:109Copy
  • SELECT `m`.`id`,`m`.`title`,`m`.`module`,`m`.`position`,`m`.`content`,`m`.`showtitle`,`m`.`params`,`mm`.`menuid` FROM `joomla3_modules` AS `m` LEFT JOIN `joomla3_modules_menu` AS `mm` ON `mm`.`moduleid` = `m`.`id` LEFT JOIN `joomla3_extensions` AS `e` ON `e`.`element` = `m`.`module` AND `e`.`client_id` = `m`.`client_id` WHERE ( ( (`m`.`published` = 1 AND `e`.`enabled` = 1 AND `m`.`client_id` = :clientId AND `m`.`access` IN (:preparedArray1,:preparedArray2)) AND (`m`.`publish_up` IS NULL OR `m`.`publish_up` <= :publishUp)) AND (`m`.`publish_down` IS NULL OR `m`.`publish_down` >= :publishDown)) AND (`mm`.`menuid` = :itemId OR `mm`.`menuid` <= 0) ORDER BY `m`.`position`,`m`.`ordering`317μs1.88KBParams/libraries/src/Cache/Controller/CallbackController.php:51Copy
  • SELECT * FROM `joomla3_schemaorg` WHERE `itemId` = :itemId AND `context` = :context125μs1.55KBParams/plugins/system/schemaorg/src/Extension/Schemaorg.php:403Copy
  • SELECT `a`.`id`,`a`.`asset_id`,`a`.`title`,`a`.`alias`,`a`.`introtext`,`a`.`fulltext`,`a`.`state`,`a`.`catid`,`a`.`created`,`a`.`created_by`,`a`.`created_by_alias`,`a`.`modified`,`a`.`modified_by`,`a`.`checked_out`,`a`.`checked_out_time`,`a`.`publish_up`,`a`.`publish_down`,`a`.`images`,`a`.`urls`,`a`.`attribs`,`a`.`version`,`a`.`ordering`,`a`.`metakey`,`a`.`metadesc`,`a`.`access`,`a`.`hits`,`a`.`metadata`,`a`.`featured`,`a`.`language`,`fp`.`featured_up`,`fp`.`featured_down`,`c`.`title` AS `category_title`,`c`.`alias` AS `category_alias`,`c`.`access` AS `category_access`,`c`.`language` AS `category_language`,`fp`.`ordering`,`u`.`name` AS `author`,`parent`.`title` AS `parent_title`,`parent`.`id` AS `parent_id`,`parent`.`path` AS `parent_route`,`parent`.`alias` AS `parent_alias`,`parent`.`language` AS `parent_language`,ROUND(`v`.`rating_sum` / `v`.`rating_count`, 1) AS `rating`,`v`.`rating_count` AS `rating_count` FROM `joomla3_content` AS `a` INNER JOIN `joomla3_categories` AS `c` ON `c`.`id` = `a`.`catid` LEFT JOIN `joomla3_content_frontpage` AS `fp` ON `fp`.`content_id` = `a`.`id` LEFT JOIN `joomla3_users` AS `u` ON `u`.`id` = `a`.`created_by` LEFT JOIN `joomla3_categories` AS `parent` ON `parent`.`id` = `c`.`parent_id` LEFT JOIN `joomla3_content_rating` AS `v` ON `a`.`id` = `v`.`content_id` WHERE ( (`a`.`id` = :pk AND `c`.`published` > 0) AND (`a`.`publish_up` IS NULL OR `a`.`publish_up` <= :publishUp)) AND (`a`.`publish_down` IS NULL OR `a`.`publish_down` >= :publishDown) AND `a`.`state` IN (:preparedArray1,:preparedArray2)304μs6.17KBParams/components/com_content/src/Model/ArticleModel.php:215Copy
  • SELECT SUM(CASE WHEN `a`.`next_execution` <= :now THEN 1 ELSE 0 END) AS due_count,SUM(CASE WHEN `a`.`locked` IS NULL THEN 0 ELSE 1 END) AS locked_count FROM `joomla3_scheduler_tasks` AS `a` WHERE `a`.`state` = 1121μs1.37KBParams/administrator/components/com_scheduler/src/Model/TasksModel.php:517Copy
  • SELECT `session_id` FROM `joomla3_session` WHERE `session_id` = ?89μs1KBParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:277Copy
  • UPDATE `joomla3_session` SET `data` = ? , `time` = ? WHERE `session_id` = ?182μs592BParams/libraries/vendor/joomla/session/src/Handler/DatabaseHandler.php:301Copy
Datenschutz-
Einstellungen