Предложения, чтобы установить язык в СЕССИИ - PullRequest
0 голосов
/ 22 марта 2019

Я создал многоязычное приложение CRUD, и мне потребуются некоторые предложения.Это работает, но что вы думаете?Это может быть безопасно или там может быть инъекция SQL или что-то?Имейте в виду, что я новичок.Любая помощь будет признательна!

Спасибо

В целом система работает таким образом.

Сначала я выбираю язык флага,

    <a href="<?php echo $home_url; ?>admin/index.php?lang=de"><span class="flag-icon flag-icon-de"></span>Deutsch</a>
    <a href="<?php echo $home_url; ?>admin/index.php?lang=it"><span class="flag-icon flag-icon-it"></span>Italiano</a>
    <a href="<?php echo $home_url; ?>admin/index.php?lang=es"><span class="flag-icon flag-icon-es"></span>Español</a>

, а затем переключаюсь, создавая сеанс:

$defaultLang = 'it';

if (!empty($_GET["lang"])) {
    switch (strtolower($_GET["lang"])) {
        case "en":

            $_SESSION['lang'] = 'en';
            break;
        case "de":

            $_SESSION['lang'] = 'de';
            break;
        default:

            $_SESSION['lang'] = $defaultLang;
            break;
    }
}

if (empty($_SESSION["lang"])) {
        $_SESSION["lang"] = $defaultLang;
} 

Когда я создаю продукт или категорию иличто-то, я сохраняю в Mysql DB только имя 'en', 'de', 'es' и т. д. ... в поле char (2)

для хранения данных, которые я использую подготовленным оператором PDO:

  $lang = $_SESSION['lang'];
    $stmt->bindParam(':lang', $lang); 

 try{

        // insert query
$query = "INSERT INTO product
            SET 
pd_lang=:lang";

// prepare query for execution
$stmt = $con->prepare($query);
// Execute the query
$stmt->execute()

и чтобы обновить один из них, я делаю запрос SELECT следующим образом:

$query = "SELECT COUNT(*) as total_rows FROM product WHERE pd_lang = '{$_SESSION['lang']}'";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...