Выполнение РНР скрипта через JavaScript

Статус
В этой теме нельзя размещать новые ответы.

terkin

Мой дом здесь!
Регистрация
9 Дек 2006
Сообщения
513
Реакции
200
Возможно ли вставить на страницу javascript который при загрузке будет выполнять РНР скрипт лежащий на сервере?
 
Да, возможно:
Код:
<body onLoad="javascript:document.location='http://yourdomain.com/test.php';">
Только после этого редиректа пользователь увидит результат работы пхп-скрипта. Можно запихать его в скрытый ифрейм:
Код:
<iframe width="0" height="0" src="test.php" onLoad="MyFunc();">
где MyFunc() должна быть описана в <head> и запускается сразу после загрузки пхп-скрипта. Если она вообще нужна.
 
Не мне нужен не редирект, сейчас попробую описать ситуацию, вобщем я залил в директорию на сайте скрипт, но так как в той директории htaccess'ом запрещено выполнение РНР я залил его как index.txt, на сам сайт у меня есть права добавлять html код, тоесть мне нужно как то через html заставить выполниться РНР скрипт который сейчас имеет расширение ТХТ
 
Можно настроить apache так, чтобы он выполнял файлы txt как php. Но судя по описанной ситуации - действительно никак.
Или изменить .htaccess
 
Тогда никак. А что, взломал еду домен?)
 
ну по вопросу, чтобы он именно исполнялся как пхп на этом серваке - действительно никак.

пока я размышлял по сабжу, я тут наваял кодец. он не исполняется на этом сервере, но он вызывается с этого сервера.
он голая теория, я не проверял его. но кто знает, может и годен на что-то.

Код:
<!-- this_site.ru -->
<script language="javascript" type="text/javascript" src="http://another_site.ru/js.php"></script>
<body onload="MyFunction()">
PHP:
<?
// Это типа js.php на another_site.ru
	header('Content-Type: application/x-javascript'); 
	print 'MyFunction() {';
		// пхп-код
	print '}';
?>
 
Нужно с помощью яваскрипта подгружать пхпшную страницу в iframe и брать оттуда все, что нужно.
 
аяксовый метод, без всяких фреймов и перехода на другую страницу:

// функция создания нового XMLHttpRequest объекта
function new_XMLHttpRequest(process_func){
if (typeof window.ActiveXObject != 'undefined' ){
var xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
//xmlObj.onreadystatechange = process;
xmlObj.onreadystatechange = process_func;
}else{
var xmlObj = new XMLHttpRequest();
//xmlObj.onload = process;
//xmlObj.onreadystatechange = process;
xmlObj.onreadystatechange = process_func;
}
return xmlObj;
}

var reqID;
// функция запроса загрузки файла по URL
function request(url,toID,func){
xmlDoc = new new_XMLHttpRequest(func);
if (toID) reqID = toID;
xmlDoc.open("GET", url);
//setTimeout("xmlDoc.send(null)",0);
xmlDoc.send(null);
}

// функция обработки запроса
function process(){
if (xmlDoc.readyState == 4) //alert(xmlDoc.status);
{
s = xmlDoc.responseText;
//alert(s); //alert("readyState="+xmlDoc.readyState);
if (reqID) {
document.getElementById(reqID).innerHTML = s;
} else {
return s;
}
} else{
return false;
}
}

вызывать в JS так:
function request("phpfile.php","content-id",process)

Приспособить такую конструкцию можно много для чего
 
smb14, ты продемонстрировал то, что ты знаешь, что такое аякс. но тем не менее, он не переигрывает запрет апача на исполнение пхп

и эта функция
function request("phpfile.php","content-id",process)
не даст ожидаемого везультата

все-равно эта js-функция вызывает пхп-файл, который не будет исполнен на этом сервере. а вызвать его с другого сервера нельзя, т.к. в аяксе действует правило песочницы.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху