PHP表单只将图像发布到MYSQL数据库,没有其他值

时间:2015-12-07 21:09:54

标签: php mysql image forms

我正在构建一个基本的CMS。今天我想添加上传缩略图的选项。我搜索了互联网并找到了我可以使用的教程。现在,发布后,图像正确上传并按原样显示。一切都很完美。

现在的问题是我的其他表单值不再发布了..以前它工作正常,但在添加上传缩略图的选项后,除了图像文件名之外,没有任何值发布到数据库。

任何人都知道我的代码出了什么问题?

<form method="POST" enctype="multipart/form-data" name="form"> 

      <select name="category">
        <option value="option 1">option 1</option>
      </select>

      <input type="text"name="topic">

       <textarea name="article"></textarea>

      <select name="author">
         <option>option 1</option>
      </select>

      <input type="file" name="thumbnail">

     <button type="submit" name="post">Post article</button>

  </form>

<?php

function GetImageExtension($imagetype)
     {
       if(empty($imagetype)) return false;
       switch($imagetype)
       {
           case 'image/bmp': return '.bmp';
           case 'image/gif': return '.gif';
           case 'image/jpeg': return '.jpg';
           case 'image/png': return '.png';
           default: return false;
       }
     };

    $file_name=$_FILES["thumbnail"]["name"];
    $temp_name=$_FILES["thumbnail"]["tmp_name"];
    $imgtype=$_FILES["thumbnail"]["type"];
    $ext= GetImageExtension($imgtype);
    $imagename=date("d-m-Y")."-".time().$ext;
    $target_path = "../magazine/thumbnails/".$imagename;

if(isset($_POST['post']) && move_uploaded_file($temp_name, $target_path)){

    $username=mysqli_real_escape_string(db_conx,$_POST['author']);
    $topic=mysqli_real_escape_string(db_conx,$_POST['topic']);
    $article=mysqli_real_escape_string(db_conx,$_POST['article']);
    $category=mysqli_real_escape_string(db_conx,$_POST['category']);

   $result=mysqli_query($db_conx,"INSERT INTO articles (`username`,`topic`,`article`,`category`,`thumbnail`) VALUES('$username','$topic','$article','$category','$imagename')");

}

?>

1 个答案:

答案 0 :(得分:1)

错字。 改变这个:

   <textarea name="article"</textarea>

到此:

   <textarea name="article"></textarea>

我看到的另一个问题是变量db_conx。您错过了美元符号$,这是错误的语法,除非您指的是常量。将其更改为$db_conx