HTML选择TAG到mysql

时间:2016-02-11 17:14:57

标签: php html mysql tags html-select

所以,我想上传一个文件并选择(例如)" Value 1"来自select标签。然后当我单击发布按钮时,我想从脚本中检查我是否选择了值1,如果我选择了,那么我想将文件(" file_name")放在列#34; columndb&#中34;,如果我选择了值2,我想将它放在其他列中,依此类推。

<div><input type="file" name="file_name">    
<div><input type="file" name="inputname">
       <select id="select_id" name="select_name">
       <option value="null">None</option>
       <option value="value1" name="value1name">Value 1</option>
       <option value="value2" name="value2name">Value 2</option>
       </select></div>
<div>
<div><input type="submit" name="submit" value="Publish"></div>
</div>    
<?php

if(isset($_POST['submit'])){

$filename = $_FILES['file_name']['name'];
$filename_tmp = $_FILES['file_name']['tmp_name'];
$select_tag = $_POST['select_name'];

move_uploaded_file($filename_tmp, "somewhere/$filename");

if($select_tag == 'value1name'){

        $insert_db = "insert into mydb ('columndb') values ('$filename')";
        $run_db = mysqli_query($db, $insert_db, MYSQLI_STORE_RESULT);
    }
}
?>

3 个答案:

答案 0 :(得分:0)

选项不应包含名称,也不应包含值。 所以你要验证如下:

if($select_tag == "value1")
{
   //...
   //You're also using apostrophes in the query, on the column name, which is wrong.
   //Change to this:
   $insert_db = "insert into mydb (`columndb`) values ('$filename')";
}

答案 1 :(得分:0)

如果$ select_tag正确保持&#39;值&#39;您选择的作为列名,那么以下内容应该是合适的:

$insert_db = "insert into mydb (`$select_tag`) values ('$filename')";

但请注意,使用表单中的值作为列名称在安全方面非常糟糕。有人恶意可以手动提交一个值,该值会导致数据被放入另一个字段,或者执行sql注入(因为在执行SQL查询之前你没有转义$ select_tag或$ filename。

如果&#39;如果&#39;你会更好。语句或“开关”,根据预定义的值集选择列。

示例:

$target_column = ""; // input column
switch($select_tag) {
    case "column1":
        $target_column = "columndb";
        break;

    case "column2":
        $target_column = "anothercolumn";
        break;

    default:
        $target_column = "column1";
        break;
}

$filename = mysql_escape_string($filename); // mysql_escape_string is deprecated in later php versions... Use an alternative like mysqli_real_escape_string()
$insert_db = "insert into mydb (`$target_column`) values ('$filename')";
$run_db = mysqli_query($db, $insert_db, MYSQLI_STORE_RESULT);

答案 2 :(得分:-1)

if ($_POST['select_tag'] == 'Something') {

我认为这就是你想要的