2016-10-11 3 views
0

Okay Also, hier ist mein Code.PHP & Mysql Statement funktioniert nicht?

$user_is_banned = "0"; 
$bancheck = mysql_query("SELECT * FROM ban WHERE `device` = '".$device_id."' OR WHERE `Ip` = '".$ip."'"); 
if ($bancheck && mysql_num_rows($bancheck) > 0) 
    { 
$user_is_banned = "1"; 
    } 

Aber user_is_banned verändert sich nicht einmal auf 1 über, wenn eines dieser Kriterien erfüllt ist. Ich bin ein bisschen ratlos.

+7

Erste und wichtigste ** stop mit mysql_ * '**. Es ist veraltet und anfällig für Angriffe. Stattdessen können Sie 'PDO' oder' MySQLi' verwenden. –

+2

** ACHTUNG **: Wenn Sie nur PHP lernen, benutzen Sie bitte nicht die [mysql_query'] (http://php.net/manual/en/function.mysql-query.php) Schnittstelle. Es ist so schrecklich und gefährlich, dass es in PHP 7 entfernt wurde. Ein Ersatz wie [PDO ist nicht schwer zu erlernen] (http://net.tutsplus.com/tutorials/php/why-you-should-beusing-phps) -pdo-for-database-access /) und ein Leitfaden wie [PHP The Right Way] (http://www.phptherightway.com/) erläutert Best Practices. Ihre Benutzerparameter sind ** nicht ** [richtig maskiert] (http://bobby-tables.com/php) und es gibt [SQL injection bugs] (http://bobby-tables.com/), die ausgenutzt werden können . – tadman

Antwort

3

Sie haben 2 mal where in Ihrer Aussage, was nicht korrekt ist. Die richtige Frage ist:

mysql_query("SELECT * FROM ban WHERE `device` = '".$device_id."' OR `Ip` = '".$ip."'"); 

Sie nicht verwenden, um die deprectedmysql_* API. Sie sollten mysqli_ oder PDO mit vorbereiteten Anweisungen verwenden, um SQL-Injection zu verhindern.