hbdb/index-ssl-hb.php angelegt * - und unter svn gelegt * - => ist jetzt die zentrale Einsprungdatei auf dem soft-carrier-Webserver * * * @author HM-Team * @author WH: 28.03.2017 * @author klee: 05.03.2018 -- NG_WEBSHOP: Anpassung Online-Katalog * @author klee: 03.04.2024 - PHP 8.0: Deprecate required parameters after optional parameters in function/method signatures */ // // WH: 28.03.2017 - Transfer Protocol SSL -- Umstellung. siehe properties.inc.php require_once ('/home/soft/softcarrier.de/www/htdocs/hbdb/scShared/shared2016/properties.inc.php'); require_once (HB_HILFSKLASSE_ERROR); require_once (HB_HILFSKLASSE_UTILITIES); require_once (HB_HILFSKLASSE_HTMLPARAMS); require_once (HB_HILFSKLASSE_DATABASE); require_once (HB_HILFSKLASSE_SESSION); // klee: 19.04.2024 -- UtilitiesKunde2017P nach OLD verschoben // require_once (HB_HILFSKLASSE_UTILITIESKUNDE); require_once (HB_HILFSKLASSE_UTILITIESKUNDE_2018P); require_once (HB_HILFSKLASSE_SITE_2018P); // GUI-Klassen require_once (HB_FRAMESET_FATALERROR); // Aufruf alter und neuer WebShop $indexSslHb = new IndexSslHb (); $indexSslHb->control (); class IndexSslHb { /** * Speichert das Error-Objekt für die Auswertung in der ErrorLogic */ private $_error = null; /** * Variable, um die DB-Verbindung zu dbserver1 zu halten */ private $_db1 = null; /** * Variable, um die Daten der Web-Site zu halten */ private $_siteObj2018P = null; /** * Variable, um die aktuellen Sitzungsdaten zu halten * Hinweis: $this->_session wird mit Call by Reference im Main-Objekt gesetzt */ private $_session = null; /** * z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE, fr.softcarrier.com, hiblue.liefert-es.com */ private $_wwwsite = null; /** * Variable , um das Verwaltungs-Objekt der UtilitiesKunde-Klasse zu halten */ private $_utilSoft = null; /** * Referenz zu den speziellen soft-carrier Utilities */ private $_utilSoft2018P = null; /** * Var für Check, ob der Cookie-Support im Browser aktiviert ist, * in dem sie ein Test-Cookie mit kurzem Expire an den Browser sendet * * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * Problem dieses Tests: funktioniert beim ersten Mal nicht, * ob ein user Cookies aktiviert hat oder nicht. * sieht man aber erst nach einem Reload * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * * Das ist in unserer Applikation aber egal, da dies nur beim ersten Zugriff * für die Cookie-Auswertung (PHPSESSID) in der index-ssl-hb.php eine Rolle spielt. * Da die PHP-SESSION-ID aber auch per Link übergeben werden kann und wir das auch so * machen (siehe index-ssl-hb->_computeWebShopUrl) können wir alle anderen Parameter * getrost über die PHP-SESSION Variable $_SESSION an die Folgeseite IndexWebShop.php mitgeben. * Dieses Verfahren hat mehrere Vorteile: * - Link verkürzt sich enorm * - Sicherheit: ein Benutzer kann nicht so leicht herausfinden, * welche Basis-Parameter in den System benötigt werden * * Gibt es keinen Browser-Cookies-Support => so wird jede Sitzung als Initial-Sitzung behandelt */ private $_initialSession = true; /** * Objekt aller GET/POST/SESSION Input Parameter */ private $_htmlParams = null; /** * Siteweiter Paramter: Testparameter, um dynamisch Neuentwicklungen zuschalten zu können * != HB_DEV_OFF => Test bestimmter neuer Entwicklungen */ private $_paramHbdev = HB_DEV_OFF; /** * Siteweiter Paramter: */ private $_paramPreview = HB_PREVIEW_OFF; /** * z.B.: HB_ACTION_RESET */ // private $_paramAction = null; private $_paramAction = ""; /** * HB_PARAM_LANG: HB_LANG_DE in VIP-Codierung * Idee auch ISO zulassen und in VIP-Transferieren */ private $_paramLang = HB_LANG_DE; /** * HB_PARAM_SUCHBAUM: HB_SUCHBAUM_ACTIVATED, HB_SUCHBAUM_DEACTIVATED */ private $_paramSb = HB_LANG_DE; /** * HB_PARAM_RESET_SESSION: HB_RESET_SESSION_NO, HB_RESET_SESSION_YES */ private $_paramResetSession = HB_RESET_SESSION_NO; /** * für Deeplinks */ private $_paramArtikelnr = ''; private $_paramShopnr = HB_SHOPNR_DEFAULT; private $_paramSearchText = ''; // klee: 21.09.2022 -- hbapi: Deeplink auf Marke integriert private $_paramMarkeId = HB_DEFAULT_MARKE_ID; // Für Online-Kataloge private $_paramKatalogNr = ''; private $_paramKatalogDestination = ''; private $_paramKatalogAktSeitennr = ''; // ausschliesslich fürs Preview private $_paramWwwsite = ''; /** * WH: 20.03.2018 - Restschnittstelle officeb2b umstellen auf neue Indexseite * Parameter fuer Einschraenkung der Suche durch Filter */ private $_paramFilterHauptGrp = ''; private $_paramFilterUnterGrp = ''; private $_paramFilterKat = ""; private $_paramFilterKap = ""; private $_paramFilterOffen = ""; private $_paramFilterMarken = ""; // Language in ISO-Kuerzel: z.B. de, fr, private $_paramLanguage = ''; /** * WH: 20.03.2018 - NG_WEBSHOP: liefert-es Shops: Deeplink Newsletter Anmeldung bestaetigen oder abmelden * Parameter E-Mail */ private $_paramEmail = ''; /** * WH: 24.04.2019 - Passwort-Verschluesselung: DeepLink auf Selbstregistrierungsformular, zum Einbau in Mailtext bei sc */ private $_paramSelfRegKdnr = 0; /** * klee: 01.10.2020 - Datenbankgestüzte Banner-Verwaltung (NG-Component): PREVIEW */ private $_paramBannerPreview = HB_ACTION_BANNER_PREVIEW_OFF; private $_paramBannerVon = HB_ACTION_BANNER_PREVIEW_OFF; private $_paramBannerBis = HB_ACTION_BANNER_PREVIEW_OFF; /** * Holt die nötigen Html-Parameter, führt die notwendigen Checks * auf diesen durch und übernimmt die Werte der HTML-Paramter * in die korrespondierende Attribute des Frameset-Objektes * * @param * - * @return - * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php * @author WH: 22.03.2018 - NG_WEBSHOP: Params-Fehlerbehandlung in index-ssl.php * */ private function _checkParams() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // var_dump($_postGetParams); // $logMsg = "\n"; // $logMsg = $logMsg . "hbKl: " . $this->_htmlParams->getSingleHtmlParam ( "hbKl", HB_STRING ) ."\n"; // $logMsg = $logMsg . " " . "\n"; // $logMsg = $logMsg . " " . "\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // ! // ! Hinweis: die HTML-Parameter werden, sofern sie Session-Parameter sind, // ! abweichend vom hiblue-Konzept in der _phpSessionOverwriteWithHtmlParams // ! ausgewertet. Das vereinfacht das Schreiben und dient der Normierung beim // ! Programmieren (da weniger Diziplin dafür notwendig ist) // ! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // //////////////////////////////////////////////////////// // // Ausnahme-Parameter // if ($this->_htmlParams->isSetParam ( HB_PARAM_RESET_SESSION )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramResetSession = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_RESET_SESSION, HB_UINT, 'Error param resetSession', 2 ); // if ($this->_htmlParams->isSetParam ( HB_PARAM_RESET_SESSION_LOG_STR )) { // $paramResetSessionLogStr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_RESET_SESSION_LOG_STR, HB_STRING ); // // klee: 22.10.2021 - Schreiben auf die hbJsLog aus den Sicherheitsabfragen ausnehmen // // klee log -- bis Fehler entdeckt // $logMsg = "\n"; // $logMsg = $logMsg . "HB_PARAM_RESET_SESSION_LOG_STR: " . $paramResetSessionLogStr . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1, "/home/hiblue/logs/hb-log-jumpToResetUrl-php" ); // } } else { $this->_paramResetSession = HB_RESET_SESSION_NO; } // //////////////////////////////////////////////////////// // // Basis-Parameter // // HB_PARAM_DEV // wh+klee: 23.03.2018 -- NG_WEBSHOP: Korrektur hb_dev-Param // Korrekturmecahnismus: (strlen($this->_htmlParams->getSingleHtmlParam ( HB_PARAM_DEV, HB_STRING))>0) if ($this->_htmlParams->isSetParam ( HB_PARAM_DEV ) && (strlen ( $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_DEV, HB_STRING ) ) > 0)) { // System wurde explizit mit diesem Param aufgerufen // $this->_paramHbdev = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_DEV, HB_STRING ); $this->_paramHbdev = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_DEV, HB_UINT, 'Error param dev', 3 ); } else { $this->_paramHbdev = HB_DEV_OFF; } if ($this->_htmlParams->isSetParam ( HB_PARAM_LANG )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramLang = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_LANG, HB_UINT, 'Error param lang', 3 ); } else { $this->_paramLang = HB_LANG_DE; } // // HB_PARAM_SUCHBAUM if ($this->_htmlParams->isSetParam ( HB_PARAM_SUCHBAUM )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramSb = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_SUCHBAUM, HB_STRING, 'Error param sb', 2 ); } else { $this->_paramSb = HB_SUCHBAUM_ACTIVATED; } if ($this->_htmlParams->isSetParam ( HB_PARAM_ACTION )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramAction = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ACTION, HB_STRING . 'Error param action', 50 ); } else { $this->_paramAction = ""; } // //////////////////////////////////////////////////////// // // DEEPLINK-Parameter // if ($this->_htmlParams->isSetParam ( HB_PARAM_ARTIKELNR_KURZ ) || $this->_htmlParams->isSetParam ( HB_PARAM_ARTIKELNR )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramArtikelnr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ARTIKELNR_KURZ, HB_INT, 'Error param artikelnr', 18 ); } else { $this->_paramArtikelnr = ''; } // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramArtikelnr: $this->_paramArtikelnr " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // Markenshop-Nummer: für die Einschränk auf den Marekenshop (für den Bereich webShop (siehe auch HB_PARAM_KATALOG_NR)) if ($this->_htmlParams->isSetParam ( HB_PARAM_SHOPNR )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramShopnr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_SHOPNR, HB_INT, 'Error param shopnr', 5 ); } else { // shopnr / Katalognummer wurde NICHT als Parameter uebergeben // bewirkt einen Reset auf den Gesamtkatalog, wenn mann den Shop neu aufruft // wenn er denn endgültig in _act gesetzt wird $this->_paramShopnr = HB_SHOPNR_DEFAULT; } if ($this->_htmlParams->isSetParam ( HB_PARAM_SEARCHTEXT )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramSearchText = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_SEARCHTEXT, HB_STRING, 'Error param searchText', 100 ); } else { $this->_paramSearchText = ''; } // Spezieller Markenshop-Katalog wird angefordert (für den Bereich Online-Kataloge (siehe auch HB_PARAM_SHOPNR)) if ($this->_htmlParams->isSetParam ( HB_PARAM_KATALOG_NR )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramKatalogNr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_KATALOG_NR, HB_UINT, 'Error param katalognr', 5 ); } else { $this->_paramKatalogNr = ''; } // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramKatalogNr: $this->_paramKatalogNr " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if ($this->_htmlParams->isSetParam ( HB_PARAM_KATALOG_DESTINATION )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramKatalogDestination = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_KATALOG_DESTINATION, HB_STRING, 'Error param destination', 500 ); } else { $this->_paramKatalogDestination = ''; } if ($this->_htmlParams->isSetParam ( HB_PARAM_PAGE )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramKatalogAktSeitennr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_PAGE, HB_UINT, 'Error param page', 3 ); } else { $this->_paramKatalogAktSeitennr = ''; } // klee: 21.09.2022 -- hbapi: Deeplink auf Marke integriert // siehe dazu HB_PARAM_MARKE if ($this->_paramAction == HB_ACTION_SEARCH_MARKE_ALLE_ARTIKEL) { if ($this->_htmlParams->isSetParam ( HB_PARAM_MARKE_ID )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramMarkeId = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_MARKE_ID, HB_UINT, 'Error param markeId', 6 ); } else { $this->_paramMarkeId = HB_DEFAULT_MARKE_ID; } // BBB-log // $logMsg = "\n"; // $logMsg = $logMsg . "_paramMarkeId: $this->_paramMarkeId " . "\n"; // $logMsg = $logMsg . " " . "\n"; // $logMsg = $logMsg . " " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } // HB_ACTION_SEARCH_MARKE_ALLE_ARTIKEL // //////////////////////////////////////////////////////// // // DEEPLINK-Parameter: REST-Schnittstelle ob2b // WH: 20.03.2018 - Restschnittstelle officeb2b umstellen auf neue Indexseite if ($this->_paramAction == HB_ACTION_OFFICEB2B) { // Suchsstring $this->_paramSearchText = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_SEARCHTEXT, HB_STRING, 'Error searchText', 100 ); // Sprache : de, fr, etc $this->_paramLanguage = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_LANGUAGE, HB_STRING, 'Error language', 2 ); // die uebrigen Parameter koennen auch fehlen, deswegen explizit abfragen, ob sie gesetzt sein, weil es sonst // zu einem Error in den html-Params kommt, wenn die Laengenbeschraenkung gesetzt ist if ($this->_htmlParams->isSetParam ( "filterHauptGrp" )) { $this->_paramFilterHauptGrp = $this->_htmlParams->getSingleHtmlParam ( "filterHauptGrp", HB_STRING, 'Error _paramFilterHauptGrp' ); } else { $this->_paramFilterHauptGrp = ''; } if ($this->_htmlParams->isSetParam ( "filterUnterGrp" )) { $this->_paramFilterUnterGrp = $this->_htmlParams->getSingleHtmlParam ( "filterUnterGrp", HB_STRING, 'Error filterUnterGrp', 200 ); } else { $this->_paramFilterUnterGrp = ''; } if ($this->_htmlParams->isSetParam ( "filterMarken" )) { $this->_paramFilterMarken = $this->_htmlParams->getSingleHtmlParam ( "filterMarken", HB_STRING, 'Error filterMarken', 200 ); } else { $this->_paramFilterMarken = ''; } if ($this->_htmlParams->isSetParam ( "filterKategorien" )) { $this->_paramFilterKat = $this->_htmlParams->getSingleHtmlParam ( "filterKategorien", HB_STRING, 'Error filterKategorien', 200 ); } else { $this->_paramFilterKat = ''; } if ($this->_htmlParams->isSetParam ( "filterKapitel" )) { $this->_paramFilterKap = $this->_htmlParams->getSingleHtmlParam ( "filterKapitel", HB_STRING, 'Error filterKapitel', 200 ); } else { $this->_paramFilterKap = ''; } if ($this->_htmlParams->isSetParam ( "filterOffen" )) { $this->_paramFilterOffen = $this->_htmlParams->getSingleHtmlParam ( "filterOffen", HB_STRING, 'Error filterOffen', 200 ); } else { $this->_paramFilterOffen = ''; } } // if ($this->_paramAction == HB_ACTION_OFFICEB2B) // //////////////////////////////////////////////////////// // // DEEPLINK-Parameter: liefert-es Newsletter Anmeldung bestaetigen / abmelden // WH: 20.03.2018 - NG_WEBSHOP: liefert-es Shops: Deeplink Newsletter Anmeldung bestaetigen if ($this->_paramAction == HB_ACTION_NEWS_CONFIRM_KURZ || $this->_paramAction == HB_ACTION_NEWS_CANCEL_KURZ) { $this->_paramEmail = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_EMAIL, HB_NOT_EMPTY, 'Error param email', 100 ); } // //////////////////////////////////////////////////////// // // WH: 16.04.2018 - NG_WEBSHOP: Kreditkartenabwicklung - Deeplinks für Abbruch und Erfolg bei Zahlung if ($this->_paramAction == HB_ACTION_CIC_OK || $this->_paramAction == HB_ACTION_CIC_ABORT) { $this->_paramAbwicklungsnr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ABWICKLUNGSNR_KURZ, HB_NOT_EMPTY, 'Error Abwicklungsnr', 14 ); } // //////////////////////////////////////////////////////// // // WH: 24.04.2019 - Passwort-Verschluesselung: DeepLink auf Selbstregistrierungsformular, zum Einbau in Mailtext bei sc if ($this->_paramAction == HB_ACTION_SHOW_FORM_SELBSTREGISTER) { $this->_paramSelfRegKdnr = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ID, HB_NOT_EMPTY, 'Error Kundennr', 12 ); } // //////////////////////////////////////////////////////// // // WH: 16.02.2022 - Produkt-Info: Ansteuerung // die ID (Datum im Format yyMmdd) der Produkt-Infoseite in den Session-Param searchText legen // WH: 09.03.2022 - Produkt-Info: Param der Id umziehen in destination if ($this->_paramAction == HB_ACTION_PRODUKT_INFO) { $this->_paramKatalogDestination = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ID, HB_NOT_EMPTY, 'Error Page-Id', 6 ); } // //////////////////////////////////////////////////////// // // WH: 31.07.2023 - Newsletter mit Deeplink aufrufen // Id im sessionParam destination speichern if ($this->_paramAction == HB_ACTION_NEWS) { $this->_paramKatalogDestination = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ID, HB_STRING, 'Error Page-Id', 6 ); } // //////////////////////////////////////////////////////// // // //TODO WH: 26.02.2024 - Automatischer Wechsel der soft-carrier-Shopsite // Id ist Kundennr und Passwort , im sessionParam destination speichern if ($this->_paramAction == HB_ACTION_CODE_SITE_WECHSEL . HB_ACTION_LOGIN) { $this->_paramKatalogDestination = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_ID, HB_STRING, 'Error Data-Id', 30 ); } // //////////////////////////////////////////////////////// // // Weitere-Parameter // // klee: 19.03.2018 -- NG_WEBSHOP: NG-Shop liefert-es Preview Link programmiert + alter Link wird auf neuen Shop umgeroutet if ($this->_htmlParams->isSetParam ( HB_PARAM_PREVIEW )) { // System wurde explizit mit diesem Param aufgerufen $this->_paramPreview = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_PREVIEW, HB_UINT, 'Error param preview', 2 ); } else { $this->_paramPreview = HB_PREVIEW_OFF; } // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramPreview: $this->_paramPreview "."\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // klee: 01.10.2020 - Datenbankgestüzte Banner-Verwaltung (NG-Component): PREVIEW if ($this->_htmlParams->isSetParam ( HB_PARAM_BANNER_PREVIEW )) { // System wurde explizit mit diesem Param aufgerufen => von und bis müssen ebenfalls vorhanden sein $this->_paramBannerPreview = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_BANNER_PREVIEW, HB_UINT, 'Error param banner preview', 2 ); } else { $this->_paramBannerPreview = HB_ACTION_BANNER_PREVIEW_OFF; } if ($this->_htmlParams->isSetParam ( HB_PARAM_BANNER_VON )) { // System wurde explizit mit diesem Param aufgerufen => von und bis müssen ebenfalls vorhanden sein $this->_paramBannerVon = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_BANNER_VON, HB_UINT, 'Error param von banner preview', 8 ); } else { $this->_paramBannerVon = HB_DEFAULT_DATE_EMPTY; } if ($this->_htmlParams->isSetParam ( HB_PARAM_BANNER_BIS )) { // System wurde explizit mit diesem Param aufgerufen => von und bis müssen ebenfalls vorhanden sein $this->_paramBannerBis = $this->_htmlParams->getSingleHtmlParam ( HB_PARAM_BANNER_BIS, HB_UINT, 'Error param bis banner preview', 8 ); } else { $this->_paramBannerBis = HB_DEFAULT_DATE_EMPTY; } // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramBannerPreview: $this->_paramBannerPreview "."\n"; // $logMsg = $logMsg . "this->_paramBannerVon: $this->_paramBannerVon "."\n"; // $logMsg = $logMsg . "this->_paramBannerBis: $this->_paramBannerBis "."\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // WH Error-Objekt von htmlParams übernehmen $err = $this->_htmlParams->getError (); $lerror->setMessages ( $err->getMessages () ); // Meldungen des lokales Methoden-Error-Objekt werden an das Error-Objekt // des Frameset-Objektes übergeben $this->_error->setMessages ( $lerror->getMessages () ); } // _checkParams /** * Perform requested Action * $this->_paramAction wird bearbeitet * * @param * - * @return - * @author (Programmierer: klee Letzte Änderung: 19.12.2017) * */ private function _act() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // $logMsg = "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>action: $this->_paramAction" . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if (! $lerror->isWarningOrError ()) { // Actions switch ($this->_paramAction) { // case HB_ACTION_DETAIL_PRINT : // case HB_ACTION_DETAIL_PRINT_KURZ : // // Deeplink auf Artikel-Details // break; default : // Keine besondere Aktion notwendig break; } // switch } // if (!$lerror->isError()){ // Meldungen des lokales Methoden-Error-Objekt werden an das Haupt-Error-Objekt uebergeben $this->_error->setMessages ( $lerror->getMessages () ); } /** * Neues Session-Objekt erzeugen * + * session_start + Cookies setzen * * @param * - * @return - * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php */ private function _phpSessionInit() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // Neues Session-Objekt erzeugen if (! $lerror->isError ()) { $this->_session = new Session2017P ( $this->_db1, 'IndexSslHb' ); $error = $this->_session->getError (); $lerror->setMessages ( $error->getMessages () ); } // $logMsg = "\n"; // $logMsg = $logMsg . "1111 -- sessionid: $sessionid: $hbCaller " . "\n"; // $logMsg = $logMsg . "1111 -- sessionid: _paramResetSession: " . $this->_paramResetSession."\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if (! $lerror->isError () && ($this->_paramResetSession == HB_RESET_SESSION_YES)) { // Bei einem RESET die alte Session + Cookie werden zerstört und aus der DB gelöscht $this->_session->startSession (); $this->_restartSession (); // $logMsg = "\n"; // $logMsg = $logMsg . "1111 -- sessionid: $sessionid: $hbCaller " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // Hinweis: // in _restartSession wird die index-ssl-hb.php nochmals aufgerufen // und deshalb die Applikation an dieser Stelle ausnahmsweise durch die() unterbrochen // das geht nicht anders, wg. kruden PHP-Session-Mechanismus } // session_start + Cookies setzen if (! $lerror->isError ()) { // Trick um entscheiden zu können, dass man z.B. von der (VTMP)-Sitemap kommt // und damit die fertige HB_SITEMAP_VTMPDE_SESSIONID als PHPSESSID genommen werden kann global $hbCaller; // klee 08.03.2019 - Neues VTMP-Layout: Sitemap Rücksprung per Back-Knopf führte zu abgelaufener Session $aktuellePhpSessionId = ''; if (isset ( $_COOKIE [HB_PARAM_SESSIONID] )) { // Es exisitiert bereits eine PHP-Session-Id für diesen Benutzer und diese Site $aktuellePhpSessionId = $_COOKIE [HB_PARAM_SESSIONID]; // $logMsg = "\n"; // $logMsg = $logMsg . "Es exisitiert bereits eine PHP-Session-Id für dieser Site: " . $aktuellePhpSessionId . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } else { // $logMsg = "\n"; // $logMsg = $logMsg . "NOCH K E I N E PHP-Session-Id für diese Site vorhanden!!! " . "\n"; // $logMsg = $logMsg . "aktuellePhpSessionId: $aktuellePhpSessionId (LEER)" . "\n"; // $logMsg = $logMsg . "hbCaller: $hbCaller " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } if (($hbCaller == HB_CALLER_INDEX_SITEMAP) && ($aktuellePhpSessionId == '')) { // Man kommt von der vtmp-Sitemap und diese wurde nicht vom Webshop aufgerufen // bzw. der vtmp-Webshop wurde vorher noch nicht von diesem Benutzer aufgerufen // Nur dann braucht man (z.B. Google-Robots) eine Default PHP-Sessionid // ansonsten wird die vom Shop genommen // Die Sitemap-SessionId (HB_SITEMAP_VTMPDE_SESSIONID) setzen, damit nicht jedesmal // durch den Robot neue aufgemacht werden // !!! muss vor session-start aufgerufen werden !!! // !!! Nur im Initialfall // => besteht bereit eine normale VTMP-PHP-SESSION dann wird diese genommen // // startet die PHP-Sitzung und legt ein Cookies für die PHP-Sitzung an $this->_session->startSession ( HB_SITEMAP_VTMPDE_SESSIONID ); $sessionid = $this->_session->getSessionId (); if ($sessionid == '') { // Einbau Regernerate der Session in der index.php (klee: 19.03.2009) // Die Funktion session_regenerate_id() ersetzt die aktuelle Session-ID // durch eine neue und uebernimmt die aktuellen Session-Informationen. // klee: 09.05.2017 - DETECT LEER SESSIONID Meldung abgedreht // hbDebug ( get_class ( $this ) . '->control() DETECT LEER SESSIONID', 1 ); session_regenerate_id ( true ); } // $logMsg = "\n"; // $logMsg = $logMsg . "Man kommt von der vtmp-Sitemap -- hbCaller: $hbCaller " . "\n"; // $logMsg = $logMsg . "sessionid: $sessionid: $hbCaller " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } else { // Normalfall // startet die PHP-Sitzung und legt ein Cookies für die PHP-Sitzung an $this->_session->startSession (); $sessionid = $this->_session->getSessionId (); } // // Checken, ob der Cookie-Support im Browser aktiviert ist, // in dem sie ein Test-Cookie mit kurzem Expire an den Browser sendet // // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // Problem dieses Tests: funktioniert beim ersten Mal nicht, // ob ein user Cookies aktiviert hat oder nicht. // sieht man aber erst nach einem Reload // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // Das ist in unserer Applikation aber egal, da dies nur beim ersten Zugriff // für die Cookie-Auswertung (PHPSESSID) in der index-ssl-hb.php eine Rolle spielt. // Da die PHP-SESSION-ID aber auch per Link übergeben werden kann und wir das auch so // machen (siehe index-ssl-hb->_computeWebShopUrl) können wir alle anderen Parameter // getrost über die PHP-SESSION Variable $_SESSION an die Folgeseite IndexWebShop.php mitgeben. // Dieses Verfahren hat mehrere Vorteile: // - Link verkürzt sich enorm // - Sicherheit: ein Benutzer kann nicht so leicht herausfinden, // welche Basis-Parameter in den System benötigt werden // // Gibt es keinen Browser-Cookies-Support => so wird jede Sitzung als Initial-Sitzung behandelt $this->_initialSession = ! $this->_session->checkCookiesBrowserSupportOn (); // Hinweise: // - $_COOKIE [HB_PARAM_SESSIONID] == $sessionid sollten immer gleich sein // $logMsg = "\n"; // $logMsg = $logMsg . "_phpSessionInit -- _initialSession: $this->_initialSession " . "\n"; // $logMsg = $logMsg . "_phpSessionInit -- sessionid: $sessionid " . "\n"; // $logMsg = $logMsg . "_phpSessionInit -- _COOKIE [HB_PARAM_SESSIONID]: " . $_COOKIE [HB_PARAM_SESSIONID] . "\n"; // $logMsg = $logMsg . "_phpSessionInit -- _COOKIE: " . json_encode ( $_COOKIE ) . "\n"; // $logMsg = $logMsg . "_phpSessionInit -- _SESSION: " . json_encode ( $_SESSION ) . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } // if (! $lerror->isError ()) { // $this->_session->destroySession(); // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); } // _phpSessionInit /** * Setzen der Session-Parameter: * * 1. Schritt: Setzen der Allgemeine Session-Parameter * - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) * - bei bereits vorhandener SESSION bleiben alle Parameter erhalten * * @param * - * @return - * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php * * */ private function _phpSessionSetAllgemeineParams() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // $logMsg = "\n"; // $logMsg = $logMsg . "_phpSessionSetAllgemeineParams -- START " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if (! $lerror->isError ()) { // /////////////////////////////////////////////////////////// // // Setzen der Session-Parameter: // // 1. Schritt: Setzen der Allgemeine Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten // $this->_session->setParam ( HB_PARAM_ABWICKLUNGSNR, HB_DEFAULT_ABWICKLUNGSNR ); $this->_session->setParam ( HB_PARAM_AP_ID, HB_DEFAULT_AP_ID ); $this->_session->setParam ( HB_PARAM_BESTELLVORGANG_FLAG, false ); $bestellvorgangListe [HB_BESTELLVORGANG_WARENKORB] = false; $bestellvorgangListe [HB_BESTELLVORGANG_KUNDENDATEN] = false; $bestellvorgangListe [HB_BESTELLVORGANG_LIEFERANSCHRIFT] = false; $bestellvorgangListe [HB_BESTELLVORGANG_DIREKTLIEFERUNG] = false; $bestellvorgangListe [HB_BESTELLVORGANG_BANK] = false; $bestellvorgangListe [HB_BESTELLVORGANG_UEBERSICHT] = false; $bestellvorgangListe [HB_BESTELLVORGANG_ADRESSNR] = HB_DEFAULT_LIEFER_ADRESSNR; $bestellvorgangListe [HB_BESTELLVORGANG_BANKID] = HB_DEFAULT_BANKID; $this->_session->setParam ( HB_PARAM_BESTELLVORGANG_LISTE, $bestellvorgangListe ); $this->_session->setParam ( HB_PARAM_GRUPPENNR, HB_GESAMTBESTELLVORLAGE_ID ); $this->_session->setParam ( HB_PARAM_DEV, HB_DEV_OFF ); $this->_session->setParam ( HB_PARAM_LOGIN_STATUS, HB_LOGIN_STATUS_AUSGELOGGED ); $this->_session->setParam ( HB_PARAM_SEARCHMARKE, HB_DEFAULT_MARKE_ID ); $this->_session->setParam ( HB_PARAM_PREVIEW, HB_PREVIEW_OFF ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); $this->_session->setParam ( HB_PARAM_SEARCHTEXT, "" ); $this->_session->setParam ( HB_PARAM_SEARCHTYPE, HB_SEARCH_TYPE_TEXT_ALL_ARTIKEL ); $this->_session->setParam ( HB_PARAM_SHOPNR, HB_SHOPNR_DEFAULT ); // z.B.: stSe: 1512495223 $this->_session->setParam ( HB_PARAM_SESSION_START, time () ); // cookies: 0 (Problem: 1. Aufruf kann nicht von Cookies deaktiviert unterschieden werden $this->_session->setParam ( HB_PARAM_COOKIES, HB_COOKIES_STATUS_NOT_TESTED ); // Folgende SESSION-PARAMs sind nicht eindeutig // oder müssen zum Zeitpunkt der Iitialisierung nicht gesetzt werden: // // curframeset: "shared/EinstiegFrameset.php" (wird beim Aufruf des entsprechenden Framesets gesetzt) // kundentyp: 1 (wird beim Aufruf des webShops gesetzt) // HB_PARAM_LASTWARENKORBACCESS: last_warenkorb_access: 0 // HB_PARAM_LOCK: lock: 9437 siehe auch HB_PARAM_KEY // printDetailKatalogseite: 1 } // if (! $lerror->isError ()) // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); } // _phpSessionSetAllgemeineParams /** * Setzen der Session-Parameter: * * 2. Schritt: Setzen der speziellen Domain-Session-Parameter * - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) * - bei bereits vorhandener SESSION bleiben alle Parameter erhalten * * (Bei Änderungen siehe auch Site2018P->_getBasisParams) * * @param * - * * @return - * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php * @author WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Firmenindikator aus s_siteinfo * @author WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Waehrung des FH aus Tabelle adressen * */ private function _phpSessionSetSpecialDomainParamsInitCase($fullHostName = "") { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // klee: Fehlerfaelle abfangen -- Nein vorerst nicht // Fall: nicht vorhandene subdomain bei softcarrier oder vtmp, z.B. www.1111.vtmp.de // => es wird soft-carrier aufgerufen, das will man auf gar keinen Fall // www1111.vtmp.de wird aber korrekt auf www.vtmp.de umgeleitet // bisher hat sich aber in den letzten 20 Jahren noch niemand beschwert // $logMsg = "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>>>_phpSessionSetSpecialDomainParamsInitCase -- START -- _domainNameFullQualified: $this->_siteObj2018P->getDomainNameFullQualified()" . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if (! $lerror->isError ()) { // /////////////////////////////////////////////////////////// // // Setzen der Session-Parameter: // // 2. Schritt: Setzen der speziellen Domain-Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten // switch ($this->_siteObj2018P->getDomainNameFullQualified ()) { case 'liefert-es.com' : // klee: 28.05.2018 - Klasse Site2018P eingeführt // klee: 05.06.2018 - Klasse Site2018P: Korrektur Berechnung wwwsite // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE wwwsite=hiblue.liefert-es.com // $wwwsite = $this->_siteObj2018P->getServerSubDomainName() . '.' . $this->_siteObj2018P->getDomainNameFullQualified(); // $row = $this->_getS_Siteinfo ( $this->_wwwsite ); // klee: 06.06.2018 - getS_Siteinfo an allen Stellen aus Klasse Site2018P ziehen $row = $this->_siteObj2018P->getS_Siteinfo ( $this->_wwwsite ); // Fall-1: liefert-es Site nicht vorhanden, z.B. blablablu.liefert-es.com (siehe _checksSshops) // Fall-2: liefert-es shop ist noch nicht fertig oder gesperrt. d.h. shop_status ungleich HB_SHOP_STATUS_FREIGEGEBEN (= 4) (siehe _checksSshops) // Fall-3: FH des liefert-es shop ist nicht vorhanden (sollte eigentlich nicht vorkommen) (wird geprüft in _getAdresseShopbetreiber) // Fall-4: FH des liefert-es shop ist gesperrt (status = HB_BENUTZER_STATUS_PERMANENT_GESPERRT status (= 9) (siehe _checksSshops) if ($row != null) { // S_Siteinfo: kein Fehler und Datensatz vorhanden // WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Waehrung des FH aus Tabelle adressen // da liefert-es sowohl in softde als auch softch betrieben wird $kundennrShopBetreiber = $row ['kundennr']; $firmenindikator = $row ['firmenindikator']; // Daten des FH aus Tabelle adressen $rowFhAdr = null; $rowFhAdr = $this->_getAdresseShopbetreiber ( $kundennrShopBetreiber, $firmenindikator ); if ($rowFhAdr != null) { // FH-Datensatz vorhanden // $logMsg = "\n"; // $logMsg = $logMsg . " >>>>>>>>>>>>>>>>>>>>>>liefert-es.com -- row aus s_siteinfo: " .json_encode($row). "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_DE ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_DE ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_LIEFERT_ES ); // siehe Konstanten für site aus DB: scSite site":"soft-fr" "site":"HiBlue", $this->_session->setParam ( HB_PARAM_SITE, $row ['site'] ); // wwwsite z.B.: wwwsite=hiblue.liefert-es.com $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, $this->_wwwsite ); $this->_session->setParam ( HB_PARAM_WWWSITE, $this->_wwwsite ); // $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTDE ); // $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTDE ); // WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Firmenindikator aus s_siteinfo // da liefert-es sowohl in softde als auch softch betrieben wird $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, $row ['firmenindikator'] ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, $row ['firmenindikator'] ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, $row ['kundennr'] ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_SSHOP ); // $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); // $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_EURO ); // WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Waehrung des FH aus Tabelle adressen // da liefert-es sowohl in softde als auch softch betrieben wird // // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, $rowFhAdr ['waehr1'] ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, $rowFhAdr ['waehrbz1'] ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); } // FH-Datensatz vorhanden } // // S_Siteinfo: kein Fehler und Datensatz vorhanden break; case 'vous-livre.com' : // klee: 05.06.2018 - Klasse Site2018P: Korrektur Berechnung wwwsite // klee: 28.05.2018 - Klasse Site2018P eingeführt // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE wwwsite=hiblue.liefert-es.com // $wwwsite = $this->_siteObj2018P->getServerSubDomainName() . '.' . $this->_siteObj2018P->getDomainNameFullQualified(); // $row = $this->_getS_Siteinfo ( $this->_wwwsite ); // klee: 06.06.2018 - getS_Siteinfo an allen Stellen aus Klasse Site2018P ziehen $row = $this->_siteObj2018P->getS_Siteinfo ( $this->_wwwsite ); // Fall-1: vous-livre Site nicht vorhanden, z.B. blablablu.vous-livre.com (siehe _checksSshops) // Fall-2: vous-livre shop ist noch nicht fertig oder gesperrt. d.h. shop_status ungleich HB_SHOP_STATUS_FREIGEGEBEN (= 4) (siehe _checksSshops) // Fall-3: FH des vous-livre shop ist nicht vorhanden (sollte eigentlich nicht vorkommen) (wird geprüft in _getAdresseShopbetreiber) // Fall-4: FH des vous-livre shop ist gesperrt (status = HB_BENUTZER_STATUS_PERMANENT_GESPERRT status (= 9) (siehe _checksSshops) if ($row != null) { // S_Siteinfo: kein Fehler und Datensatz vorhanden // WH: 23.03.2018 -- NG_WEBSHOP: vous-livre-Shops: Waehrung des FH aus Tabelle adressen // an dieser Stelle zwar nicht noetig, da vous-livre nur in FR betrieben wird, // aber aus Kompatibilitaetsgruenden mit liefert-es $kundennrShopBetreiber = $row ['kundennr']; $firmenindikator = $row ['firmenindikator']; // Daten des FH aus Tabelle adressen $rowFhAdr = null; $rowFhAdr = $this->_getAdresseShopbetreiber ( $kundennrShopBetreiber, $firmenindikator ); if ($rowFhAdr != null) { // FH-Datensatz vorhanden // $logMsg = "\n"; // $logMsg = $logMsg . " >>>>>>>>>>>>>>>>>>>>>>liefert-es.com -- row aus s_siteinfo: " .json_encode($row). "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_FR ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_FR ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_VOUS_LIVRE ); // siehe Konstanten für site aus DB: scSite site":"soft-fr" "site":"HiBlue", $this->_session->setParam ( HB_PARAM_SITE, $row ['site'] ); // wwwsite z.B.: wwwsite=netbureau.vous-livre.com $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, $this->_wwwsite ); $this->_session->setParam ( HB_PARAM_WWWSITE, $this->_wwwsite ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTFR ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTFR ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, $row ['kundennr'] ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_SSHOP ); // $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); // $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_EURO ); // WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Waehrung des FH aus Tabelle adressen // an dieser Stelle zwar nicht noetig, da vous-livre nur in FR betrieben wird, // aber aus Kompatibilitaetsgruenden mit liefert-es // // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, $rowFhAdr ['waehr1'] ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, $rowFhAdr ['waehrbz1'] ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); } // FH-Datensatz vorhanden } // S_Siteinfo: kein Fehler und Datensatz vorhanden break; case 'vtmp.net' : case 'vtmp.de' : // Hinweise: // vtmp.lu ist Online nicht mehr erreichbar // vtmp.ch wird von officeB2B bedient => // Beachte die Sonderbehandlung der vtmp.ch-Url in $this->_computeWebShopUrl() // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_DE ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_DE ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_VTMP ); // siehe Konstanten für site / scSite $this->_session->setParam ( HB_PARAM_SITE, HB_VTMP_DE ); // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, HB_VTMP_WWWSITE_DE ); $this->_session->setParam ( HB_PARAM_WWWSITE, HB_VTMP_WWWSITE_DE ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_VTMPDE ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_VTMPDE ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, HB_MUSTERKUNDE_KUNDENNR_VTMP ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_VTMP ); // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_EURO ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); // $logMsg = "\n"; // $logMsg = $logMsg . "++++++++++++++ HB_PARAM_FHFIRMENINDIKATOR: " . $this->_session->getParam ( HB_PARAM_FHFIRMENINDIKATOR ) . "\n"; // $logMsg = $logMsg . "_SESS: ". $_SESSION; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); break; case 'vtmp.ch' : // Hinweise: // vtmp.lu ist Online nicht mehr erreichbar // vtmp.ch wird von officeB2B bedient => // Beachte die Sonderbehandlung der vtmp.ch-Url in $this->_computeWebShopUrl() // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_DE ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_DE ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_VTMP ); // siehe Konstanten für site / scSite $this->_session->setParam ( HB_PARAM_SITE, HB_VTMP_CH ); // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, HB_VTMP_WWWSITE_CH ); $this->_session->setParam ( HB_PARAM_WWWSITE, HB_VTMP_WWWSITE_CH ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_VTMPCH ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_VTMPCH ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, HB_MUSTERKUNDE_KUNDENNR_VTMP ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_VTMP ); // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_FR ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); break; case 'soft-carrier.ch' : case 'softcarrier.ch' : // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_DE ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_DE ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_SOFTCARRIER ); // siehe Konstanten für site / scSite $this->_session->setParam ( HB_PARAM_SITE, HB_SOFT_CH ); // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, HB_SOFT_WWWSITE_CH ); $this->_session->setParam ( HB_PARAM_WWWSITE, HB_SOFT_WWWSITE_CH ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTCH ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTCH ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_FR ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); break; case 'soft-carrier.lu' : case 'softcarrier.lu' : // Hinweise: // softcarrier.lu wird Online nicht mehr bedient // => nur noch Bild als Hinweis + Suchbaum muss deaktiviert sein (siehe weiter unten) // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_DE ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_DE ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_SOFTCARRIER ); // siehe Konstanten für site / scSite $this->_session->setParam ( HB_PARAM_SITE, HB_SOFT_LU ); // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, HB_SOFT_WWWSITE_LU ); $this->_session->setParam ( HB_PARAM_WWWSITE, HB_SOFT_WWWSITE_LU ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTLU ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTLU ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_EURO ); // Für Luxemburg Suchbaum immer deaktivieren $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_DEACTIVATED ); break; case 'fr.softcarrier.com' : case 'fr.soft-carrier.com' : // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_FR ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_FR ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_SOFTCARRIER ); // siehe Konstanten für site / scSite $this->_session->setParam ( HB_PARAM_SITE, HB_SOFT_FR ); // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_FR $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, HB_SOFT_WWWSITE_FR ); $this->_session->setParam ( HB_PARAM_WWWSITE, HB_SOFT_WWWSITE_FR ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTFR ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTFR ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_EURO ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); break; case 'soft-carrier.de' : case 'softcarrier.de' : case 'softcarrier.com' : default : // VIP-Codierung: 1=de, 5=fr $this->_session->setParam ( HB_PARAM_LANG, HB_LANG_DE ); $this->_session->setParam ( HB_PARAM_LANG_ART, HB_LANG_DE ); // softcarrier, buerotissimo, vtmp, liefert-es, vous-livre $this->_session->setParam ( HB_PARAM_SHOPTYPE, HB_SOFTCARRIER ); // siehe Konstanten für site / scSite $this->_session->setParam ( HB_PARAM_SITE, HB_SOFT_DE ); // wwwsite z.B.: softcarrier.de = HB_SOFT_WWWSITE_DE $this->_session->setParam ( HB_PARAM_ERROR_WWWSITE, HB_SOFT_WWWSITE_DE ); $this->_session->setParam ( HB_PARAM_WWWSITE, HB_SOFT_WWWSITE_DE ); $this->_session->setParam ( HB_PARAM_FHFIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTDE ); $this->_session->setParam ( HB_PARAM_FIRMENINDIKATOR, HB_FIRMENINDIKATOR_SOFTDE ); $this->_session->setParam ( HB_PARAM_KDNR_SHOP_BETREIBER, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); $this->_session->setParam ( HB_PARAM_S_KUNDENNR, HB_MUSTERKUNDE_KUNDENNR_SOFTCARRIER ); // Währung und Währungsbezeichnung // • Währung (waehr1) und Währungsbezeichnung (waehrbz1) werden zur Zeit pro Site fest in der index-ssl-hb.php gesetzt // • und anschließend immer aus dem Session-Modul gezogen // • sie könnten aber sehr leicht individuell pro Kunde beim Login-Prozess umgesetzt werden bei, in dem sie aus dem Kunden-Objekt mit getWaehr1 bzw. getWaehrbz1 gezogen würden $this->_session->setParam ( HB_PARAM_WAEHR1, HB_WAEHR_LEITWAEHRUNG ); $this->_session->setParam ( HB_PARAM_WAEHRBZ1, HB_WAEHR_BZ_EURO ); $this->_session->setParam ( HB_PARAM_SUCHBAUM, HB_SUCHBAUM_ACTIVATED ); break; } // switch } // if (! $lerror->isError ()) // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); } // _phpSessionSetSpecialDomainParamsInitCase /** * Setzen der Session-Parameter: * * 3. Schritt: Überschreiben der Session-Params, die explizit als HTML-Parameter * an die index-ssl-hb.php übergeben worden sind (Explizite Parameter) * * @param * - * @return - * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php * @author WH: 20.03.2018 - NG_WEBSHOP: liefert-es Shops: Deeplink Newsletter Anmeldung bestaetigen oder abmelden * @author WH: 24.04.2019 - Passwort-Verschluesselung: DeepLink auf Selbstregistrierungsformular, zum Einbau in Mailtext bei sc * @author klee: 08.08.2019 - RESET HB_PARAM_SEARCHTEXT wg. Umlaute-Problematik * @author klee: 08.08.2019 - Umlaute-Normierung der Suchanfragen über den Deeplink wg. Umlaute-Problematik */ private function _phpSessionOverwriteWithHtmlParams() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // BBB-log // $logMsg = "\n"; // $logMsg = $logMsg . "_phpSessionOverwriteWithHtmlParams -- START " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if (! $lerror->isError ()) { // /////////////////////////////////////////////////////////// // // 3. Schritt: Überschreiben der Session-Params, die explizit als HTML-Parameter // an die index-ssl-hb.php übergeben worden sind (Explizite Parameter) // Explizite Parameter: Setzen der Session-Parameter, // die durch HTML-Param-Übergabe explizit gesetzt werden sollen // // /////////////////////////////////////////////////////////// // // F A L L - 1: // Paramter, die in der Session nur überschrieben werden // falls die Web-Site explizit damit aufgerufen wurde // // Es werden nur die Parameter in der Session überschrieben, // mit denen das System explizit aufgerufen wurde. // Ansonsten gilt der letzte Wert für diesen Parameter aus der Session // z.B. Benuzter scahltet den Suchbaum ab, ruft dann Shop erneut auf => Suchbaum sollte abgeschaltet sein // dito für Sprache, if ($this->_htmlParams->isSetParam ( HB_PARAM_LANG )) { $this->_session->setParam ( HB_PARAM_LANG, $this->_paramLang ); $this->_session->setParam ( HB_PARAM_LANG_ART, $this->_paramLang ); } if ($this->_htmlParams->isSetParam ( HB_PARAM_SUCHBAUM )) { $this->_session->setParam ( HB_PARAM_SUCHBAUM, $this->_paramSb ); } // Für Deeplink auf Volltextsuche // action: HB_ACTION_SEARCH_VT_SOLR + HB_ACTION_SEARCH_VT_KURZ if ($this->_htmlParams->isSetParam ( HB_PARAM_SEARCHTEXT )) { // klee -- hier könnte man als Workaround einen Hack einprogrammieren und Umlaute, Französiche Sonderzeichen normieren // Die Kodierungen können so nicht funktionieren (siehe dazu auch Kommentare in der SharedWebShopAjax->_getPhpSessionParams) $this->_session->setParam ( HB_PARAM_SEARCHTEXT, $this->_paramSearchText ); } else { // RESET // klee: 08.08.2019 - RESET HB_PARAM_SEARCHTEXT wg. Umlaute-Problematik // Leer setzen wg. Umlaute-Problematik - Phänonem: // Der Benutzer sucht in einem alten Browser mit einem WebShop < Version 3.315 // einen Suchbegriff mit Umlauten z.B. Sichthüllen, dann wurde dieser unkodiert // in der PHP-$_SESSION gespeichert und bleibt dort auch erhalten. // Dies führt in der getPhpSession dazu, dass in der SharedWebShopAjax->_getPhpSessionParams // (HB_CALLER_SPECIFIC_AJAX_SESS_ETC) die json-Rückgabe fehl schlägt bzw. leer ist // => eigentliche Lösung wäre die Rückgabe in der HB_CALLER_SPECIFIC_AJAX_SESS_ETC utf-8 zu codiederen // Bereits erledigt -- aber zusätzlich hier leeren -- kann bei stabilen Laufen getest werden, ob überhuapt noch notwendig // des neuen WebShops diesen Workaround hier: $this->_session->setParam ( HB_PARAM_SEARCHTEXT, '' ); } // WH: 16.02.2022 - Produkt-Info: Ansteuerung // die ID (Datum im Format yyMmdd) der Produkt-Infoseite in den Session-Param searchText legen if ($this->_paramAction == HB_ACTION_PRODUKT_INFO) { $this->_session->setParam ( HB_PARAM_SEARCHTEXT, $this->_paramSearchText ); } // WH: 16.04.2018 - NG_WEBSHOP: Kreditkartenabwicklung - Deeplinks für Abbruch und Erfolg bei Zahlung if ($this->_htmlParams->isSetParam ( HB_PARAM_ABWICKLUNGSNR_KURZ )) { $this->_session->setParam ( HB_PARAM_ABWICKLUNGSNR, $this->_paramAbwicklungsnr ); } // /////////////////////////////////////////////////////////// // // F A L L - 2: // Übergabe der erweiterten Parameter an den webShop über PHP-Session-Params // Diese Parameter werden immer überschrieben // // Setzen besonderer Parameter für besondere Aktionen wie DEEPLINKS // // Für Deeplink auf ArtikelDetail // action: HB_ACTION_DETAIL_PRINT + HB_ACTION_DETAIL_PRINT_KURZ // zur Auswertung der action siehe mainSuperShopCrt, // in dem dann aufgrund der action der korrekte State angesprungen wird // DART-BBB-log klee // BBB-log // $logMsg = "\n"; // $logMsg = $logMsg . "> > > index-ssl-hb.php -- _phpSessionOverwriteWithHtmlParams < < <" . "\n"; // $logMsg = $logMsg . "_paramArtikelnr: " .$this->_paramArtikelnr . "\n"; // $logMsg = $logMsg . " " . "\n"; // $logMsg = $logMsg . " " . "\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // wh+klee: 23.03.2018 -- NG_WEBSHOP: Korrektur hb_dev-Param // if ($this->_htmlParams->isSetParam ( HB_PARAM_DEV )) { $this->_session->setParam ( HB_PARAM_DEV, $this->_paramHbdev ); // } // Action muss immer neu gesetzt werden, damit nicht die alte (letzte action aus dem webShopGültigkeit hat) $this->_session->setParam ( HB_PARAM_ACTION, $this->_paramAction ); $this->_session->setParam ( HB_PARAM_ARTIKELNR, $this->_paramArtikelnr ); $this->_session->setParam ( HB_PARAM_SHOPNR, $this->_paramShopnr ); // Für Deeplink auf Online Katalog -- action: HB_ACTION_KATALOG_DEEP_LINK $this->_session->setParam ( HB_PARAM_KATALOG_NR, $this->_paramKatalogNr ); $this->_session->setParam ( HB_PARAM_KATALOG_DESTINATION, $this->_paramKatalogDestination ); $this->_session->setParam ( HB_PARAM_PAGE, $this->_paramKatalogAktSeitennr ); // klee: 21.09.2022 -- hbapi: Deeplink auf Marke integriert $this->_session->setParam ( HB_PARAM_MARKE_ID, $this->_paramMarkeId ); // WH: 20.03.2018 - NG_WEBSHOP: liefert-es Shops: Deeplink Newsletter Anmeldung bestaetigen oder abmelden $this->_session->setParam ( HB_PARAM_EMAIL, $this->_paramEmail ); // ausschliesslich fürs Preview // klee: 19.03.2018 -- NG_WEBSHOP: NG-Shop liefert-es Preview Link programmiert + alter Link wird auf neuen Shop umgeroutet // preview immer HB_PREVIEW_OFF, es sei denn er wird explizit gesetzt if ($this->_paramPreview == HB_PREVIEW_ON) { $this->_session->setParam ( HB_PARAM_PREVIEW, HB_PREVIEW_ON ); } else { $this->_session->setParam ( HB_PARAM_PREVIEW, HB_PREVIEW_OFF ); } // klee: 01.10.2020 - Datenbankgestüzte Banner-Verwaltung (NG-Component): PREVIEW // preview immer HB_ACTION_BANNER_PREVIEW_OFF, es sei denn er wird explizit gesetzt if ($this->_paramBannerPreview == HB_PREVIEW_ON) { $this->_session->setParam ( HB_PARAM_BANNER_PREVIEW, HB_ACTION_BANNER_PREVIEW_ON ); $this->_session->setParam ( HB_PARAM_BANNER_VON, $this->_paramBannerVon ); $this->_session->setParam ( HB_PARAM_BANNER_BIS, $this->_paramBannerBis ); } else { $this->_session->setParam ( HB_PARAM_BANNER_PREVIEW, HB_ACTION_BANNER_PREVIEW_OFF ); $this->_session->setParam ( HB_PARAM_BANNER_VON, HB_DEFAULT_DATE_EMPTY ); $this->_session->setParam ( HB_PARAM_BANNER_BIS, HB_DEFAULT_DATE_EMPTY ); } // WH: 24.04.2019 - Passwort-Verschluesselung: DeepLink auf Selbstregistrierungsformular, zum Einbau in Mailtext bei sc $this->_session->setParam ( HB_PARAM_SELF_REG_KDNR, $this->_paramSelfRegKdnr ); // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramPreview: $this->_paramPreview "."\n"; // $logMsg = $logMsg . "this->_paramAction: $this->_paramAction "."\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // Korrektur der Session, da diese evt. falsch gesetzt wurde // klee -- Korrekturmechanismus kann nach Ostern 2018 entfernt werden // if (($this->_siteObj2018P->getDomainNameFullQualified() == 'vtmp.net') || ($this->_siteObj2018P->getDomainNameFullQualified() == 'vtmp.de')) { // $this->_session->setParam ( HB_PARAM_WWWSITE, HB_VTMP_WWWSITE_DE ); // } // /////////////////////////////////////////////////////////// // // klee: 02.03.2018 -- NG_WEBSHOP: Falls man über die index-ssl-hb.php kommt // und die Session abgelaufen ist, so wird der Benutzer immmer automatisch ausgeloggt // if ($this->_session->isSessionTimeout ( $this->_isSoftcarrier () ) && ($this->_session->getLoginStatus () == HB_LOGIN_STATUS_EINGELOGGED)) { // Überprüfung, ob Session-Timeout vorliegt // Hier den Benutzer bereits explizit ausloggen $this->_session->setLoginStatus ( HB_LOGIN_STATUS_AUSGELOGGED ); // $logMsg = "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>>>>>>>>>>> Benutzer automatisch ausgeloggt " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } } // if (! $lerror->isError ()) // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); } // _phpSessionOverwriteWithHtmlParams /** * Holen der Info fuer Waehrung des FH aus Tabelle adressen * * @param $kundennrShopBetreiber - * die Kundennr des FH, der Shopbetreiber eines liefert-es Shops ist * @param $firmenindikator - * Firmenindikator des liefert-es Shops * * @return $row als DB-Zeile aus * * @author WH: 23.03.2018 -- NG_WEBSHOP: liefert-es-Shops: Waehrung des FH aus Tabelle adressen * * */ private function _getAdresseShopbetreiber($kundennrShopBetreiber = 0, $firmenindikator = 0) { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); $row = null; // /////////////////////////////////////////////////////////////// // // Holen der Daten aus Tabelle adressen // $query = ' SELECT * ' . ' FROM hbdb.adressen ' . ' WHERE kundennr = ' . $kundennrShopBetreiber . ' AND firmenindikator = ' . $firmenindikator; // // $logMsg = "\n"; // $logMsg = $logMsg . "query " . $query . "\n"; // $logMsg = $logMsg . " " . "\n"; // $logMsg = $logMsg . "_wwwsite: $this->_wwwsite" . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // (Klee: 04.05.2005) Keine Konvertierung $table = $this->_db1->queryAssoc ( $query ); $error = $this->_db1->getError (); if ($error->isError ()) { // Error bei DB-Abfrage, aber keine konkreten Fehler auf der Oberflaeche ausgeben $msg = 'DB-Error'; $lerror->setMessages ( $msg, HB_ERROR ); hbdebug ( get_class ( $this ) . '->_getAdresseShopbetreiber(): could not perform SQL: ' . $query, 1 ); } elseif (count ( $table ) == 0) { // Shopbetreiber nicht gefunden if ($this->_wwwsite == 'softcarrier.liefert-es.com') { // klee: 18.01.2024 - Verhinderung Fehlermeldungen im Log bei soft-carrier.liefert-es.com // Nichts tun, da für softcarrier.liefert-es.com die Betreiber-Kundennr 0 eingetragen ist // + Konsequenzen bei Korrektur von 0 nicht überschaubar } else { $msg = 'undefined kundennrShopBetreiber [' . $kundennrShopBetreiber . ']' . ' - firmenindikator [' . $firmenindikator . ']'; hbdebug ( get_class ( $this ) . '->_getAdresseShopbetreiber(): ' . $msg, 1 ); } } else { // Shopbetreiber nicht gefunden $row = $table [0]; } // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); return $row; } // _getAdresseShopbetreiber /** * Control * * @param * - * @return - '$this->_error' wird erweitert * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php * @author klee: 16.03.2018 -- NG_WEBSHOP: NG-Shop liefert-es Preview Link programmiert + alter Link wird auf neuen Shop umgeroutet * @author klee: 06.06.2018 - getS_Siteinfo an allen Stellen aus Klasse Site2018P ziehen * @author klee 22.10.2018 - hbdev in Site2018P + UtilitiesKunde2018P parametrisiert */ function control() { $this->_error = new Error2017P (); // TODO klee // $logMsg = "\n"; // $logMsg = $logMsg . "> > > index-ssl-hb < < <" . "\n"; // $logMsg = $logMsg . "" . "\n"; // $logMsg = $logMsg . "HB_DBSERVER1: " . HB_DBSERVER1 ."\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // TODO klee // exit('KLEE'); // klee: 25.10.2021 - isBot-Check in alle zentrale Ajax-Dateien eingebracht if (isBot ()) { // Sicherheitabfrage gegen Bots // $logMsg = "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>>isBot<<<<<<<<<<<<<<<<<<" . "\n"; // $logMsg = $logMsg . " Security Violation (ERROR_IB_100) " . "\n"; // $logMsg = $logMsg . " REMOTE_ADDR: " . $_SERVER ['REMOTE_ADDR'] ."\n"; // $logMsg = $logMsg . " " . "\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); echo 'Security Violation (ERROR_IB_100)'; // Absoluter Programmausstieg die (); } // HTML-Parameter checken if (! $this->_error->isWarningOrError ()) { $this->_htmlParams = new HtmlParams2017P ( 'IndexSslHb' ); $err = $this->_htmlParams->getError (); $this->_error->setMessages ( $err->getMessages () ); } // Check Params if (! $this->_error->isWarningOrError ()) { $this->_checkParams (); } // klee: 27.06.2018 - Eliminierung von Aufrufen des alten Webshops: _callOldWebShop eliminiert // Zum Testen: // $this->_error->setMessages ( ' klee Fatal Error', HB_ERROR ); // Datenbankverbindung aufmachen if (! $this->_error->isWarningOrError ()) { $this->_db1 = new DatabasePDO2018P ( HB_DBUSERNAME, HB_DBPASSWORD, HB_DBSERVER1, HB_DBNAME ); $err = $this->_db1->getError (); // $this->_error->setMessages ( $err->getMessages () ); // klee: 25.11.2015 -- DB-Connection Msg an der Oberfläche für den Benutzer ausgeben // /$this->_error->setMessages ( $err->getMessages () ); if ($err->isError ()) { // Basismeldungen können NICHT internationalisiert werden: da keine db-Connector vorhanden $this->_error->setMessages ( $err->getMessages () ); $this->_error->setMessages ( 'Zur Zeit keine Datenbankverbindung!', HB_WARNING ); $this->_error->setMessages ( 'Pas de connexion à la base de données!', HB_WARNING ); $this->_error->setMessages ( 'No database connection', HB_WARNING ); $fatalError = new FatalError (); $fatalError->control ( $this->_error ); // harter Abbruch: da ohne DB-Verbindungen keine weiteren Tätigkeiten möglich sind // einmaliger Gebrach // die (); } } // Datenbankverbindung aufmachen // Domainen-Prüfung durchführen if (! $this->_error->isWarningOrError ()) { // klee: 28.05.2018 - Klasse Site2018P eingeführt // Site-Object über $wwwsite (darf auch null sein -- dann wird sie in Site2018P über HTTP_HOST berechnet ) besorgen // klee 23.10.2018 - UtilitiesKunde2018P Vereinheitlichung Sprachtabelle-Methoden // Die vom Benutzer gezogene Sprache wird erst in derSession bzw. Site2018P berechnet // => an dieser Stelle einfach mal mit HB_LANG_DE vorbelegen // $langStr = $this->_siteObj2018P->getLangShopBasisStr (); $langStr = HB_LANG_DE_ISO; $wwwsite = null; $this->_siteObj2018P = new Site2018P ( $this->_db1, $this->_paramHbdev, $langStr, $wwwsite ); $this->_wwwsite = $this->_siteObj2018P->getWwwSite (); // $err = $this->_siteObj2018P->getError (); // $this->_error->setMessages ( $err->getMessages () ); } // klee 23.10.2018 - Umzug diverser Methoden nach UtilitiesKunde2018P if (! $this->_error->isWarningOrError ()) { $this->_utilSoft2018P = new UtilitiesKunde2018P ( $this->_db1, $this->_paramHbdev, $langStr ); $err = $this->_utilSoft2018P->getError (); $this->_error->setMessages ( $err->getMessages () ); // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramHbdev: $this->_paramHbdev " . "\n"; // $logMsg = $logMsg . "langStr: $langStr " . "\n"; // $logMsg = $logMsg . "wwwsite: $wwwsite " . "\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); } // klee: 29.05.2018 - DSGVO: Internationalisierung if (! $this->_error->isWarningOrError ()) { $langStr = $this->_siteObj2018P->getLangShopBasisStr (); // $logMsg = "\n"; // $logMsg = $logMsg . "langStr: $langStr " . "\n"; // $logMsg = $logMsg . " " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } // BBB-log -- styleSheet zum Testen HB_ERROR erzeugen // $this->_error->setMessages ( 'TEST KLEE', HB_ERROR ); if (! $this->_error->isWarningOrError ()) { // Die Sprachtabelle für dieses Modul in den soft-carrier Utilities holen $this->_utilSoft2018P->getSprachtabelleFuerModul ( 'phpshop.hbApi.EinstiegFrameset.' ); $this->_utilSoft2018P->getSprachtabelleFuerIdList ( '2243' ); $err = $this->_utilSoft2018P->getError (); $this->_error->setMessages ( $err->getMessages () ); // $this->_error->setMessages ( $this->_utilSoft2018P->getLang ( 'Bitte kontaktieren Sie uns telefonisch!', '2243' ), HB_WARNING ); } // if (! $this->_error->isWarningOrError // /////////////////////////////////////////////////////////// // // Setzen der Session-Parameter: // // 1. Schritt: Setzen der Allgemeine Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten // // 2. Schritt: Setzen der speziellen Domain-Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten // // 3. Schritt: Überschreiben der Session-Params, die explizit als HTML-Parameter // an die index-ssl-hb.php übergeben worden sind (Explizite Parameter) // // 1. Schritt: Setzen der Allgemeine Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten if (! $this->_error->isWarningOrError ()) { // Neues Session-Objekt erzeugen // session_start + Cookies setzen $this->_phpSessionInit (); // 1. Schritt: Setzen der Allgemeine Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten if ($this->_initialSession) { $this->_phpSessionSetAllgemeineParams (); } // 2. Schritt: Setzen der speziellen Domain-Session-Parameter // - nur bei Initialsitzung (Erst-Aufruf oder Cookies sind deaktiviert) // - bei bereits vorhandener SESSION bleiben alle Parameter erhalten if ($this->_initialSession) { $this->_phpSessionSetSpecialDomainParamsInitCase (); } // 3. Schritt: Überschreiben der Session-Params, die explizit als HTML-Parameter // an die index-ssl-hb.php übergeben worden sind (Explizite Parameter) $this->_phpSessionOverwriteWithHtmlParams (); // if (($this->_session->getEndKundennrScshopOrSshop() == -1) && ($this->_siteObj2018P->getKdnrShopBetreiber() == -1)) { // // Notbremse, falls es bei Cookies zu DB zu Inkonsitenten Zuständen kommt // $this->_restartSession (); // // Hinweis: // // in _restartSession wird die index-ssl-hb.php nochmals aufgerufen // // und deshalb die Applikation an dieser Stelle ausnahmsweise durch die() unterbrochen // // das geht nicht anders, wg kruden PHP-Session-Mechanismus // } } // isWarningOrError // $logMsg = "\n"; // $logMsg = $logMsg . "this->_paramPreview: $this->_paramPreview " . "\n"; // $logMsg = $logMsg . "this->_paramWwwsite: $this->_paramWwwsite " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); if (! $this->_error->isWarningOrError ()) { // klee: 15.03.2018 -- NG_WEBSHOP: Test ob liefert-es gesperrt // WH: 06.04.2018 - NG_WEBSHOP: Pruefung ShopShops fuer Preview freigegeben // Diese Tests werden immer ausgeführt, auch im PREVIEW-Mode $this->_checksSshops (); } // klee: 20.02.2018 -- NG_WEBSHOP: Deeplinks Umprogrammierung // Weitere Aktionen durchführen, falls Spezialbehandlungen notwendig if (! $this->_error->isWarningOrError ()) { $this->_act (); } // $url = "https://www.softcarrier.ch"; // $url = "https://www.softcarrier.ch/hbdb/webShop/IndexWebShop.php?/#shop"; global $hbCaller; if ($hbCaller == HB_CALLER_INDEX_SITEMAP) { // Wir kommen von der Sitemap // in der Sitemap wird die index-ssl-hb.php nur in die IndexSitemap eingelagert. // Sie darf also keinen Sprung auf den webShop machen // $logMsg = "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>> Wir kommen von der Sitemap <<<<<<<<<<<<<<<<<<<<<<<<" . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } elseif ($this->_paramAction == HB_ACTION_OFFICEB2B) { // WH: 20.03.2018 - Restschnittstelle officeb2b umstellen auf neue Indexseite $this->_checkOb2bAndRestCall (); } else { // Normalfall if (! $this->_error->isWarningOrError ()) { // Normalfall // JavaScript-Check + Aufruf webShop $this->_checkJsAndShopCall (); } else { // /Fehlerbehandlung $fatalError = new FatalError (); $fatalError->control ( $this->_error ); } } // if ($hbCaller == HB_CALLER_INDEX_SITEMAP) } // control /** * Berechnet die Url für den Aufruf des neuen WebShops * * @param * - * @return - * * @author klee: 29.11.2017 -- NG_WEBSHOP: Überarbeitung IndexWebShop.php * @author klee: 16.03.2018 -- NG_WEBSHOP: Sonderbehandlung Routing auf vtmp.net + softcarrier.com * */ private function _computeWebShopUrl() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); $url = ''; $sessionid = $this->_session->getSessionId (); $urlPhpSessionId = ""; if ($this->_initialSession) { // Benutzer erlaubt keine Cookies im Web-Browser bzw. 1. Aufruf liegt vor // (siehe Problembeschreibung bei checkCookiesBrowserSupportOn) // Dieses Problem tangiert uns nicht wirklich, da wir beim ersten Aufruf // einfach die HB_PARAM_SESSIONID in der URL mitgeben // HB_PARAM_SESSIONID = PHPSESSID // // Hinweis: Gibt es keinen Browser-Cookies-Support => so wird jede Sitzung als Initial-Sitzung behandelt // // $urlPhpSessionId = ""; funktioniert nicht bei abgeschalteten Cookies $urlPhpSessionId = "?" . HB_PARAM_SESSIONID . "=$sessionid"; // $logMsg = "\n"; // $logMsg = $logMsg . "Cookies: sind N I C H T aktiviert bzw. es liegt EINE Initial-Sitzung vor" . "\n"; // $logMsg = $logMsg . "urlPhpSessionIdStr: $urlPhpSessionId " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } else { // $logMsg = "\n"; // $logMsg = $logMsg . "Cookies: sind aktiviert und es liegt KEINE Initial-Sitzung vor" . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); } // if ($this->_initialSession) // $logMsg = "\n"; // $logMsg = $logMsg . "this->_domainNameFullQualified: $this->_siteObj2018P->getDomainNameFullQualified() "."\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // // BBB-log // $logMsg = "\n"; // $logMsg = $logMsg . "++++++++++++++++++++++ QUERY_STRING: " . $_SERVER['QUERY_STRING'] . "\n"; // $logMsg = $logMsg . "getDomainNameFullQualified: " . $this->_siteObj2018P->getDomainNameFullQualified () ."\n"; // $logMsg = $logMsg . "_SERVER: " . $logMsg = $logMsg . " " . json_encode( $_SERVER , JSON_PRETTY_PRINT ). "\n"; // $logMsg = $logMsg . "_SERVER['REQUEST_URI']: " . $_SERVER['REQUEST_URI'] ."\n"; // $logMsg = $logMsg . " " . "\n"; // $logMsg = $logMsg . " " . "\n"; // hbDebug ( "(".get_class ( $this ).") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1); // klee: 26.06.2018 - Eliminierung von Aufrufen des alten Webshops if (($this->_siteObj2018P->getDomainNameFullQualified () == 'softcarrier.fr') || ($this->_siteObj2018P->getDomainNameFullQualified () == 'soft-carrier.fr')) { // klee: 10.01.2024 - softcarrier.fr und soft-carrier.fr auf auf fr.softcarrier.com umgelenkt $url = "www.fr.softcarrier.com"; } elseif ($this->_siteObj2018P->getDomainNameFullQualified () == 'vtmp.ch') { // Sonderbehandlung vtmp.ch // _domainNameFullQualified: 'fr.softcarrier.com', 'soft-carrier.ch', liefert-es.com ... $url = "www.vtmp.ch/cms/vtmpch/de/info/officeb2b.html"; } elseif (($this->_siteObj2018P->getDomainNameFullQualified () == 'buerotissimo.com') && ($_SERVER ['REQUEST_URI'] != "/hbdb/webShop/HbErrorUnderConstruction.php")) { // klee: 23.10.2023 -- Abfangen der buerotissimo.com // $url = 'www.buerotissimo.com' . '?/hbdb/webShop/HbError404.php'; // $url = 'www.vtmp.de'; // $url = 'www.liefert-es.com/hbdb/webShop/HbError404.php'; // Beachte bitte auch die Rewrite-Regeln in /etc/apache $url = 'www.buerotissimo.com/hbdb/webShop/HbErrorUnderConstruction.php'; } elseif ($this->_siteObj2018P->getDomainNameFullQualified () == 'vtmp.net') { // Sonderbehandlung vtmp.net // mri: 24.10.2018 - vtmp.net und softcarrier.com Domains nicht umleiten // $url = "www.vtmp.net/cms/vtmpnet/"; // klee: 27.05.2022 -- vtmp.net auf vtmp.de in der index-ssl-hb.php umgebogen -- mit allen QUERY_STRING Params $url = 'www.vtmp.de' . '?' . $_SERVER ['QUERY_STRING']; } elseif ($this->_siteObj2018P->getDomainNameFullQualified () == 'vtmp.com') { // Sonderbehandlung vtmp.biz // klee: 11.04.2024 -- vtmp.com integriert $url = 'www.vtmp.de' . '?' . $_SERVER ['QUERY_STRING']; } elseif ($this->_siteObj2018P->getDomainNameFullQualified () == 'vtmp.biz') { // Sonderbehandlung vtmp.biz // klee: 27.06.2018 - Eliminierung von Aufrufen des alten Webshops: vtmp.biz // mri: 24.10.2018 - vtmp.net und softcarrier.com Domains nicht umleiten // $url = "www.vtmp.net/cms/vtmpnet/"; // klee: 24.05.2022 -- vtmp.biz auf vtmp.de in der index-ssl-hb.php umgebogen -- mit allen QUERY_STRING Params $url = 'www.vtmp.de' . '?' . $_SERVER ['QUERY_STRING']; } elseif (($this->_siteObj2018P->getDomainNameFullQualified () == 'softcarrier.com') || ($this->_siteObj2018P->getDomainNameFullQualified () == 'soft-carrier.com')) { // Sonderbehandlung soft-carrier.com // mri: 24.10.2018 - vtmp.net und softcarrier.com Domains nicht umleiten // $url = "www.softcarrier.de/cms/softcom/"; $url = "www.softcarrier.com/cms/softcom/"; } elseif (($this->_siteObj2018P->getDomainNameFullQualified () == 'softcarrier.at') || ($this->_siteObj2018P->getDomainNameFullQualified () == 'soft-carrier.at')) { // Sonderbehandlung soft-carrier.at $url = "www.softcarrier.com/cms/softcom/"; } elseif (($this->_siteObj2018P->getDomainNameFullQualified () == 'softcarrier.lu') || ($this->_siteObj2018P->getDomainNameFullQualified () == 'soft-carrier.lu')) { // Sonderbehandlung soft-carrier.lu // klee: 16.12.2020 - Zugriffe auf www.softcarrier.lu wird auf sc-com-Seite umgelenkt $url = "www.softcarrier.com/cms/softcom/"; } elseif (($this->_siteObj2018P->getDomainNameFullQualified () == 'heeft-het.com')) { // Sonderbehandlung heeft-het.com // mri: 24.10.2018 - vtmp.net und softcarrier.com Domains nicht umleiten // $url = "www.softcarrier.de/cms/softcom/"; $url = "www.softcarrier.com/cms/softcom/"; } elseif (($this->_siteObj2018P->getDomainNameFullQualified () == 'liefert-es.net')) { // Sonderbehandlung liefert-es.net => Umleitung auf den Mustershop // klee: 27.06.2018 - Eliminierung von Aufrufen des alten Webshops: liefert-es.net $url = "www.soft.liefert-es.com"; } else { // Normalfall // Beachte: die HTML-Parameter werden alle per PHP-Session weiter gegeben // einzige Ausnahme HB_PARAM_SESSIONID in der Initialsitzung $url = $_SERVER ["HTTP_HOST"] . "/hbdb/webShop/IndexWebShop.php" . $urlPhpSessionId; } // Spezialfall Online Kataloge: // WH: 28.03.2017 - Transfer Protocol SSL -- Umstellung. siehe properties.inc.php if (SSL_ON) { // bei aktivierten domainen SSL On $url = "https://" . $url; } else { $url = "http://" . $url; } // $logMsg = "\n"; // $logMsg = $logMsg . "sessionid: $sessionid " . "\n"; // $logMsg = $logMsg . "$url: $url" . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); return $url; } // _computeWebShopUrl /** * zerstört die aktuelle Sitzung + löscht diese aus der DB * löscht das aktuelle Cookie im Kunden-Browser und * ruft die Index erneut auf, um so eine völlig neue Sitzung zu initialisieren * * Restart der Sitzung hat auch immer ein die() * und damit einen Ausstieg aus demWebshop zur Folge * * @param * - * @return - * @author (Programmierer: klee Letzte Änderung: 02.09.2010) * @author PHP-BUG-Workaround fuer session_start() (klee:01.09.2010) * @author klee: 17.01.2018 -- FATAL-Error weiter ausprogrammiert */ private function _restartSession() { hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : START", 10 ); // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // Sitzung zerstoeren $this->_session->destroySession (); // - Rücksprung auf die Index-Seite // - Dort Neu-Initialisierung der Sitzung // URL auf Index-Seite holen ; // Reset-Url muss mit allen Parametern aufgerufen werden: denke auch an Deeplink oder an bereits gesetzte Sprache // Jedenfalls darf dann kein erneuter HB_PARAM_RESET_SESSION erfolgen // alle Paramter außer PHPSESSID und reset an die URL anhängen // Code aus dem Inter gefischt $url = $_SERVER ["HTTP_HOST"]; // WH: 28.03.2017 - Transfer Protocol SSL -- Umstellung. siehe properties.inc.php if (SSL_ON) { // bei aktivierten domainen SSL On $url = "https://" . $url; } else { $url = "http://" . $url; } // Alle Parameter mitgeben, außer RESET und PHP_SESSIONID $cleanedAllHtmlParams = $this->_htmlParams->getAllHtmlParams (); unset ( $cleanedAllHtmlParams [HB_PARAM_RESET_SESSION] ); unset ( $cleanedAllHtmlParams [HB_PARAM_SESSIONID] ); // Alle restlichen Parameter als Übergabestring vorbereiten $queryString = ''; foreach ( $cleanedAllHtmlParams as $key => $value ) { $queryString = $queryString . $key . '=' . $value . '&'; } // $url = $url .'?hbdev=20'. '&' . HB_PARAM_MSG . '=' . $msg; $url = $url . '?' . $queryString; // $logMsg = "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>> queryString: $queryString" . "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>> cleanedAllHtmlParams: " . json_encode($cleanedAllHtmlParams) . "\n"; // $logMsg = $logMsg . ">>>>>>>>>>>>>>>>> url: $url " . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // Hier gab es im Zusammenhang mit der session_start() Probleme, // diese scheint nur einmal pro PHP-Datei aufrufbar, ansonsten greift sie immer // auch nachdem das Cookie und der DB-Eintrag zerstoert sind auf die alte PHP_SESSION_ID zu // evt. schwiert diese irgendwo als globale Variable herum // ===> WORKAROUND per location die Index-Seite nochmals aufrufen // header('location: '.$url); echo ''; // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); // Hinweis: // in _restartSession wird die index-sssl-hb.php nochmals aufgerufen // und deshalb die Applikation an dieser Stelle ausnahmsweise durch die() unterbrochen // das geht nicht anders, wg kruden PHP-Session-Mechanismus // ausnahmsweise -- korrekt an dieser Stelle !!!! die (); } // _restartSession() /** * Checkt, ob JavaScript aktiviert ist oder nicht * Falls kein JS aktiviert wird eine Warnung ausgegeben. * Ansonsten wird über einen JS-Befehl der webShop angesprungen * * @param * - * @return - * * @author klee: 25.01.2018 -- Check auf JavaScript eingebaut * */ private function _checkJsAndShopCall() { // lokales Error-Objekt erzeugen $lerror = new Error2017P (); // /////////////////////////////////////////////////////////// // // URL-webShop berechnen // if (! $lerror->isWarningOrError ()) { $url = $this->_computeWebShopUrl (); } // DART-BBB-log klee // BBB-log // $logMsg = "\n"; // $logMsg = $logMsg . "> > > _checkJsAndShopCall < < <" . "\n"; // $logMsg = $logMsg . "url: $url " . "\n"; // $logMsg = $logMsg . " " . "\n"; // $logMsg = $logMsg . "this->_session->getSessionId " . $this->_session->getSessionId () . "\n"; // hbDebug ( "(" . get_class ( $this ) . ") " . __FILE__ . " -->" . __FUNCTION__ . "--> : $logMsg", 1 ); // Meldungen des lokales Error-Objekt werden an das Klassen-Error-Objekt übergeben $this->_error->setMessages ( $lerror->getMessages () ); // Nur wenn es gar keinen Fehler gegeben hat Aufruf des WebShops // => Abfrage auf $this->_error if (! $this->_error->isWarningOrError ()) { // Permanent redirection // WH: diese Art der Umleitung, wenn man neu in den Shop reinkommt und eine neue Session generiert // statt das urspruengliche Verfahren von hiblue beizubehalten, bei Feststellung einer abgelaufenen Session eine neue zu generieren // damit ist auch das Verfahren ausgehebelt, die Parameter wie z.B. die language zu uebergeben , da im neu zusammengebauten // Link ($url. s.o.) nur die Params wwwsite, shoptye, sb und msg mitgegeben werden // An dieser Stelle könnte man natürlich eine schönere Seite integrieren // Aufwand für alle 3 Systeme: softcarrier, vtmp, liefert-es bzw. vous-livre // Auf französchisch und deutsch und englisch // evt. mit Links wie das beim IE + FF umzusetzen ist echo '