我的文件 Page.php 和 Insert.php :
<html>
<body>
<span contenteditable style='border:1px solid#000;display:block;width:99'></span>
<select><option style=display:none>Select</option><option>Yes</option><option>No</option></select>
<form action=Insert.php>
<input type=submit>
</form>
</body>
</html>
<?php
$c=mysqli_connect('localhost','root','','database name');
$DATETIME="2017-01-16 14:54:06";
$span="Text inserted.";
$select="No";
mysqli_query($c,"insert into`table name`(`column 1 name`,`column 2 name`,`column 3 name`)values('$DATETIME','$span','$select')");
?>
如何使变量$DATETIME
,$span
和$select
等于:当前日期(例如:2017-01-16 14:54:06),{ {1}}的内容(例如:插入的文字。)和元素<span>
中的选定选项(例如:是)?
我正在使用XAMPP和PhPMyAdmin。
答案 0 :(得分:0)
如上所述,你的选择是在你的表单元素之外,所以要开始它应该是固定的。通常你也会提供一个表单方法(默认为get,但是如果你指定的话IMO会更清楚)。
<html>
<body>
<span contenteditable style='border:1px solid#000;display:block;width:99'></span>
<form action=Insert.php method="post">
<select>
<option style=display:none>Select</option>
<option>Yes</option><option>No</option>
</select>
<input type=submit>
</form>
</body>
</html>
然后你需要从$ _POST数组中获取数据并对其进行过滤。在您的代码示例中,您使用虚拟变量而不是表单中的任何内容,因此对于下一部分,我只是复制它。
<?php
// DB connect
$c=mysqli_connect('localhost','root','','database name');
// Dummy vars
$DATETIME="2017-01-16 14:54:06";
$span="Text inserted.";
$select="No";
// Query String examples (extra format for readability)
$query1 = "insert into`table name`(
`column 1 name`,
`column 2 name`,
`column 3 name`
) values (
'". $DATETIME ."',
'". $span ."',
'". $select ."'
)";
$query2 = "insert into`table name`(
`column 1 name`,
`column 2 name`,
`column 3 name`
) values (
'{$DATETIME}',
'{$span}',
'{$select}'
)";
// Run Query
mysqli_query($c, $query);
?>
两个查询字符串示例使用1)连接,2)插值。使用任何一个似乎更容易为您阅读。
答案 1 :(得分:0)
这是一个非常常见的问题,您可以查看this链接以获取基本示例。
无论如何,这是你的解决方案:
首先,您必须重新构建HTML。您必须将表单的所有相关字段放在表单标记中,如下所示:
<html>
<body>
<form action="insert.php">
// Here all your input, select, textarea etc. fields
<input type="submit" />
</form>
</body>
</html>
接下来,您无法在表单中提交<span>
的值。请改用<input>
- 元素:
<input type="text" />
或查看JavaScript( - &gt; XHR),您可以解决此问题。
然后,您必须在要提交的所有字段中设置name
- 属性:
<input type="text" name="myTextField" />
<select name="mySelect">
...
</select>
实施此代码后,您可以使用insert.php
中的值,如下所示:
$text = $_POST['myTextField'];
$select = $_POST['mySelect'];
提示:在PHP文件中使用echo "<pre>".var_dump($_POST)."</pre>";
来检查表单中的值。
使用date()
:
$datetime = date('Y-m-d h:i:s');
注意:强> 如果您继续使用此项目并考虑使用此项目,请阅读第一篇this文章,其中介绍了您网站安全问题的基础知识以及this有关危险SQL注入的文章。