na stronie mam skrypt ajax odnoszący się do funkcji w php:
function import_file_size() { if(XMLHttpRequestObject) { XMLHttpRequestObject.open("POST", "./upload_file/funkcje_dla_ajax.php"); XMLHttpRequestObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); XMLHttpRequestObject.onreadystatechange = function() { if (XMLHttpRequestObject.readyState == 4 ) { if(XMLHttpRequestObject.status == 200) { var odpowiedz = XMLHttpRequestObject.responseText; odpowiedz = unescape(odpowiedz); alert(odpowiedz); return odpowiedz; } } } wysylka = 'tresc'; wysylka = escape(wysylka); XMLHttpRequestObject.send("tresc=" + wysylka); } }
plik php:
<?php include_once('../funkcja.php'); { $tresc=pobierz_z_admin_panel('UPLOAD_SIZE') ; message_window($tresc); //echo ('OK'); } ?>
Rzecz polega na tym iż standardowo przy include od php pliki ładuje się względem pliku index.php czyli jak dla mnie wszędzie jest include_once('./funkcja.php'); ale dla js/ajax musi być względem pliku z aktualnym kodem który akurat w moim przypadku jest w podkatalogu wiec musiałem dodać jedną kropkę include_once('../funkcja.php'); wszystko niby ok ale funkcja pobierz_z_admin_panel odnosi sie do innych funkcji które inclują inne pliki ze standardowa ścieżka z jedną kropką przez co ckrypt zwraca mi nieprawidłową wartość bo nie może się połączyć z bazą itd:
<br /> <b>Warning</b>: include_once(./bazad/bazadconnect.php) [<a href='function.include-once'>function.include-once</a>]: failed to open stream: No such file or directory in <b>/var/www/konik/funkcja.php</b> on line <b>150</b><br /> <br /> <b>Warning</b>: include_once() [<a href='function.include'>function.include</a>]: Failed opening './bazad/bazadconnect.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in <b>/var/www/konik/funkcja.php</b> on line <b>150</b><br /> <br /> <b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'www-data'@'localhost' (using password: NO) in <b>/var/www/konik/funkcja.php</b> on line <b>151</b><br /> <br /> <b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in <b>/var/www/konik/funkcja.php</b> on line <b>151</b><br /> <br /> <b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'www-data'@'localhost' (using password: NO) in <b>/var/www/konik/funkcja.php</b> on line <b>152</b><br /> <br /> <b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in <b>/var/www/konik/funkcja.php</b> on line <b>152</b><br /> <br /> <b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: Access denied for user 'www-data'@'localhost' (using password: NO) in <b>/var/www/konik/funkcja.php</b> on line <b>153</b><br /> <br /> <b>Warning</b>: mysql_query() [<a href='function.mysql-query'>function.mysql-query</a>]: A link to the server could not be established in <b>/var/www/konik/funkcja.php</b> on line <b>153</b><br /> <br /> <b>Warning</b>: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in <b>/var/www/konik/funkcja.php</b> on line <b>175</b><br /> <script language="javascript" type="text/javascript"> alert(""); <!--//--></script>
jak to zrobić aby dla plików z funkcjami PHP dla ajax pokrywały się z wszystkimi plikami PHP bez przepisywania wszystkich funkcji i obiektów lub przenoszenia plików ?