将Javascript变量转换为PHP脚本

将Javascript变量转换为PHP脚本,php,javascript,variables,character-encoding,Php,Javascript,Variables,Character Encoding,我可以看到这个问题被问了很多次,我做了大量的研究,研究了可以使用什么方法将几个Javascript变量传输到PHP脚本 将表单中的数据作为隐藏值发布 发布到URL,即'/txt.php?h='+var 用饼干 我正在尝试写一段代码,让你下载你写的东西-我是这个网站的开发者。(我还做了一个客户端方法,将变量放入URI并设置一个头来下载内容) 所有这些都不起作用。要么是某个字符导致了错误,要么是html元素 我是否可以编写一些代码来保证功/变量的1:1转换 数据类型:HTML+各种不同的字符“!§!

我可以看到这个问题被问了很多次,我做了大量的研究,研究了可以使用什么方法将几个Javascript变量传输到PHP脚本

  • 将表单中的数据作为隐藏值发布
  • 发布到URL,即'/txt.php?h='+var
  • 用饼干
  • 我正在尝试写一段代码,让你下载你写的东西-我是这个网站的开发者。(我还做了一个客户端方法,将变量放入URI并设置一个头来下载内容)

    所有这些都不起作用。要么是某个字符导致了错误,要么是html元素

    我是否可以编写一些代码来保证功/变量的1:1转换

    数据类型:HTML+各种不同的字符“!§!”等。
    输出:.txt文件,最好是表单上所写内容的1:1翻译

    在发送数据之前,您可能应该使用Base64编码。请查看部分和PHP解码。这将防止特殊字符破坏您的代码。

    希望有帮助

    //PHP
    
     if(isset($_REQUST['submit']))
    {
      $download=$_REQUEST['download'];
    // from database get value of all the downloadable items
    // and check if the input is in that array then to the suitable thing. 
    }
    //HTML
    <form method="post" action=''>
    Type :<input type="text" id="txtField" name="txtField" />
    <input type="hidden" name='download' />
    <input type="submit" name="submit" onclick="return onSubmit() " />
    </form>
    
    //Javascript
    
    <script type="text/javascript">
    function onSubmit()
    {
    if(document.getElementById("txtField").value != '')
    {
      document.getElementById("download").value=document.getElementById("txtField").value;
    return true;
    }
    else
    {
     alert("Please enter item to download");
    return false;
    }
    }
    
    //PHP
    如果(isset($_请求['submit']))
    {
    $download=$_请求['download'];
    //从数据库获取所有可下载项目的值
    //并检查输入是否在该数组中,然后选择合适的对象。
    }
    //HTML
    类型:
    //Javascript
    函数onSubmit()
    {
    if(document.getElementById(“txtField”).value!='')
    {
    document.getElementById(“下载”).value=document.getElementById(“txtField”).value;
    返回true;
    }
    其他的
    {
    警报(“请输入要下载的项目”);
    返回false;
    }
    }
    
    这是Cookie方法,它不起作用

    这只是将值拼凑在一起,而不考虑cookie中使用的数据格式

    如果你想解决这个问题,怪癖模式有一个新的选择


    然而,Cookie的关键在于数据的持久性。对于一次性消息来说,这不是一种合理的转换。

    您试图传输哪种类型的数据?如果是HTML,则以隐藏值的形式发布数据应该有效。(Ajax POST请求也应该如此。)PHP与此有什么关系?Wrrrite似乎完全用JavaScript编写,并使用本地存储存储数据(这使得“下载”成为不可能,因为数据已经是本地的)。您有什么代码?什么不起作用"? 你会犯什么错误?它正在被否决,因为它不能以目前的形式得到明智的回答。你有什么密码?你在写PHP吗?你在写JS吗?二者都你是如何执行它们的?你会犯什么错误?“不工作”是什么意思?@Quentin我两个都在写。我也可以执行它们。不工作意味着随机字符(因为所有字符都是允许的,包括“'[]”))将破坏脚本。Base64将数据量增加了33%,在使用POST时不需要。他表示,他的问题是数据中的特殊字符和html元素。Base64可以避免这两个问题。当内容仅为文本时,不需要使用Base64,而从网站的问题。encodeUriComponent是一种更明智的方法。@Sirko肯定可以,但我想不出在使用POST时有必要这样做。由于用户会不断更改文本,我如何动态更新提交内容的值?