mysql_insert_id()中的空格;返回

时间:2012-07-12 09:24:29

标签: mysql whitespace mysql-insert-id

我在我的身份之前得到空格?

什么时候回来我得到了这个?

&id=%20%20%20%20%20%20%20%20%20%20%20%201005

它应该只是这样做

&id=1005

可能是我的jquery数据代码吗?

    success: function(data) { 
    $('.success').slideDown('slow');  
    setTimeout(function(){window.location="user.php?v=single&id="+data;}, 3000);            
    }   

或者它可能是php代码吗?

<?php
include 'includes/db.php';
protect();
if(isset(clean($_POST['uid']))) { 
$usrid=$_SESSION['uid'];
$insertNewUser=mysql_query("INSERT INTO users (uid,status,datetime) VALUES  ('$usrid','0',NOW())") or die(mysql_error());
$id=mysql_insert_id();
echo $id;
$insertUserOptions=mysql_query("INSERT INTO users_options (uid,lid) VALUES  ('$usrid','$id')") or die(mysql_error());
mkdir('media/listings/'.$id,0755);
mkdir('media/listings/'.$id.'/photos',0755);
mkdir('media/listings/'.$id.'/documents',0755);
mkdir('media/listings/'.$id.'/video',0755);
mkdir('media/listings/'.$id.'/audio',0755);
chmod('media/listings/'.$id,0775);
chmod('media/listings/'.$id.'/photos',0775);
chmod('media/listings/'.$id.'/documents',0775);
chmod('media/listings/'.$id.'/video',0775);
chmod('media/listings/'.$id.'/audio',0775);
} 
?> 

更新:

id前面的所有字符都是因为我在protect()函数中包含了几行文件。一旦我将这些包括移动到一个新功能并相应地调用它修复了问题。感谢马丁为您提供明确的解决方案:)。

2 个答案:

答案 0 :(得分:1)

您可能在代码中输出了一些空格,例如在includes/db.php

我的建议是永远不要在文件末尾关闭PHP代码。这是不必要的,只会造成麻烦

答案 1 :(得分:0)

试试这个,它不是解决方案,而是一种解决方法!

$('.success').slideDown('slow');  
    setTimeout(function(){window.location="user.php?v=single&id="+$.trim(data);}, 3000);            
}   

它使用jQuery trim函数删除之前和之后的空格。应该这样做。

要实际 修复 ,您可以做其他一些事情:

选项1

将ID作为json字符串返回,因此空格不可见。

选项2

检查文件中是否有回显空格,或者有时可能会关闭不需要的php标记,并在结果中回显空格。