Intemshop problem

01/31/2015 12:55 _-Russian-_#1
Hallo,
Ich habe ein Problem: Wenn ich versuche, etwas im Laden kaufen Ich habe diesen Fehler.
[Only registered and activated users can see links. Click Here To Register...]
Helfen Sie mir bitte.
01/31/2015 13:23 fabulo#2
Quote:
Originally Posted by xTwiLightx View Post
sites/shop.php
Code:
					if(	@odbc_exec($odbc_connect, $strUpdateBalance)
						AND
							@odbc_exec($odbc_connect, '
                                INSERT INTO [' . $_CONFIG['db_databases']['web'] . '].dbo.[LOG_PURCHASES] (
                                    item,
                                    itemname,
                                    itemcount,
                                    itemcurrency,
                                    itemworth,
                                    account,
                                    datetime
                                ) VALUES (
                                    ' . cleanSqlInput($mixedSelectedItemDetailsArray['itemid']) . ',
                                    \'' . cleanSqlInput($mixedSelectedItemDetailsArray['name']) . '\',
                                    ' . cleanSqlInput($mixedSelectedItemDetailsArray['count']) . ',
                                    ' . $intGetCurrentCurrency . ',
                                    ' . cleanSqlInput($mixedSelectedItemDetailsArray[$intWorthColumnHelper]) . ',
                                    \'' . cleanSqlInput($_SESSION['user']) . '\',
                                    \''. date($_CONFIG['web_date_format']['dbDatetime']) .'\'
                                )
							')
						AND
							send_item($intCharacterID, $mixedSelectedItemDetailsArray['itemid'], $mixedSelectedItemDetailsArray['count'])
					)
xinc_functions.php
Code:
	function send_item($playerid, $itemid, $quantity) {
		global $odbc_connect, $_CONFIG;

		if(is_numeric($playerid) AND is_numeric($itemid) AND is_numeric($quantity)) {
			if(	@odbc_exec($odbc_connect, '
				INSERT INTO [' . $_CONFIG['db_databases']['chr'] . '].dbo.[ITEM_SEND_TBL] (
					m_idPlayer,
					serverindex,
					Item_Name,
					Item_count,
					idSender
				) VALUES (
					\''.$playerid.'\',
					\'01\',
					\''.$itemid.'\',
					\''.$quantity.'\',
					\'0000000\'
				)
			')) {
				return true;
			}
			else {
				return false;
			}
		}
		else {
			return false;
		}
	}
Entferne das @ for dem odbc_exec (das @ unterdürckt Fehlermeldungen von Funktionen in PHP), kaufe erneut ein Item und schaue, ob es nun einen neuen Error-Log gibt.

Die PHP Errorlogs liegen bei Windows (IIS) standardmäßig im C:\Windows\Temp Ordner.

Meine Vermutung ist ein Fehler mit dem Dateformat.
Wenn das der Fall ist, eventuell mal in der xinc_config.php das Dateformat bearbeiten.

Dies hängt in der Regel von der Sprachversion des SQL Servers ab, auf dem die Datenbank liegt:
  • Deutsch
    • 'dbDatetime' => 'Y-d-m H:i:s'
  • Englisch
    • 'dbDatetime' => 'Y-m-d H:i:s'

Am einfachsten ist es aber, in Querys das date($_CONFIG['web_date_format']['dbDatetime']) durch GETDATE() zu ersetzen - der Server baut sich das Datumsformat dann selbst zusammen.


steht alles in dem Release Thread von der Sapphire Seite