简体   繁体   English

PHP / jQuery提交/保存具有所有特殊字符值的输入

[英]PHP/jQuery to submit/save input with all special characters value

Example.. 例..

HTML : HTML:

<input type="hidden" value="">

PHP : PHP的:

<input type="hidden" value="<?php echo $value;?>">

jQuery : jQuery的:

$("input:hidden").val(text);

If text (JS variable) is free text, All html special characters allowed (like single quote / double quote) and save to input:hidden (so submit by PHP) 如果text (JS变量)是自由文本,则允许所有html特殊字符(例如单引号/双引号)并保存到input:hidden (因此由PHP提交)

What is a correctly way to do ? 正确的做法是什么?

May I use 我可以用

echo htmlentities($value); ... in PHP ...在PHP中

or replace quotes in jQuery like .val(text.replace(/'/g,"'")) 或替换jQuery中的引号,如.val(text.replace(/'/g,"'"))

or what ? 要不然是啥 ?

PS : Please think about when I set value to input to save value with jQuery too. PS:请考虑一下当我设置值以使用jQuery保存值时。

Converting to htmlentities should work fine. 转换为htmlentities应该可以正常工作。

You can also use strip_tags if you want to remove all HTML tags : 如果要删除所有HTML标签,也可以使用strip_tags

Note: this will NOT stop all XSS attacks 注意:这不会阻止所有XSS攻击

If you want to echo a PHP variable into some HTML, use: 如果要将PHP变量回显到某些HTML中,请使用:

<input type="hidden" value="<?php echo htmlspecialchars($value); ?>">

http://php.net/manual/en/function.htmlspecialchars.php http://php.net/manual/en/function.htmlspecialchars.php

If you want to echo a PHP variable into some JavaScript, use: 如果要将PHP变量回显到某些JavaScript中,请使用:

<?php echo json_encode($value); ?>

http://php.net/manual/en/function.json-encode.php http://php.net/manual/en/function.json-encode.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM