我有一个带有按钮和文本框的简单页面,我在其中输入一个sql查询,它将数据发送到一个php文件,该文件在页面上返回查询结果。
以下是我的代码:
<div class="row larger-font">
<div class="container">
<p><strong> Some text goes here </strong></p>
<div class="row">
<div class="col-md-6">
<div id="simpleButton">
<button type="button" class="btn btn-primary">Execute!</button>
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<input type="text" class="form-control" id="sampleInput" name="sql">
</div>
</div>
<div id="result"> </div>
</div>
</div>
</div>
</div>
<script src="//code.jquery.com/jquery-1.12.0.min.js"></script>
<script>
$('#simpleButton').click(function(e) {
var val1 = $('#sampleInput').val();
$.ajax({
type: 'POST',
url: 'mahsql',
data: { sampleInput: val1 },
success: function(response) {
$('#result').html(response);
}
});
});
</script>
奇怪的是,我在页面上得到了我的结果,没问题;但是,我得到这个弹出错误,说只允许一个babel-polyfill实例。我不明白这。我没有使用任何巴贝尔。有没有办法从这里压制这个错误?我很困惑,因为我可以看到结果,但我仍然得到这个恼人的弹出错误。 感谢任何帮助。谢谢。
更新:这里是mahsql.php:
<?php
$conn = oci_connect('username', 'password', 'hostname/db_svc');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$query = $_POST['sampleInput'];
$stid = oci_parse($conn, $query);
oci_execute($stid);
echo "<table border='1'>\n";
while ($row = oci_fetch_array($stid, OCI_ASSOC+OCI_RETURN_NULLS)) {
echo "<tr>\n";
foreach ($row as $item) {
echo " <td>" . ($item !== null ? htmlentities($item, ENT_QUOTES) : " ") . "</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
?>
在评论之后,我推动了F12在Chrome上查看了Chrome标签页,我在我的.php文件下看到了这个带有html的javascript代码,名为newtestingm.php。
这是引发错误的额外代码:
<div id="preloader"></div><script type="text/javascript">
var isLoggedIn=false;
var preload=[];
var isAdmin=false;
</script><script type="text/javascript">
</script><script>
(function(i,s,o,g,r,a,m) {i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o) [0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-53997625-1', 'auto');
ga('send', 'pageview');
</script>
<script src="http://servername:1338/webpack-dev-server.js"></script><script crossorigin="anonymous" src="http://servername:1338/all.8a98aeb6b75576ce1df6.js"> </script><script crossorigin="anonymous" src="http://servername:1338/newtestingm.8a98aeb6b75576ce1df6.js"></script></body> </html>
这是什么???它不属于我的php文件。
答案 0 :(得分:1)
mahsql
处的资源返回带有嵌入式脚本标记的html。您无条件地将此html注入您的页面并执行它。这是非常不明智的。
由于您未包含所有html,因此很难确定错误的确切原因。基本上,一次只打算执行一次的脚本正在执行多次。
根据更新和评论,您的服务器似乎附加了包含Google Analytics的标记,请求Webpack开发服务器的脚本,以及设置一些全局变量。 Webpack很可能是请求Babel的。
我的建议是退一步检查你正在使用的所有工具,因为这不应该在你不知情的情况下发生。也许您正在使用服务器和客户端框架,入门工具包和生成您不知道的代码的模板的组合。如果没有对您的完整堆栈的深入了解,这很难预测和推理。
我不熟悉您正在使用的框架,我很少编写PHP,但一般的问题是您不了解正在执行的代码的广度。显然有一个相当复杂的堆栈正在做出假设。例如,它似乎假设您有一个Webpack包,其名称对应于从同一位置提供的html页面。如果不是这样,您将收到错误。但这只是大量假设的一个例子。