Tak w wersji skróconej.
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');
if (isset($_POST['tresc'])) {
$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 ?