[英]Condition to Skip Input field if Empty
我試圖設置一個條件,如果'filefield'為空,它將跳過DB中的插入,因為這只是一個選項,而只是繼續在DB中插入'name'和'description',這將永遠不會是空的。
<?php include("connection.php"); if (isset($_POST['submit'])) { $name = mysqli_real_escape_string($conn, $_POST['name']); $description = mysqli_real_escape_string($conn, $_POST['description']); if ($name == '' || $description == '' ) { $error = 'ERROR: Please fill required fields!'; renderForm($name, $description); } else { if(!empty($_FILES['filefield'])){ if(isset($_FILES['filefield'])){ $file=$_FILES['filefield']; $upload_directory='uploads/'; $ext_str = "gif,jpg,jpeg,mp3,tiff,bmp,doc,docx,ppt,pptx,txt,pdf"; $allowed_extensions=explode(',',$ext_str); $ext = substr($file['name'], strrpos($file['name'], '.') + 1); if (!in_array($ext, $allowed_extensions) ) { echo '<script language="javascript">'; echo 'alert("file type not allowed for upload")'; echo '</script>'; exit(); } $path=md5(microtime()).'.'.$ext; if(move_uploaded_file($file['tmp_name'],$upload_directory.$path)){ $filefield = $_FILES["filefield"]["name"]; $path = $path."/".$filefield; } } } } if (!empty($_FILES['filefield']) || !isset($_FILES['filefield'])) { $query = "INSERT INTO `item`(`name`, `description`, `path`) VALUES ('$name','$description','$path')"; } else { $query = "INSERT INTO `item`(`name`, `description`) VALUES ('$name','$description')"; } $result = mysqli_query($conn, $query); if($result) { echo '<script language="javascript">'; echo 'alert("Success!")'; echo '</script>'; exit(); } } ?>
我不確定如何進行此處理。 非常感謝您的幫助。
首先,關閉所有邏輯,包括if(move_uploaded_file)
,以使$query
在任何條件之外都具有競爭性。 然后,只需檢查文件filefield
是否已填寫。 如果不為空,則$query
插入所有三個字段。 如果是這樣,您的$query
只插入$name
和$description
。
可以在以下(大量縮減的)代碼中看到:
/* Existing logic */
else
{
if (!empty($_FILES['filefield'])) {
if (isset($_FILES['filefield'])) {
if (move_uploaded_file($file['tmp_name'], $upload_directory.$path)) {
...
$path = $path."/".$filefield;
}
}
}
}
/* Modified logic */
if (!empty($_FILES['filefield']) || !isset($_FILES['filefield'])) {
$query = "INSERT INTO `item`(`name`, `description`, `path`) VALUES ('$name','$description','$path')";
}
else {
$query = "INSERT INTO `item`(`name`, `description`) VALUES ('$name','$description')";
}
$result = mysqli_query($conn, $query);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.