if ($sBaseUrl) { $sBaseDir = parse_url($sBaseUrl, PHP_URL_PATH); if ($sBaseDir) { session_set_cookie_params(COOKIE_LIFETIME, $sBaseDir); } else { session_set_cookie_params(COOKIE_LIFETIME); } unset($sBaseDir); } unset($sBaseUrl); session_start(); // Neue Sitzung erstellen if (!$_SESSION['rpc_sid']) { // Am RP-System mit Gast-Token anmelden if (bbRpc::auth() === NULL) { if (Renderer::DEBUG) { Status::injectRPCMsgs(); Renderer::assign('_msgs', Status::getMessages()); } Renderer::renderFatal('Verbindung zum Shop-System konnte nicht hergestellt werden.'); } // Vom RP verwendete Sitzungs-ID für nächste Seitenaufrufe speichern $_SESSION['rpc_sid'] = bbRpc::getSid(); // Bestehende Sitzung wiederherstellen } else { // RP-Sitzung wiederverwenden bbRpc::setSid($_SESSION['rpc_sid']); } // Werte der Sitzung speichern // Nach diesem Aufruf steht das $_SESSION-Array dem Skript nicht mehr bereit session_write_close();
/** * Fehlermeldung zum Feld suchen * * @param string $sFld Name des Feldes * @param [string] $sParent Schlüssel des übergeordneten Felds * @return string Fehlermeldung des Felds */ public static function getError($sFld, $sParent = null) { // Aufgetretene Fehlermeldungen cachen if (is_null(static::$msg_cache)) { static::$msg_cache = Status::getMessages(); } // In Meldungen nach angegebenem Feld suchen foreach (static::$msg_cache as $msg) { if (is_null($sParent) && $msg['fld'] == $sFld && !array_key_exists('parent', $msg) || !is_null($sParent) && $msg['fld'] == $sFld && array_key_exists('parent', $msg) && $msg['parent'] == $sParent) { // Name des Felds aus Meldung entfernen und direkt zurückgeben return preg_replace(array('/(F|f)eld: \\$[a-zA-Z0-9_-]+/', '/\\$tab\\.[a-zA-Z0-9_-]+: /'), array('', ''), $msg['msg']); } } // Kein Fehler aufgetreten return ''; }
private static final function getResult($data = array()) { Status::injectRPCMsgs(); return array('messages' => Status::getMessages(), 'success' => !Status::hasErrors(), 'data' => $data); }