从我的$ _POST获取同一行中的另一个值

时间:2017-07-20 06:12:33

标签: php mysql

因此,在我的数据库中,我得到了表perso (= characters),其中填充了不同字符的行。有一列perso_nameperso_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)

如果存在安全漏洞,请与我联系。

1 个答案:

答案 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。