烦人的大脑麻木问题。
我有两个函数来检查字符串的长度(主要是 js 一个也被截断)这是 Javascript 中的一个:
$('textarea#itemdescription').keyup(function() {
var charLength = $(this).val().length;
// Displays count
$('span#charCount').css({'color':'#666'});
$('span#charCount').html(255 - charLength);
if($(this).val().length >= 240){
$('span#charCount').css({'color':'#FF0000'});
}
// Alerts when 250 characters is reached
if($(this).val().length >= 255){
$('span#charCount').css({'color':'#FF0000'});
$('span#charCount').html('<strong>0</strong>');
var text = $('textarea#itemdescription').val().substring(0,255)
$('textarea#itemdescription').val(text);
}
});
这是我要仔细检查的PHP:
if(strlen($_POST["description"])>255){
echo "Description must be less than ".strlen($_POST["description"])." characters";
exit();
}
我正在使用 jQuery Ajax 从 textarea 发布值。但是我的 php 验证说 strlen() 比我的 js 本质上说的要长。因此,例如,如果我键入一个实心字符串,它说 0 或 3 个字符,直到 255。然后我单击保存,php 给我的长度为 261。
有任何想法吗?
是否与特殊字符、js 读取不同或遗漏的位大小有关?还是与其他事情有关?也许今天病了!...:P
更新:
我添加var_dump($_POST['description'])
以查看通过了什么,它正在返回转义斜线,例如发生了什么?我试过添加 stripslashes(); 无济于事......他们来自哪里?
更新 2 - 问题已解决:
基本上我想我刚刚意识到我的服务器打开了魔法引号...... grr 所以我现在在处理之前已经剥离了斜杠。有点烦人,但它必须这样做!
谢谢你的帮助!
谢谢,斯特凡