Strange problem with AJAX and mod_rewrite
I'm really don't know what to do. I have similar forms on different pages. The first one is situated on
http://www.site.com/new/register.php
.
The second one is located at
http://www.site.com/blogs/someones-blog/account
. The second is modified by mod_rewrite, and physically that form has address
http://www.site.com/new/blogs.php?user= ... on=account
.
File ajaxengine.php which process data sent by that form throught AJAX is located at
http://www.site.com/new/ajaxengine.php
.
So, I have script on JS:
-
/////////////////
function validateBlogForm() {
error=0;
$.ajaxSetup( {
url: "ajaxengine.php",
global: false,
type: "POST"
} );
if ($("#login").val()=="") {
$("#login").css("border","1px #FF0000 dotted");
$("#wlogin").empty();
$("Write your login here.").appendTo("#wlogin");
$("#wlogin").show("slow");
error=1;
}
else {
response = $.ajax({
data: "mode=checklogin&login="+$("#login").val(),
error: function(xml,status,error){
alert('Error loading XML document(login)');
},
success: function(xml){
$(xml).find('login').each(function(){
var login_text = $(this).text();
if (login_text=="busy") {
$("#login").css("border","1px #FF0000 dotted");
$("#wlogin").empty();
$("This login is alredy in use. Try another.").appendTo("#wlogin");
$("#wlogin").show("slow");
error=1;
}
else {
$("#login").css("border","1px #000000 solid");
$("#wlogin").hide();
}
});
}
});
}
if (error!=0)
return false;
return true;
}[/i]
In ajaxengine.php I have this code:
[i]header('Content-Type: text/xml; charset=windows-1251');
switch ($_REQUEST["mode"]) {
case "checklogin":
$login = addslashes($_REQUEST["login"]);
$res = mysql_query("SELECT * FROM blog_users WHERE login='{$login}'");
if (mysql_num_rows($res)>0)
echo '<login empty="no">busy</login>';
else
echo '<login empty="yes">empty</login>';
break;
...
}
So, if I submit my form from
www.site.com/new/register.php
all scripts works completelly right. With no errors. But if I submit it from
www.site.com/blogs/someones-blog/account
the script show me error "Error loading XML document(login)".
First my thought was that script can't find ajaxengine.php at
www.site.com/blogs/someones-blog/
, so I modified mod_rewrite, and I got access to ajaxengine.php from any place on my site.
Can someone help me to solve this problem?