【发布时间】:2019-09-30 12:02:16
【问题描述】:
我想使用 setInterval 函数每隔几秒钟将数据从我的网站发布到我的数据库。我没有收到任何错误消息,页面只是刷新删除任何输入的数据,但没有数据发布到数据库
<body>
<div class="container">
<div class="row">
<form onclick="startPost()" method='POST' enctype='multipart/form-data'>
<textarea name="field1" id="field1"></textarea>
<input type="submit" id="post">
</form>
</div>
function startPost(){
setInterval(function(){
$("field1").load("post.php");
}, 4000)
}
});
post.php
<?php
include "connection.php";
$post1 = $connection->real_escape_string($_POST['field1']);
$insert = "INSERT INTO DBtable (WebText) VALUES ($post1)";
$resultinsert = $connection->query($insert);
if(!$resultinsert){
echo $connection->error;
}else{
echo "<p> Text is posting </p>";
}
?>
我希望每四秒将数据发布到数据库,但页面只是在点击提交时刷新。 connection.php 连接数据库
【问题讨论】:
-
您的脚本对SQL Injection Attack 甚至if you are escaping inputs, its not safe! 都是开放的,在
MYSQLI_或PDOAPI 中使用prepared parameterized statements -
听起来您可能需要使用 AJAX 而不是仅使用 php 的解决方案。你想收集什么数据? PHP 正在刷新页面,但无法指示客户端提交数据。 Yude 需要一种客户端语言来做到这一点。
-
你混淆了很多概念。在 jQuery 上使用
.load,您正在尝试模拟一个 POST 请求(尽管它确实不是,而且您实际上并没有向服务器发送任何内容)。在提交时,您正在执行表单提交,这涉及页面重新加载,使间隔无效。最后一点,如前所述,您的代码容易受到 SQL 注入的攻击。 -
我正在尝试每四秒将输入到 textarea 的文本发送到数据库。收集的数据只是用户在网站上输入的文本。
标签: javascript php setinterval