當使用一個按鈕來提交該準備的資料,但要添加一個類似標題的按鈕,這樣的「價值」與格式如:的按鈕信息更簡單的方法提交(安全)
<form action="" method="POST">
<input type="submit" name="Man" value="Man">
</form>
在PHP代碼:
if (isset($_POST['Man'])) {
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "
UPDATE users
SET gender = ?
WHERE username = ?
";
$stmt = $mysqli->prepare($sql);
$stmt->bind_param('ss', $_POST['Man'], $_SESSION['username']);
$ok = $stmt->execute();
if ($ok == TRUE) {
echo "<font color='#00CC00'>Your gender has been updated.</font><p>";
} else {
echo "Error: " .$stmt->error;
}
}
這是代碼,這也讓不少人使用(預處理語句正常容易代碼),但有一個錯誤的......如果有人改變值人例如。 大聲笑,數據庫中的性別將被設置爲「哈哈」,因爲它的值是「哈哈」... 我在這麼多的網站和代碼中注意到了這個問題,所以解決這個問題的方法是,定義$ _ POST ...查看答案
奇妙的改變超全局變量是可怕調試的允許值。 – PeeHaa 2015-04-01 10:02:33
你爲什麼要調試呢? – 2015-04-01 10:08:20
你沒有看到調試代碼的用處?你在某個文件的某個地方設置了超全局。在同一個完全不相關的文件中的請求中,我檢查了supergobal的內容,並會認爲我剛剛發佈了'Vrouw'的WTF,並突然以某種方式超大全局包含'Man'。 – PeeHaa 2015-04-01 10:14:03