Seite 1 von 1

[MySQL] Überprüfen, ob db Abfrage Daten überschreibt?

Verfasst: 18.03.2007 20:18
von Asmodiel
Hi!
ich bräuchte für einen MOD (in ihm eine anti-cheat-funktion) eine abfrage, ob dieser sql befehl

Code: Alles auswählen

    global $db;
    $sql = "UPDATE phpbb_posts
    SET `post_dice_item_id` = ".$weapon_id.",
    `post_dice_effect` = ".$effect."
    WHERE post_id = ".$_GET['post'].";";
	if ( !($db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, "Unable to insert Shot", "", __LINE__, __FILE__, $sql);
	}
dinge überschreibt oder nicht. Also wenn er etwas überschreiben sollte soll ein die(); kommen und wenn ers nicht tut soll das script weiterhin ausgeführt werden.
geht das?
wenn ja wie und könnt ihr mir das bitte gleich schreiben, ich bin nicht so gut in sql!

Verfasst: 18.03.2007 21:34
von S2B

Code: Alles auswählen

if ($db->sql_affectedrows())
{
  die(...);
}
:wink:

Verfasst: 18.03.2007 21:45
von Asmodiel
was meinst du mit affectedrows?

Verfasst: 18.03.2007 23:33
von Jan500
:roll:
etwas suchen schadet nicht oder?
http://www.php.net/manual/de/function.m ... d-rows.php

Jan

Verfasst: 20.03.2007 20:57
von Asmodiel
Hi!
ich hab hier eine Anticheatfunktion geproggt, die eigentlich überprüfen sollte, ob diese sql abfrage daten überschreibt, oder eben nicht.

Code: Alles auswählen

     
//Das ist die Abfrage, die NICHT überschreiben sollte.
$sql = "UPDATE phpbb_posts
    SET `post_dice_item_id` = ".$weapon_id.",
    `post_dice_effect` = ".$effect."
    WHERE post_id = ".$post_id.";";
CODE:

Code: Alles auswählen

//Und das ist die überprüfung
    global $db;
    $sql = 'SELECT `post_dice_effect` , `post_dice_item_id` FROM `phpbb_posts`';
    $result = mysql_query($sql) OR die(mysql_error());
    while($row = mysql_fetch_assoc($result))
    {
        $sql_effect = $row['post_dice_effect'];
        $sql_item_id = $row['post_item_id'];
        if(!empty($sql_effect) OR !empty($sql_item_id))
        {
         echo '<blink><font color=#ff0000><b>Verdammter CHEATER!!!!<br> Dein Schuss wird nicht gezählt!!!<br></blink>';
         echo '</font></b><meta http-equiv=refresh content="5; URL=javascript:window.close()">';
         echo '<img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_motz.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_motz.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_motz.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_motz.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_motz.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_motz.gif>';
         echo '<br><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_fluch.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_fluch.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_fluch.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_fluch.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_fluch.gif><img src=http://asmodiel.ebytehost.com/phpBB/images/smiles/icon_fluch.gif>';
         die();
        }
    }
nur das der mir immer sagt, dass ich cheate, auch wenns nicht stimmt...
kann mir jemand sagen, was ich besser/anders machen kann?

Verfasst: 20.03.2007 21:31
von S2B
Es fehlt die WHERE-Anweisung. :wink:

Verfasst: 21.03.2007 17:16
von Asmodiel
hmja problem besteht weiterhin.
kannst du mir bitte mal den fehler finden?
DICE.PHP

--> $_get['post, topic und forum'] werden von der posting.php übergeben, je nachdem, wie der postingtyp halt ist.
Hier nochmal der auszug ausm page_header.php:

AUSZUG AUS DER VIEWTOPIC.PHP

Auszug aus der page_header.php:

Code: Alles auswählen

    'DICE_LINK' => append_sid('dice.php'.'?post='.$_GET['p'].'&topic='.$_GET['t'].'&forum='.$_GET['f']),
ich will in der dice.php verhindern, dass gecheatet wird, indem man einfach neu würfelt und so an das gewünschte ergebnis kommt.

Verfasst: 21.03.2007 17:52
von S2B
Asmodiel hat geschrieben:hmja problem besteht weiterhin.
Welches?

Verfasst: 21.03.2007 18:40
von Asmodiel
das:
nur das der mir immer sagt, dass ich cheate, auch wenns nicht stimmt...
kann mir jemand sagen, was ich besser/anders machen kann?

Verfasst: 21.03.2007 20:09
von S2B
Die Variable $post_id ist in der Funktion insert() gar nicht definiert. :wink: