我正在尝试创建一个 javascript 来拆分标签(用户给出的标签,用逗号 (,)分隔它们)并将它们以不同的行传递到我的数据库中,但具有相同的 id。我有这个代码:
<form name="formatform" method="post" onsubmit="return validate_format_form()" action="formatsubmit.php">
<p>
Συντομος Τιτλος:<input type="text" name="titlos" value="">
Συντομη περιγραφη:<input type="text" name="perigrafi" value="">
</p>
<p>
Τοποθεσια:<input type="text" id="loc" name="topothesia" value="">
Tags:<input type="text" name="tags" value="">
**Οι ετικέτες πρέπει να χωρίζονται με κόμμα
</p>
.
.
.
</form>
在格式提交中.php这是将它们传递到数据库中这些代码的人:
$query= " INSERT into photos(`title`,`description`,`location`,`privilages`,`ph_tags`) VALUES ('".$_POST['titlos']."','".$_POST['perigrafi']."','".$_POST['topothesia']."','".$_POST['radio_check']."','".$_POST['tags']."') ";
$result= mysql_query($query,$con);
如果用户给出 3 个标签(用逗号分隔),我想拆分它们并将它们以不同的行传递给数据库。我该怎么做?
使用逗号作为分隔符将标签输入拆分为数组,然后迭代标签并为每个标签创建一个插入语句怎么样? 例如
$tag_array = explode(",", $_POST['tags']);
foreach ($tag_array as $tag) {
$query= " INSERT into photos(`title`,`description`,`location`,`privilages`,`ph_tags`) VALUES ('".$_POST['titlos']."','".$_POST['perigrafi']."','".$_POST['topothesia']."','".$_POST['radio_check']."','".$tag."') ";
$result= mysql_query($query,$con);
}
如果你想用PHP来做,用explode(",", $input);
。要在 JavaScript 中执行此操作,请执行input=input.split(",")
。然后,您将拥有一个标签数组,您可以按编号引用这些标签(例如 $input[0]...$input[x]
(PHP)或input[0]...input[x]
(JavaScript))。
您还应该处理用户输入,因为您将获得在使爆炸,,
输入双标记的用户具有空值,并且使用这样的POST
您将拥有SQL注入:
<?php
function get_tags($tags){
$ret=array();
$tags=explode(',',strtolower($tags));
foreach($tags as $tag){
if($tag==''){}else{
$ret[]=ucfirst(trim($tag));
}
}
return $ret;
}
function insert_photo_tags($tags){
array_walk($_POST,'mysql_real_escape_string');
foreach ($tags as $tag) {
$query = " INSERT INTO photos(`title`,`description`,`location`,`privilages`,`ph_tags`)
VALUES ('".$_POST['titlos']."','".$_POST['perigrafi']."','".$_POST['topothesia']."','".$_POST['radio_check']."','".$tag."') ";
mysql_query($query);
}
}
//Test Input (?tags=php,mySQL,http,bLa,,,,,,123)
$tags = get_tags(mysql_real_escape_string($_POST['tags']));
//Do your insert with the array
insert_photo_tags($tags);
print_r($tags);
/*
Array
(
[0] => Php
[1] => Mysql
[2] => Http
[3] => Bla
[4] => 123
)
*/
?>