Please verify you are human

[Website] Item versenden Log
  Register for your free account! | Forgot your password?

You last visited: Today at 04:25

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[Website] Item versenden Log

Discussion on [Website] Item versenden Log within the Flyff PServer Guides & Releases forum part of the Flyff Private Server category.

Reply
 
Old   #1

 
Chyukαsame's Avatar
 
elite*gold: 0
Join Date: Oct 2012
Posts: 1,102
Received Thanks: 564
[Website] Item versenden Log

Da vielen Stefan Pfeifer und Sapphire Flyff nutzen und fast jedem Teammitglied zugang zum Admin Panel geben und manche es ausnutzen, Items ohne log zu verschicken gibt es hier nun ein Update, damit nicht mehr gepusht wird :P


1. Ihr geht in euer Admin Panel und sucht die datei account_senditem.php
2. Ihr öffnet die Datei und sucht nach if(isset($_POST['senditem_sbm'])) {
3. Ihr ändert die funktion von

PHP Code:
if(isset($_POST['senditem_sbm'])) {
        
odbc_exec($odbc_connect'USE [' $_CONFIG['db_databases']['chr'] . ']');
        
$charid odbc_exec($odbc_connect'SELECT m_idPlayer FROM [CHARACTER_TBL] WHERE m_szName=\''.mssql_escape_string($_POST['character']).'\'');
        if(
odbc_num_rows($charid) == 1) {
            
odbc_exec($odbc_connect'INSERT INTO [ITEM_SEND_TBL](
            m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, m_bItemResist, m_nResistAbilityOption, idSender, nPiercedSize
            ) VALUES(
            \''
.mssql_escape_string(odbc_result($charid'm_idPlayer')).'\',
            \'01\',
            \''
.mssql_escape_string($_POST['itemname']).'\',
            \''
.mssql_escape_string($_POST['count']).'\',
            \''
.mssql_escape_string($_POST['upgrade']).'\',
            \''
.mssql_escape_string($_POST['element']).'\',
            \''
.mssql_escape_string($_POST['elementupgrade']).'\',
            \'0000000\',
            \''
.mssql_escape_string($_POST['piercing']).'\'
            )'
);
            echo 
'<div class="success">The item has successfully been send!</div>';
        } else {
            echo 
'<div class="fail">Character does not exist!</div>';
        }
    } 
zu

PHP Code:
if(isset($_POST['senditem_sbm'])) {
        
$charid odbc_exec($odbc_connect'SELECT m_idPlayer FROM [' $_CONFIG['db_databases']['chr'] . '].dbo.[CHARACTER_TBL] WHERE m_szName=\''.mssql_escape_string($_POST['character']).'\'');
        
$charname odbc_exec($odbc_connect'SELECT m_szName FROM [' $_CONFIG['db_databases']['chr'] . '].dbo.[CHARACTER_TBL] WHERE m_szName=\''.mssql_escape_string($_POST['character']).'\'');
        if(
odbc_num_rows($charid) == 1) {        
        
            
$ItemSendToCharakter '
                INSERT INTO [' 
$_CONFIG['db_databases']['chr'] . '].dbo.[ITEM_SEND_TBL] (
                    m_idPlayer, serverindex, Item_Name, Item_count, m_nAbilityOption, m_bItemResist, m_nResistAbilityOption, idSender, nPiercedSize
                ) VALUES(
                    \''
.mssql_escape_string($_SESSION['user']).'\',
                    \''
.mssql_escape_string(odbc_result($charid'm_idPlayer')).'\',
                    \'01\',
                    \''
.mssql_escape_string($_POST['itemname']).'\',
                    \''
.mssql_escape_string($_POST['count']).'\',
                    \''
.mssql_escape_string($_POST['upgrade']).'\',
                    \''
.mssql_escape_string($_POST['element']).'\',
                    \''
.mssql_escape_string($_POST['elementupgrade']).'\',
                    \'0000000\',
                    \''
.mssql_escape_string($_POST['piercing']).'\'
                )
            '
;
                
            
$ItemSendLog '
                INSERT INTO [' 
$_CONFIG['db_databases']['web'] . '].dbo.[LOG_SENDITEM] (
                    von, an, itemname, count, upgrade, element, elementupgrade, piercing
                ) VALUES(
                    \''
.mssql_escape_string(odbc_result($charname'm_szName')).'\',
                    \''
.mssql_escape_string($_POST['itemname']).'\',
                    \''
.mssql_escape_string($_POST['count']).'\',
                    \''
.mssql_escape_string($_POST['upgrade']).'\',
                    \''
.mssql_escape_string($_POST['element']).'\',
                    \''
.mssql_escape_string($_POST['elementupgrade']).'\',
                    \''
.mssql_escape_string($_POST['piercing']).'\'
                )
            '
;            
            if(@
odbc_exec($odbc_connect$ItemSendToCharakter) AND @odbc_exec($odbc_connect$ItemSendLog)) {
            echo 
createMessage('Das Item wurde erfolgreich versendet''success');
            }
            else {
                echo 
createMessage('Das Item konnte leider nicht versendet werden''fail');
            }
        } else {
            echo 
'<div class="fail">Character does not exist!</div>';
        }
    } 

4. Dann geht ihr in eure Datenbank und führt dieses Script aus

Code:
USE [WEBSITE_DBF]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[LOG_SENDITEM](
	[sid] [int] IDENTITY(1,1) NOT NULL,
	[von] [varchar](50) NULL,
	[an] [varchar](50) NULL,
	[itemname] [varchar](50) NOT NULL,
	[count] [int] NOT NULL,
	[upgrade] [int] NOT NULL,
	[element] [int] NOT NULL,
	[elementupgrade] [int] NULL,
	[piercing] [int] NULL,
 CONSTRAINT [web_senditemlogs] PRIMARY KEY CLUSTERED 
(
	[sid] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Nun lassen wir es noch wiedergeben in den den "Diverse Logs"

Dafür geht ihr in die list_database.php und fügt unter
PHP Code:
<input type="submit" name="logins" value="Websitelogins" /> 
das hier ein
PHP Code:
<br /><br />
<
input type="submit" name="SendItems" value="Versendete Items" /> 
dann sucht ihr nach elseif( isset($_GET['GSRanking']) ){ und fügt darüber das hier ein

PHP Code:
    elseif(isset($_GET['SendItems'])){
        
odbc_exec($odbc_connect'USE [' $_CONFIG['db_databases']['web'] . ']');
        
$select odbc_exec($odbc_connect'SELECT TOP 100 * FROM [LOG_SENDITEM] ORDER BY [sid] ASC');
        if( 
odbc_num_rows($select) == ){
            echo 
'<div class="fail">'.$lang['db_no_del'].'</div>';
        }
        else {
            echo 
'
            <table cellspacing="0">
                <thead>
                    <tr>
                        <td>&nbsp;</td>
                        <td>Von</td>
                        <td>An</td>
                        <td>Itemname</td>
                        <td>Anzahl</td>
                        <td>Upgrade</td>
                        <td>Element</td>
                        <td>Element Upgrade</td>
                        <td>Sockel Anzahl</td>
                    </tr>
                </thead>
                <tbody>'
;
            while(
$result odbc_fetch_array($select)){
                echo 
'
                    <tr>
                        <td>('
.$result['sid'].')</td>
                        <td>'
.$result['von'].'</td>
                        <td>'
.$result['an'].'</td>
                        <td>'
.$result['itemname'].'</td>
                        <td>'
.$result['count'].'</td>
                        <td>'
.$result['upgrade'].'</td>
                        <td>'
.$result['element'].'</td>
                        <td>'
.$result['elementupgrade'].'</td>
                        <td>'
.$result['piercing'].'</td>
                    </tr>'
;
            }
            echo 
'
    </tbody>
</table>'
;
        }
        echo 
'
    <br />
    <a href="list_database.php">'
.$lang['panel_back'].'</a>';
    } 


Am Ende sieht es dann so aus
Chyukαsame is offline  
Thanks
3 Users
Old 05/12/2014, 08:18   #2
 
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
Quote:
\''.mssql_escape_string($_POST['itemname']).'\',
\''.mssql_escape_string($_POST['count']).'\',
\''.mssql_escape_string($_POST['upgrade']).'\',
\''.mssql_escape_string($_POST['element']).'\',
\''.mssql_escape_string($_POST['elementupgrade']).'\',
Du wolltest doch wissen, was ich an der Seite kake finde. Das ist ein Beispiel.
Drabur is offline  
Old 05/12/2014, 08:35   #3



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
Die Art zu escapen ist scheisse. Sende die werde als hex value ab.
Sedrika is offline  
Old 05/12/2014, 10:33   #4
 
elite*gold: 0
Join Date: Jan 2014
Posts: 773
Received Thanks: 374
Wenn man es so machen soll, sollte man einfach alle Variablen die vom Browser kommen via schleife durchlaufen lassen.
Drabur is offline  
Old 05/12/2014, 10:55   #5
 
xTwiLightx's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
Wenn man es sicher haben will, kann man auch Prozeduren benutzen, welche sp_executesql verwenden. Da wird dann auch gleich escaped...
xTwiLightx is offline  
Old 05/12/2014, 15:41   #6

 
Chyukαsame's Avatar
 
elite*gold: 0
Join Date: Oct 2012
Posts: 1,102
Received Thanks: 564
Ey Leute, nehmt es mir nicht böse aber meine php Erfahrung ist nicht die Beste und es ist nur ein Release der vielen Admins helfen kann und auch gut funktioniert.


Ich hatte gerade ne OP, doch ihr nehmt echt keinen halt mich nur fertig zu machen O.o
Chyukαsame is offline  
Old 05/12/2014, 17:50   #7



 
Sedrika's Avatar
 
elite*gold: 18
The Black Market: 103/0/0
Join Date: Sep 2009
Posts: 20,174
Received Thanks: 14,475
Ich sehe hier gerade nicht, dass du von uns fertig gemacht wirst.

Ich habe dir als vorschlag gesagt, dass du die Werte als Hex Values abschicken kannst (natürlich ausgenommen sind Zahlen) und du könntest dir das ansehen und dir dann auch aneignen wie das geht (Erfahrung++).

Mirko hat dann dazu gesagt, dass man die Werte die man bekommt im Browser durchlaufen lassen und so escapen lassen kann.

Twilight hat geschrieben, dass man Prozeduren verwenden kann welche sp_executesql nutzen, da dort bereits escaped wird. Könntest du dir auch ansehen und wieder dazulernen (Erfahrung++)

Könntest also hier zwei neue sachen mindestens lernen.

Und das du eine OP hattest denke ich interessiert nicht irgendjemanden und kann ggf. ja wohl auch keiner wissen oder etwa doch?
Sedrika is offline  
Thanks
2 Users
Old 05/12/2014, 21:31   #8

 
Chyukαsame's Avatar
 
elite*gold: 0
Join Date: Oct 2012
Posts: 1,102
Received Thanks: 564
Quote:
Originally Posted by Sedrika View Post
Ich sehe hier gerade nicht, dass du von uns fertig gemacht wirst.

Ich habe dir als vorschlag gesagt, dass du die Werte als Hex Values abschicken kannst (natürlich ausgenommen sind Zahlen) und du könntest dir das ansehen und dir dann auch aneignen wie das geht (Erfahrung++).

Mirko hat dann dazu gesagt, dass man die Werte die man bekommt im Browser durchlaufen lassen und so escapen lassen kann.

Twilight hat geschrieben, dass man Prozeduren verwenden kann welche sp_executesql nutzen, da dort bereits escaped wird. Könntest du dir auch ansehen und wieder dazulernen (Erfahrung++)

Könntest also hier zwei neue sachen mindestens lernen.

Und das du eine OP hattest denke ich interessiert nicht irgendjemanden und kann ggf. ja wohl auch keiner wissen oder etwa doch?
Oh man sago ._.
Warum kann ich das denn nicht so lassen sondern muss erst wieder googeln was escapen und sp_executesql ist....

Und doch ich hatte es letztens im Ts erwähnt p.p
Chyukαsame is offline  
Old 05/13/2014, 17:42   #9
 
xTwiLightx's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 1,741
Received Thanks: 1,674
Du benutzt mssql_escape_string und weißt nicht, was escapen ist?
Ist ein bisschen schwach, wenn man sich mit Webentwicklung befasst.

An sich ist sowas ja nett, dann kann man zumindest nachvollziehen, was gekauft worden ist. Jedoch finde ich die Bedingung, dass beides funktionieren muss nicht gut (also dass es mit AND verknüpft wurde) - denn egal was kommt, eine der beiden Querys wird dann trotzdem ausgeführt.

Bezieht sich auf folgende Zeile:
Code:
if(@odbc_exec($odbc_connect, $ItemSendToCharakter) AND @odbc_exec($odbc_connect, $ItemSendLog)) {
Ich persönlich würde es lieber verschachteln und jede Bedingung einzeln prüfen.
xTwiLightx is offline  
Old 05/13/2014, 18:43   #10

 
Chyukαsame's Avatar
 
elite*gold: 0
Join Date: Oct 2012
Posts: 1,102
Received Thanks: 564
Wieso gekauft?
Nein es geht um das Item Versenden im ACP.




Dies haben viele immer ausgenutzt als GM oder Developer da es nicht geloggt wird.
Da ich es dann oft mit bekam und es mich ärgerte das gepusht wurde ohne das man sehen konnte wer es war habe ich ein Log dazu geschrieben.

Für den allgemeinen Shop gibt es schon ein log ;D
LOG_GIFT
Chyukαsame is offline  
Reply


Similar Threads Similar Threads
Item versenden fehler
05/11/2014 - Flyff Private Server - 3 Replies
Hey leuts, die meisten kennen ja von der Sapphire FlyFF Homepage die Item versenden funktion im ACP. Da dieses aber nicht geloggt wird habe ich eine TBL zsm gestellt die alles loggt. Aber ich bekomme immer einen Fehler bei meiner funktion, ich finde aber den Fehler nicht, findet jemand von euch den Fehler? (Vor der Veränderung) if(isset($_POST)) { odbc_exec($odbc_connect, 'USE . ']');
how to my website item shop ?
12/25/2013 - WarRock - 1 Replies
help me pls guys
[Search] Website with Web Item Mal
11/14/2012 - Shaiya - 6 Replies
Hi, i search for a Website with Register, GuildRank, PvP Rank, WebItemal u.s.w
[Help]Item mall on the website
04/22/2012 - Shaiya Private Server - 9 Replies
well just for fun we too want to make this work. is there a php odbc script out there about this? don't need to be abel to buy it but ppl for one reason just neeed to show it. but if you have a login funksion i'm not saying no to that heheh.. if pplø don't just want to share it how about giving a tut on how to do it? or give me a mail /priv message here for other options:-)



All times are GMT +1. The time now is 04:25.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.