Я создал многоязычное приложение 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']}'";