簡體   English   中英

如果為空,則跳過輸入字段的條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM