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

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
Asmodiel
Mitglied
Beiträge: 568
Registriert: 31.03.2006 14:16
Wohnort: Kassel
Kontaktdaten:

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

Beitrag 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!
Schönen gruß, Asmodiel
Linus Thorvals hat geschrieben:Intelligence is the ability to avoid doing work, yet getting the work done.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Code: Alles auswählen

if ($db->sql_affectedrows())
{
  die(...);
}
:wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Asmodiel
Mitglied
Beiträge: 568
Registriert: 31.03.2006 14:16
Wohnort: Kassel
Kontaktdaten:

Beitrag von Asmodiel »

was meinst du mit affectedrows?
Schönen gruß, Asmodiel
Linus Thorvals hat geschrieben:Intelligence is the ability to avoid doing work, yet getting the work done.
Benutzeravatar
Jan500
Ehemaliges Teammitglied
Beiträge: 4199
Registriert: 01.03.2003 21:32
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Jan500 »

:roll:
etwas suchen schadet nicht oder?
http://www.php.net/manual/de/function.m ... d-rows.php

Jan
"Life begins at 40 Knots...!" :D
kein (kostenlosen) Support per pn, mail, icq usw. | Kostenlosen Support gibt es hier im Forum!
Benutzeravatar
Asmodiel
Mitglied
Beiträge: 568
Registriert: 31.03.2006 14:16
Wohnort: Kassel
Kontaktdaten:

Beitrag 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?
Schönen gruß, Asmodiel
Linus Thorvals hat geschrieben:Intelligence is the ability to avoid doing work, yet getting the work done.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Es fehlt die WHERE-Anweisung. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Asmodiel
Mitglied
Beiträge: 568
Registriert: 31.03.2006 14:16
Wohnort: Kassel
Kontaktdaten:

Beitrag 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.
Schönen gruß, Asmodiel
Linus Thorvals hat geschrieben:Intelligence is the ability to avoid doing work, yet getting the work done.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Asmodiel hat geschrieben:hmja problem besteht weiterhin.
Welches?
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Benutzeravatar
Asmodiel
Mitglied
Beiträge: 568
Registriert: 31.03.2006 14:16
Wohnort: Kassel
Kontaktdaten:

Beitrag 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?
Schönen gruß, Asmodiel
Linus Thorvals hat geschrieben:Intelligence is the ability to avoid doing work, yet getting the work done.
Benutzeravatar
S2B
Ehemaliges Teammitglied
Beiträge: 3258
Registriert: 10.08.2004 22:48
Wohnort: Aachen
Kontaktdaten:

Beitrag von S2B »

Die Variable $post_id ist in der Funktion insert() gar nicht definiert. :wink:
Gruß, S2B
Keinen Support per ICQ/PM!
Hier kann man meine PHP-Skripte und meine MODs für phpBB runterladen.
Antworten

Zurück zu „Coding & Technik“