因此,在我的数据库中,我得到了表perso
(= characters),其中填充了不同字符的行。有一列perso_name
和perso_fullname
以下是表格:
<form method="post">
<select name="selectperso" onchange="showUser(this.value)">
<option value="op1">Option1</option>
<option value="op2">Option2</option>
</select>
<input type="submit" name="validperso" value="Confirm">
</form>
我做了一个脚本,说OP1和OP2是“perso_name”值。但问题是我想在我的另一个mysql数据库中插入用户所用角色的全名。
$erreur = 0;
$whitelist = array('op1');
// Errors variables
$erreurpersowhitelist = NULL;
if (isset($_POST['validperso'])) {
$personnage = $_POST['selectperso'];
if(!in_array($_POST['selectperso'], $whitelist))
{
$erreur++;
$erreurpersowhitelist = "Personnage non disponible (gros malin ;) )";
}
if ($erreur !== 0) {
echo "<br><br> ". $erreur . " erreur(s) trouvée(s) lors du choix du personnage :";
echo "<br><br> ". $erreurpersowhitelist." ";
}
else {
$query=$db->prepare('UPDATE users SET personnage = "'. $personnage .'" WHERE username = "'. $username .'"');
$query->execute();
$_SESSION['personnage'] = $personnage;
header('Location: index.php');
}
}
(P.S:回声是法语,但问题无关紧要,如果用户做坏事,则只是错误)
如何将$personnage
更改为full_name
版本$_POST['personnage'] ? (Personnage = Character if you wanted to know)
如果存在安全漏洞,请与我联系。
答案 0 :(得分:0)
您可以使用数据库字段(ID或任何其他唯一字段)填充您的值,然后您就可以从数据库中获取所需的数据。
带ID的示例:TABLE perso(id,perso_name,perso_fullname)
在您的html表单中,使用ID填充您的选项
<select name="selectperso" onchange="showUser(this.value)">
<option value="1">Option1</option>
<option value="2">Option2</option>
</select>
然后在验证表单中,从数据库中检索字符名称:
$query=$db->query('SELECT full_name FROM perso WHERE id='.$db->escape($_POST['selectperso'])); //get the full_name from the perso's id
如果您不想使用id,只要它是唯一的,您就可以使用perso_name。