我正在尝试为我的网站和网站上的用户配置文件创建更新页面。下面的代码工作正常,如果用户更新他们所有的信息,但如果他们离开了一个字段,它会在表中插入一个空白记录。从更新表单中更新空白或空字段来阻止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