当前位置: 首页 > 面试题库 >

GET,PHP中的&符

钱元徽
2023-03-14
问题内容

我有一个简单的表单,可以生成一个新的相册,将标题和说明发送到MySQL,然后将用户重定向到可以上传照片的页面。

一切正常,直到“&”号进入方程式。信息从jQuery模态对话框发送到PHP页面,然后将条目提交到数据库。Ajax成功完成后,会将用户发送到带有GET
URL的上传页面,以告知该页面它要上传到的专辑-

$.ajax ({
    type: "POST",
    url: "../../includes/forms/add_gallery.php",
    data: $("#addGallery form").serialize(),
    success: function() {
        $("#addGallery").dialog('close');
        window.location.href = 'display_album.php?album=' + title;
    }
});

如果标题带有“&”号,则上传页面上的“标题”字段将无法正确显示。有没有办法逃脱&符的GET?

谢谢


问题答案:

通常,当您将不完整的字母数字形式的内容作为URL的一部分传递时,您会希望对其进行URL编码。

在URL编码中,&被替换为%26(因为0x26 = 38 =的ASCII码&)。

为此,您可以使用函数encodeURIComponent

$.ajax ({
    type: "POST",
    url: "../../includes/forms/add_gallery.php",
    data: $("#addGallery form").serialize(),
    success: function() {
        $("#addGallery").dialog('close');
        window.location.href = 'display_album.php?album=' + encodeURIComponent(title);
    }
});

请注意,它escape具有+未编码的缺点,并且将在服务器端作为一个空间解码,因此应避免使用它(source)。

如果您希望在PHP级别在服务器端执行此操作,则需要使用函数urlencode



 类似资料:
  • 问题内容: 我正在尝试将URL作为php中的url参数传递,但是当我尝试获取此参数时我什么也没收到 我正在使用以下网址形式: 我正在努力通过: 但是什么也没回来。问题是什么? 问题答案: 不是函数或语言构造,而只是一个变量(数组)。尝试: 特别是,它是一个超全局变量:一个由PHP填充的内置变量,并且在所有作用域中都可用(您可以在没有global关键字的函数内部使用它)。 由于该变量可能不存在,因此

  • 问题内容: 如何通过PHP清理$ _GET -variables中的数据? 我只对GET by中的一个变量进行了消毒。我不确定是否应该清理所有内容,因为上次将数据放入Postgres时,使用可以最轻松地解决问题。 问题答案: 如何通过PHP清理$ _GET -variables中的数据? 您 不 清除$ _GET中的数据。这是PHP脚本中的一种常见方法,但是完全错误*。 所有变量都应保持纯文本格式

  • 问题内容: 我有一个PHP脚本,可以通过以下方法对字符串进行基本加密: 用于加密字符串的URL的示例如下所示: Encrypt.php?method = encrypt&str =快速狐狸 它将返回此作为加密的字符串: LCuT / ieVa6cl3 / 4VtzE + jd9QPT3kvHYYJFqG6tY3P0Q = 现在要解密字符串,您需要做的就是将“方法”查询更改为“解密”,如下所示: E

  • 我有一个包含用户web浏览器信息的列表。该列表由PHP通过用户需求调查生成。输出如下所示:(示例): Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0) 哪个是真正的web浏览器?根

  • 我在$_post中遇到了一些问题,我想获得服务器发送的数据服务器发送?additionaldata.Cardholdername=test&additionaldata.Cardbin=123456 HTTP Post 以下是有关服务器发送内容的一些信息https://docs.adyen.com/developers/api-manual#notificationfields

  • 问题内容: 我尝试从先前的Post请求切换到Get请求。假设它是Get,但最终会发布。 我在PHP中尝试了以下方法: 我想念什么? 附加信息:我已经建立了连接以执行POST请求。这样就成功完成了,但是稍后当我尝试重用连接并使用上面的setopts切换回GET时,仍然会在内部使用不完整的POST标头进行POST。问题是它认为它正在执行GET操作,但最终放置了没有content- length参数的P