У меня есть этот код для инициирования соединения с БД на основе учетных данных вошедшего в систему пользователя, проблема в том, что он работает на первой странице (целевой странице). Если я перехожу с целевой страницы, он не устанавливает соединение снова. Мне интересно, что может быть не так?
Если я вручную добавляю к нему учетные данные пользователя, он работает отлично, но когда он добавляется динамически, он не запускается повторно, если я перехожу с целевой страницы.
Когда я читаю журнал PHP в MAMP, он всегда отображает эту ошибку. В любом случае, чтобы перезапустить его, если я перейду с целевой страницы?
ошибка
[31-Aug-2018 21:51:11 Europe/Berlin] PHP Warning: fopen(send.txt): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/moodle35/config.php on line 7
[31-Aug-2018 21:51:11 Europe/Berlin] PHP Warning: fread() expects parameter 1 to be resource, boolean given in /Applications/MAMP/htdocs/moodle35/config.php on line 8
[31-Aug-2018 21:51:11 Europe/Berlin] PHP Notice: Undefined property: stdClass::$libdir in /Applications/MAMP/htdocs/moodle35/lib/ajax/service.php on line 33
[31-Aug-2018 21:51:11 Europe/Berlin] PHP Warning: require_once(/externallib.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/moodle35/lib/ajax/service.php on line 33
[31-Aug-2018 21:51:11 Europe/Berlin] PHP Fatal error: require_once(): Failed opening required '/externallib.php' (include_path='.:/Applications/MAMP/bin/php/php7.0.15/lib/php') in /Applications/MAMP/htdocs/moodle35/lib/ajax/service.php on line 33
Код
// require_once (‘send.txt’);
require_once ( ‘/ Applications / MAMP / HTDOCS / регистрация / DBConnect.php’);
$myFile = "send.txt";
$fh = fopen($myFile, 'r');
$myFileContents = fread($fh, 21);
//fclose($fh);
$mytrimmedvalue = trim($myFileContents);
unset($CFG);
global $CFG;
$CFG = new stdClass();
if ( $mytrimmedvalue != '' ) {
$database = new dbConnect();
$db = $database->openConnection();
$sql = "select * from ol_users where username = '$mytrimmedvalue'";
$user = $db->query($sql);
$result = $user->fetchAll(PDO::FETCH_ASSOC);
debug_to_console($result[0]['serverhosturl'] .'---------' .$mytrimmedvalue .'----------' .$result[0]['databasename']);
$CFG->dbtype = 'mysqli';
$CFG->dblibrary = 'native';
$CFG->dbhost = $result[0]['serverhosturl'];
$CFG->dbname = $result[0]['databasename'];
$CFG->dbuser = $result[0]['serveruser'];
$CFG->dbpass = '111111ade';
$CFG->prefix = 'mdl_';
$CFG->dboptions = array (
'dbpersist' => 0,
'dbport' => '',
'dbsocket' => '1',
'dbcollation' => 'utf8mb4_unicode_ci',
);
$CFG->wwwroot = 'http://localhost:8888/moodle35';
// $CFG->wwwroot = 'http://192.168.0.199:8888/moodle35';
$CFG->dataroot = $result[0]['moodledataurl'];
$CFG->admin = 'admin';
$CFG->directorypermissions = 0777;
require_once(dirname(__FILE__) . '/lib/setup.php');
//$database->closeConnection();
}
function debug_to_console( $data ) {
$output = $data;
if ( is_array( $output ) )
$output = implode( ',', $output);
echo "<script>console.log( 'Debug Objects: " . $output . "' );</script>";
}
$myFile = dirname(__FILE__) . "/send.txt";
Когда путь к файлу используется в других местах, а не в корневом каталоге, он не может быть найден, потому что fopen
не может найти файл с относительным путем в текущем каталоге. Использовать абсолютный путь
Других решений пока нет …