我正在嘗試爲我的網站和網站上的用戶配置文件創建更新頁面。下面的代碼工作正常,如果用戶更新他們所有的信息,但如果他們離開了一個字段,它會在表中插入一個空白記錄。從更新表單中更新空白或空字段來阻止sql
目前,如果用戶留下了一個空白字段,我們將替換空白字段爲$_SESSION['user']['field']
,以便重新插入當前數據。
這是我此刻的PHP
<?php
session_start();
if($_SESSION['uname']) {
$logged_in=true;
} else {
$logged_in=false;
}
include_once("../connection/conn.php");
if(isset($_POST['update'])) {
if($_POST['firstname']){ $firstname = $_POST['firstname']; }
else { $firstname = $_SESSION['uname']['firstname']; }
if($_POST['lastname']){ $lastname = $_POST['lastname']; }
else { $lastname = $_SESSION['uname']['lastname']; }
if($_POST['email']){ $email= $_POST['email']; }
else { $email = $_SESSION['uname']['email']; }
$id = $_SESSION['uname']['id'];
$query = "UPDATE users SET firstname=?, lastname=?, email=? WHERE id=? ";
$results = $condb->prepare($query);
$results->execute(array($firstname, $lastname,$email,$id));
if($results) {
echo "updated";
}
}
?>
你不能在發送表單之前用javascript檢查空格嗎? – Peon 2012-08-01 06:29:53
那究竟是不是在工作?看起來你已經提出了一個可行的解決方案。還是呢?什麼時候不工作? – 2012-08-01 06:30:59
@DainisAbols如果請求來自諸如curl之類的工具,那麼可以禁用或繞過Javascript,甚至不需要JavaScript引擎即可運行該腳本。您應該將客戶端驗證視爲可用性輔助,而不是作爲可以保證提交數據有效性的系統,因爲您必須驗證服務器端。 – GordonM 2012-08-01 07:41:48