所以基本上它就像一个PHP游戏,你有车库,当你买车时他们会去那个车库,那里有一个列表,还有一个带有网址的按钮http://localhost/garage?active=58
(58作为汽车ID。)这个按钮可以切换汽车并使其激活,您可以与其他人一起使用该汽车。但是,当你向网址添加一个奇怪的符号(例如:active = 58 @)时,它会停用所有汽车,因为php代码停留在:
此处,它无法识别车辆ID并停在此处:
$setinactive = mysql_query("UPDATE user_cars SET active='No' WHERE userid='$userid' and carid='$activenow'");
当没有符号时,普通进入此行并设置选择的id car:
$setactive = mysql_query("UPDATE user_cars SET active='Yes' WHERE userid='$userid' and carid='$carid'");
}
我知道它编码不好,但有没有简单的解决方法?
答案 0 :(得分:0)
使用(int)值修复:
<?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">';
}
?>