Php 验证用于创建记录的表单
在尝试上传任何内容之前,我有代码验证我的表单 我想我已经错误地嵌套了if语句,这就是它不能正常工作的原因 我已经将我的PHP和HTML表单代码放在一把小提琴中,供任何愿意查看的人使用: 以下是PHP的一个片段:Php 验证用于创建记录的表单,php,Php,在尝试上传任何内容之前,我有代码验证我的表单 我想我已经错误地嵌套了if语句,这就是它不能正常工作的原因 我已经将我的PHP和HTML表单代码放在一把小提琴中,供任何愿意查看的人使用: 以下是PHP的一个片段: if ($_SERVER["REQUEST_METHOD"] == "POST") { //if the year is left empty then show error, if not then test_input if (empty($_POST["year"])) { $
if ($_SERVER["REQUEST_METHOD"] == "POST") {
//if the year is left empty then show error, if not then test_input
if (empty($_POST["year"])) {
$yearErr = "*enter a year";
} else {
$year = test_input($_POST["year"]);
}
//if the description is left empty then show error
if (empty($_POST["description"])) {
$descriptionErr = "*enter a description";
} else {
$description = test_input($_POST["description"]);
}
// If the date has not been selected in the drop down, and the select is left at "Please Select" value = 0
if(isset($_POST['dateID']) && $_POST['dateID'] == '0'){
$decadeErr = "*select a decade";
}
else {
$dateID = test_input($_POST["dateID"]);
}
仅供参考-在PHP示例中使用JSFIDLE没有帮助。试一试 我认为问题在于过早调用代码第10行的
$\u文件变量:
$target\u file=$target\u dir。basename($_文件[“文件上传”][“名称])代码>
如果您第一次运行该脚本,则会失败。我将此更改为:
if(!empty($_POST)){
if(!empty($_FILES["file_upload"])){
$target_file = $target_dir . basename($_FILES["file_upload"]["name"]);
$uploadOk = 1;
$imageFileType = pathinfo($target_file,PATHINFO_EXTENSION);
$check = getimagesize($_FILES["uploaded"]["tmp_name"]);
}
$year = $description = $dateID = "";
$yearErr = $descriptionErr = $decadeErr = "";
// continue the rest of your $_POST handling...
}
这样,如果没有发布任何内容,就像第一次运行时一样,脚本不会尝试处理尚未发布的项目。是否有任何显示错误或其他错误?还有,为什么GET会检索到您的“选择框”,而不是其他已发布的框呢?这是一个错误,我想我已经删除了它。我会把它改回去。你也试过用if($\u服务器[“请求方法”]=“发布”){
替换if(!empty($\u发布)){
?因为我认为request_方法也有机会返回选项
,所以什么不起作用?如果我在任何字段中输入任何内容并单击upload,它将返回错误。但是错误出现在图像部分,显示“文件已存在”.如果将信息放入任何其他框中,它将进入空白页,并且不会上载任何内容。。