Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 表单操作重定向到404页面时动态注入PHP_Javascript_Php_Html_Mysql - Fatal编程技术网

Javascript 表单操作重定向到404页面时动态注入PHP

Javascript 表单操作重定向到404页面时动态注入PHP,javascript,php,html,mysql,Javascript,Php,Html,Mysql,因此,我所做的是使用JS动态创建表单并在文档中输入元素,如下所示: document.ondblclick = function(e) { if (e.clientX < 50 && e.clientY > window.innerHeight - 50 && !document.querySelector('form')) { const b = document.body const f = document.createE

因此,我所做的是使用JS动态创建表单并在文档中输入元素,如下所示:

document.ondblclick = function(e) {
  if (e.clientX < 50 && e.clientY > window.innerHeight - 50
  && !document.querySelector('form')) {
    const b = document.body
    const f = document.createElement('form')
    const i = document.createElement('input')
    b.style.width = '100vw'
    b.style.height = '100vh'
    b.style.margin = '0'
    b.style.display = 'flex'
    b.style.justifyContent = 'center'
    b.style.alignItems = 'center'
    i.setAttribute('type', 'password')
    i.setAttribute('name', 'password')
    i.setAttribute('id', 'form')
    f.setAttribute('method', 'post')
    f.setAttribute('action', '<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>')
    f.appendChild(i)
    b.appendChild(f)
    i.focus()
    i.onblur = function() {
      i.focus()
    }
  }
}

为什么要重定向到404页面?我做错了什么?表单的action属性是否被视为字符串,因为它是用JS动态设置的?

问题在于index.JS文件。注意到文件结束了吗
.js
是一个javascript文件,服务器会将其视为一个静态文件,只提供内容,不处理文件。最简单的解决方案是将其重命名为
index.php
,然后像普通方法一样包含它:

<script type="text/javascript" src="js/index.php"></script>

问题出在index.js文件上。注意到文件结束了吗
.js
是一个javascript文件,服务器会将其视为一个静态文件,只提供内容,不处理文件。最简单的解决方案是将其重命名为
index.php
,然后像普通方法一样包含它:

<script type="text/javascript" src="js/index.php"></script>

您需要将.js文件命名为.php,并将文件的标题发送为javascript,然后使用$\u会话将操作文件从索引发送到js

<?php
header('content-type:application/javascript; charset=utf-8');
?>
...
f.setAttribute('action', '<?php echo htmlspecialchars($_SESSION["formFile"]); ?>')
...

...
f、 setAttribute('操作','')
...
然后在索引文件中添加和更改

<?php $_SESSION["formFile"] = $_SERVER["PHP_SELF"]; ?>
<script type="text/javascript" src="js/index.php"></script>

您需要将.js文件命名为.php,并将文件的标题发送为javascript,然后使用$\u会话将操作文件从索引发送到js

<?php
header('content-type:application/javascript; charset=utf-8');
?>
...
f.setAttribute('action', '<?php echo htmlspecialchars($_SESSION["formFile"]); ?>')
...

...
f、 setAttribute('操作','')
...
然后在索引文件中添加和更改

<?php $_SESSION["formFile"] = $_SERVER["PHP_SELF"]; ?>
<script type="text/javascript" src="js/index.php"></script>



我想我可能知道发生了什么。错误日志相当简单。让我快速运行一些测试。如果我弄明白了,我会删除这个问题。没关系。我目瞪口呆。我试图在action属性中设置一个url,但没有成功。我只是想知道为什么在
javascript
中使用
php
来实现一些可以在
javascript
中实现的功能?您可以用
window.location.pathname
替换
'
,如果
javascript
是一个外部文件,那么
php
将不会运行,因为它不是服务器端/格式。@NewToJS,因为我不希望最终目的地在客户端显示出来side@NewToJS知道这是怎么回事吗?它似乎没有将PHP识别为PHP:/我想我可能理解发生了什么。错误日志相当简单。让我快速运行一些测试。如果我弄明白了,我会删除这个问题。没关系。我目瞪口呆。我试图在action属性中设置一个url,但没有成功。我只是想知道为什么在
javascript
中使用
php
来实现一些可以在
javascript
中实现的功能?您可以用
window.location.pathname
替换
'
,如果
javascript
是一个外部文件,那么
php
将不会运行,因为它不是服务器端/格式。@NewToJS,因为我不希望最终目的地在客户端显示出来side@NewToJS知道这是怎么回事吗?它似乎没有将PHP识别为PHP:/hm。。。它正在被注入PHP文件(index.PHP),但是?我的意思是,如果情况变得更糟,我可以这样做,包括
…index.js的内容…
index.PHP
中,你说“它正在被注入PHP文件”。这不是…尽管。它正在呈现给浏览器,当浏览器看到脚本标记时,它会向服务器发出另一个请求,以请求“js/index.js”文件。当您的服务器找到该文件时,它只是将其用作javascript。“如果情况变得更糟”是什么意思。重命名一个文件真的是世界末日吗?哦,你的意思是,
$\u SERVER[“PHP\u SELF”]
是指
index.js
的结构?我的意思是“如果情况变得更糟”,就像我更喜欢分离代码一样。JS文件夹中的所有JS,CSS文件夹中的所有CSS,等等@Anthony你可以发布你的文件结构,以了解你的问题吗。。。它正在被注入PHP文件(index.PHP),但是?我的意思是,如果情况变得更糟,我可以这样做,包括
…index.js的内容…
index.PHP
中,你说“它正在被注入PHP文件”。这不是…尽管。它正在呈现给浏览器,当浏览器看到脚本标记时,它会向服务器发出另一个请求,以请求“js/index.js”文件。当您的服务器找到该文件时,它只是将其用作javascript。“如果情况变得更糟”是什么意思。重命名一个文件真的是世界末日吗?哦,你的意思是,
$\u SERVER[“PHP\u SELF”]
是指
index.js
的结构?我的意思是“如果情况变得更糟”,就像我更喜欢分离代码一样。JS文件夹中的所有JS,CSS文件夹中的所有CSS,等等@Anthony你可以发布你的文件结构,了解你的问题非常有趣!!我明天就试试那个。当我有更多的时间的时候。与使JS内联相比,这更符合我所希望的,因为下面的代码不会有任何问题,
???创建
$\u SESSION[“formFile”]
的目的到底是什么,为什么不直接使用
$\u SERVER[“PHP\u SELF”]
而不是将其重新分配给另一个变量?不,您需要将该文件命名为.PHP,以便PHP预处理器可以读取您的文件,如果不是,您的文件将是一个静态文件,并且不会读取php代码。不需要设置内容类型。任何最近的浏览器都会在脚本中看到js/index.php,并将其解析为javascript。非常有趣!!我明天就试试那个。当我有更多的时间的时候。与使JS内联相比,这更符合我所希望的,因为下面的代码不会有任何问题,
???一