Добрый день, ситуация следующая сделал на бегете проект все ок все работает. Перенес клиенту на немецких хостинг и получил ошибку.
Fatal error: Uncaught Exception: SafeMySQL: 2002 No such file or directory in /homepages/24/d708062168/htdocs/shop.dkconcept.de/vendor/colshrapnel/safemysql/safemysql.class.php:623 Stack trace: #0 /homepages/24/d708062168/htdocs/shop.dkconcept.de/vendor/colshrapnel/safemysql/safemysql.class.php(121): SafeMySQL->error('SafeMySQL: 2002...') #1 /homepages/24/d708062168/htdocs/shop.dkconcept.de/component/Db.php(16): SafeMySQL->__construct(Array) #2 /homepages/24/d708062168/htdocs/shop.dkconcept.de/client/index.php(13): Db::connectDB() #3 {main} thrown in /homepages/24/d708062168/htdocs/shop.dkconcept.de/vendor/colshrapnel/safemysql/safemysql.class.php on line 623
Сам код страницы такой:
<?php
// стартуем сессию
session_start();
// Вывод ошибок
//ini_set('display_errors',1);
//error_reporting(E_ALL);
// подключаем композер
require_once __DIR__ . "/../vendor/autoload.php";
require_once __DIR__ . "/../component/Db.php";
$db = Db::connectDB();
// если юзер нажал кнопку выйти
if(isset($_GET['exit'])) {
$_SESSION = array();
session_destroy();
exit("<html><head><meta http-equiv='Refresh' content='0; URL=/client/'></head></html>");
//header( 'Location: ./login.php', true, 303 );
}
// ловим экшены входа и регистрации
if(isset($_POST['act'])) {
$act = $_POST['act'];
if ($act == "login_user") {
$login = $_POST['login'];
$password = $_POST['password'];
$sql = $db->getRow("SELECT * FROM `dk_users` WHERE login= ?s and password= ?s and user_type = 'users'", $login, $password);
if($sql['view'] == "hidden") {
exit("<html><head><meta http-equiv='Refresh' content='0; URL=/client/login.php?status=error_users'></head></html>");
}
if(!empty($sql)) {
$id = $sql['id'];
$_SESSION['id'] = $id;
$_SESSION['login'] = $login;
exit("<html><head><meta http-equiv='Refresh' content='0; URL=/client/'></head></html>");
} else {
exit("<html><head><meta http-equiv='Refresh' content='0; URL=/client/login.php?status=error'></head></html>");
}
} elseif ($act == "register_user") {
echo "register";
}
}
if (isset($_SESSION['login']) and $_SESSION['id'] == true) {
include "components/titles.php";
include "include/header-panel.php";
include "include/preloader.php"; ?>
<!-- Wrapper Start -->
<div class="wrapper">
<?php
// include header
include "include/top_header.php";
// include sidebar
include "include/sidebar-panel.php";
// include content
$page = $_GET['page'];
if($page == "") {
include "content/home.php";
} else {
require_once "content/" . $page . ".php";
}
?>
</div>
<!-- End Wrapper -->
<?php include "include/footer-panel.php";
} else {
header( 'Location: ./login.php', true, 303 );
}
Если забрать $db = Db::connectDB(); то все работает но тогда не подключится база.
Файл /component/Db.php
require_once __DIR__ . "/../vendor/autoload.php";
use SafeMySQL;
class Db {
public static function connectDB() {
$paramPath = __DIR__ . "/../config/db-connect.php";
$params = include($paramPath);
$database = $params['db_name'];
$user = $params['user'];
$pass = $params['pass'];
$db = new SafeMySQL(array("user" => "$user", "pass" => "$pass", "db" => "$database", "charset" => "utf8"));
$db->query("SET SESSION wait_timeout=900");
return $db;
}
}
Файл db-config:
return array(
'host' => 'host',
'db_name' => 'database name',
'user' => 'user',
'pass' => 'pass,
);
понятное дело что там указаны верный данные до бд) я проверял.
Почему такая ошибка ?
p.s. сам файл vendor/colshrapnel/safemysql/safemysql.class.php есть