基本上,我试图通过jQuery将视频和其他信息发送到PHP,然后写入一个txt文件,以便稍后读取。
有一种方法可以将视频url输入其中。除了一件事,我什么都做了。
如果我把它通过:http://www.youtube.com/watch?v=g1lBwbhlPtM它运行良好。
但是:http://www.youtube.com/watch?v=g1lBwbhlPtM&feature=feedu没有。
我做了一些测试,这是因为当我通过&feature=feedu作为单独的$_POST值读取。
这就是问题所在:
var dataString = 'title='+title+'&content='+content+'&date='+date+'&Submit=YES';
因为它的读数像
var dataString = 'title='+title+'&content='+IMAGES, TEXT AND STUFF+'&feature=feedu OTHER IMAGES AND STUFF&date='+date+'&Submit=YES';
它超出了一个可以包括图像或文本之类的文本区域,所以我正在寻找类似htmlspecialchar()的东西来解决这个问题;在通过ajax 发送之前
有什么办法解决这个问题吗?
编辑:以下是问题的完整代码:
var title = $('input#title').val();
var content = $('textarea#content').val();
var date = $('input#date').val();
var dataString = 'title='+title+'&content='+content+'&date='+date+'&Submit=YES';
//alert (dataString);return false;
$.ajax({
type: "POST",
url: "./inc/php/file.php",
dataType: "json",
data: dataString,
success: function(data) {
if(data.error == true){
$('.errordiv').show().html(data.message);
}else{
$('.errordiv').show().html(data.message);
$(':input','#addstuff')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
}
},
error: function(data) {
$('.errordiv').html(data.message+' --- SCRIPT ERROR');
}
})
return false;
如果内容等于:
&content= <br>Text 1<br> <img>http://someimage.com/image.jpg</img>
<br> Text2<br> <vid>http://www.youtube.com/watch?v=isDIHIHI&feature=feedu</vid>
<br>Text 3<br>
内容变量通过ajax调用设置为:
&content= <br>Text 1<br> <img>http://someimage.com/image.jpg</img>
<br> Text2<br> <vid>http://www.youtube.com/watch?v=isDIHIHI
带有一个额外的变量
&feature=feedu</vid>
<br>Text 3<br>
那么,如何停止ajax阅读&作为单独的$_POST变量?
您在传递视频url之前是否encodeURI()
?
如果你在PHP中需要它,那么URLEncode
我在php文件中使用了这段代码
if(isset($_POST['feature'])){
$content=htmlspecialchars_decode(stripslashes(nl2br("<br />".$_POST['content'].'&feature='.$_POST['feature']."<br />")));
}
但它不是很动态,因为它只适用于youtube URL
在JS do中(在ajaxing之前)
dataString = encodeURI(dataString);
然后在PHP 上解码
$dataString = urldecode($_POST['data']);
或者做:
$.ajax({
type: "POST",
url: "./inc/php/file.php",
dataType: "json",
data: {
'title': $('input#title').val(),
'content': $('textarea#content').val(),
'date': $('input#date').val(),
'Submit': 'Yes'
}
success: function(data) {
if(data.error == true){
$('.errordiv').show().html(data.message);
}else{
$('.errordiv').show().html(data.message);
$(':input','#addstuff')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
}
},
error: function(data) {
$('.errordiv').html(data.message+' --- SCRIPT ERROR');
}
})