因此,在我的数据库中,我得到了表 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: echo 是法语的,但这对问题来说无关紧要,如果用户做了坏事,它们只是错误)
如何将我的 $personnage
更改为 $_POST['personnage'] 的
full_name
版本? (Personnage = Character if you want to know)
如果存在一些安全漏洞,请告诉我。
最佳答案
您可以使用数据库字段(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,只要它是唯一的即可。
关于php - 从我的 $_POST 获取同一行中的另一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45206535/