znów napotkałem problem przy pisaniu amatorskiego modułu. Do rzeczy. Zgodnie z opisem funkcji require:
Cytat
Instrukcja ta pozwala wczytać plik, którego adres został podany w jej argumencie. Jak możemy przeczytać w manualu służy ona do wczytania i wykonania kodu z określonego pliku w trakcie wykonywania skryptu.
mój kod w pliku index.php w katalogu o dajmy na to nazwie 'WWW' FTP o treści:
<?php { } require 'config.php'; require 'includes/class.php'; $mysql->connect(); ?>
Powinien zostać automatycznie zamieniony przez parser PHP na:
<?php { } // I teraz zamiast require 'config.php'; // Zamienia tutaj na to co jest w config.php czyli: /*<?php $sql_host = 'localhost'; $sql_user = 'root'; $sql_pass = ''; $sql_base = 'test'; ?>*/ // A tutaj zamienia to co jest w includes/class.php // Czyli powinno być // Nie: require 'includes/class.php'; // A: /*<?php if(!defined('THIS_SCRIPT')) { die('Access denied'); } class mysql { var $sql_host; var $sql_user; var $sql_pass; var $sql_db; var $connection; var $select; var $query; var $result; var $ilosc_zapytan; var $data_godzina; function connect() { @require 'config.php'; $connection = @mysql_connect($sql_host, $sql_user, $sql_pass); if(!$connection) { echo '<br>Nie można połączyć z bazą MySQL.'; $dane = '$connection | $sql_host, $sql_user\n'; error_log_file($dane); } } } ?>*/ $mysql->connect(); ?>
Problem jednak w tym, że config.php działa, a includes/class.php nie... Według mnie to bardzo dziwne, no bo przecież skoro włącza to przeszukuje katalog includes, wyszukuje w nim plik class.php i 'wkleja' go do pliku index.php. Co dziwniejsze, gdy zamienię to na:
require 'class.php';
To działa! Możecie mi wytłumaczyć dlaczego tak się dzieje? Zależy mi na tym, by plik odczytywało z includes/class.php nie z class.php.
Teraz problem drugi:
Mam taką funkcję w celu zapisaniu błędu połączenia z MySQL:
function error_log_file($dane) { $file = 'includes/tmp/error.txt'; }
I znowu ten sam problem! Zamiast zapisywać do pliku includes/tmp/error.txt to tworzy sobie nowy plik w katalogu 0:/includes/tmp/error.txt zamiast WWW/includes/tmp/error.txt, gdzie '0:' to główny katalog FTP. A po raz drugi piszę, zależy mi na tym, by zapisywało do katalogu, na który wskazuję (czyli WWW/includes/tmp)

Może to trochę zagmatwane, ale jeśli będziecie mieli problemy ze zrozumieniem, to piszcie, bo zależy mi na szybkiej pomocy

Pozdrawiam