我已经创建了一个多语言的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;
}
当我创建产品或类别之类的东西时,我仅将名称“ en”,“ de”,“ es”等存储在Mysql DB中,并将其存储在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()
并更新其中一个,我进行如下查询:
$query = "SELECT COUNT(*) as total_rows FROM product WHERE pd_lang = '{$_SESSION['lang']}'";