Ich versuche hier mal, das Problem bzw. die Problemlösung allgemeingültig zu beschreiben:
1. bei den Slots: der Wert, der mit $_POST['wert'] (für Wert steht oft einsatz) ist zu prüfen.
Wenn der Befehlt $variable = (int)$_POST['wert']; vorhanden ist, seid ihr zunächst insofern auf der sicheren Seite, dass nicht mit negativen Werten gespielt werden kann --> das wäre wirklich fatal, weil sich die user bereichern könnten.

2. und das ist das was Laemmi am meißten findet, ist die Tatsache, dass man mit Werten spielen kann, die nicht eingetragen sind.
Dieses Problem behebt man, indem man die zulässigen Einsätze in ein array einliest, was sie schon oft sind und dann eine Abfrage einbaut:
Beispiel aus safari:
PHP-Code:
if ( in_array($_POST["einsatz"],$einsatz) ) {
$preis $_POST["einsatz"];  
} else {echo 
"&result=ist das erlaubt?&";} 
3. Zechen
bei den Zechen ist es so, dass weder der Wert gesichert wird durch die (int), noch gefragt wird, ob der Einsatz gültig ist.
Am Beispiel der Einzelzeche hier die Lösung:
nach <? userstatus();
einfügen:
PHP-Code:
$zechen mysql_query("SELECT * FROM einzelzeche ORDER BY zeche");
while(
$zwert mysql_fetch_array($zechen)) {
$pattern[] = $zwert['zeche'];

nach if ($spielen) {
einfügen:
PHP-Code:
if ( in_array($spielen,$pattern) ) { 
vor print <<<EOT seht ihr
PHP-Code:
}

dazwischen einfügen:
PHP-Code:
} else {$zechemeldung "<b><font color=\"red\"><center>Keine faulen Tricks!</b></font></center><br />";} 
Das war's. Das könnt ihr leicht auch in jeder anderen Zeche einfügen, ihr müßt nur den Tabellennamen austauschen.