2016-08-24 21 views
-1

これは基本的にガレージを持っている車のPHPゲームのようなもので、車を購入するとその車庫に移動し、そこにリストがあります。 ur(58は車のIDです)このボタンは車を切り替えてアクティブにします。その車を他の人と一緒に使ってレースすることができます。ただし、URLに奇妙なシンボルを追加すると(例:活動= [email protected])、PHPコードがスタックしているため、すべての車が無効になります:URLに奇妙なシンボルを追加するとPHPの行が停止する

ここでは車のIDは認識されず、ここで停止します:

$setinactive = mysql_query("UPDATE user_cars SET active='No' WHERE userid='$userid' and carid='$activenow'"); 

アクティブIDの車選びだしシンボル、それ通常この行に進み、セットなし:

$setactive = mysql_query("UPDATE user_cars SET active='Yes' WHERE userid='$userid' and carid='$carid'"); 
} 

を、私はその悪いコーディングを知っているが、これに任意の簡単な修正はありますか? (int型)値で固定

+3

あなたはあなたのコンテキストのもう少し示しすることはできますか?どのように変数を定義していますか?数値の入力をフィルタリングし、パラメータ付き/準備済みの文を使用することをお勧めします。 – showdev

+0

だから、悪いコーディングを保存しながらそれを動作させる方法を求めているのですか? –

+0

不正なコーディングを破棄すると、すべてが崩壊します。それは私が思うに残すべきであり、私はunironicallyを話している:)私はコードの最後のビットを追加しようとしているが、私はできないようだ。 – Kentaurs

答えて

0

<?php 
    $username = $_SESSION['username']; 
    if (isset($_GET['active'])) { 
     $carid = security((int)$_GET['active']); 
     $userid = get_userid($username); 
     if (user_has_car($carid) == "Yes" AND get_user_activecar($urow['id']) != $row['id']) { 
      $activenow = get_user_activecar($urow['id']); 
      $setinactive = mysql_query("UPDATE user_cars SET active='No' WHERE userid='$userid' and carid='$activenow'"); 
      $setactive = mysql_query("UPDATE user_cars SET active='Yes' WHERE userid='$userid' and carid='$carid'"); 
     } 
     echo '<meta http-equiv="refresh" content="0;url=garage">'; 
    } 
    ?> 
関連する問題