AJAX XMLHttpRequest.readyState выдает 4, но responseText содержит полностью php файл

adac84

Новичок
AJAX XMLHttpRequest.readyState выдает 4, но responseText содержит полностью php файл

есть код:

ajax script
----------------------
PHP:
function createObject() {
var request_type;
var browser = navigator.appName;
	if(browser == "Microsoft Internet Explorer"){
		request_type = new ActiveXObject("Microsoft.XMLHTTP");
	}else{
		request_type = new XMLHttpRequest();
	}
	return request_type;
}

var http = createObject();

var nocache = 0;

function login() {
	// Optional: Show a waiting message in the layer with ID ajax_response
	document.getElementById('login_response').innerHTML = "Loading..."
	// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding.
	var email = encodeURI(document.getElementById('emailLogin').value);
	var psw = encodeURI(document.getElementById('pswLogin').value);
	// Set te random number to add to URL request
	nocache = Math.random();
	// Pass the login variables like URL variable
	http.open('GET', 'login.php?email='+email+'&psw='+psw+'&nocache = '+nocache);
	http.onreadystatechange = loginReply;// Передаем ссылку на функцию
	http.send(null);
}


function loginReply() {
	alert(http.readyState);
	
	if(http.readyState == 4){ 
	if (http.status == 200) {
	var response = http.responseText;
		alert (http.responseText);
		if(response == 0){
		// if login fails
		document.getElementById('login_response').innerHTML = 'Login failed! Verify user and password';
		// else if login is ok show a message: "Welcome + the user name".
		} else {
		document.getElementById('login_response').innerHTML = 'Welcome'+response;
		}
	} else 
		{ alert("status is " + http.status);}
	}
}
------------

login.php
PHP:
<?php include('config.php'); 
  header('content-type: text/plain; charset=utf-8');
?>

<!-- Verify if user exists for login -->
<?php
if(isset($_GET['email']) && isset($_GET['psw'])){

$email = $_GET['email'];
$psw = $_GET['psw'];

$getUser_sql = 'SELECT * FROM USER WHERE email="'. $email . '" AND psw = "' . $psw . '"';
$getUser = mysql_query($getUser_sql);
$getUser_result = mysql_fetch_assoc($getUser);
$getUser_RecordCount = mysql_num_rows($getUser);

if($getUser_RecordCount < 1){ echo '0';} else { echo $getUser_result['nick'];}
}

?>
так вот, status возварщает ноль, вместо 200 или семейства 400х кодов из заголовка.
если я не делаю проверку статуса, и вывожу responseText, то выводится в сообщении вся страница lohin.php

не могу понять в чем проблема?
 

dimagolov

Новичок
в том, что твой сервер не понимает, что php файлы чем-то отличаются от html или любых других и отдает их как текст.

настрой сервер для обработки php
 

adac84

Новичок
Автор оригинала: dimagolov
в том, что твой сервер не понимает, что php файлы чем-то отличаются от html или любых других и отдает их как текст.

настрой сервер для обработки php
дык php у меня стоит и на нем php-ные сайты работают...

или что ты имеешь в виду, просто не совсем понял?

-~{}~ 11.12.08 20:10:

ага, все правильно, мозилла когда у меня считывает index.html
с сервака, почему то открывала их как с обычного диска, а ява скрипт поэтому запрос уже делал не через http

т.е. при наборе в адресной строке http://test/index.html

у меня появлялось это:

file:///C:/WebServers/home/test/www/index.html

тупанул, даже в строку адресную не посмотрел.

обновил мозиллу, стало все ок.

Спасибо!
 
Сверху