我寻求您的帮助是因为我在使用网页上的PHP表单更新MySQL数据库中的用户语言字段时遇到问题。PHP脚本所有者具有该数据库的读写权限。
尽管收到了来自
if ( update_user_meta( $user_id, 'LanguagesUser', $LanguagesUser )
当用户提交表单时,数据库中的字段不被更新。
以前是否有人遇到过此问题,如果有,您是否能够解决它?
global $current_user;
global $wpdb;
$url = site_url();
// Tables
// Using $wpdb->prefix for table prefix
$table_users = "users";
$user_id = get_current_user_id();?>
<p>
<form method="post">
<!-- Field for language -->
<label for="LanguagesUser">Languages* : </label>
<input type="text" id="LanguagesUser" name="LanguagesUser" value="<?php echo um_user('LanguagesUser'); ?>" required>
<!-- Button to submit the form -->
<input type="submit" value="Update">
</form>
</p>
<?php
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Check if required data has been submitted
if ( ! isset( $_POST['LanguagesUser'] ) || empty( $_POST['LanguagesUser'] ) ) {
// The field is empty, display an error message
echo '<p class="error">The "Languages" field is required</p>';
} else {
// If the data has been submitted, retrieve and validate it
$LanguagesUser = sanitize_text_field( $_POST['LanguagesUser'] );
// Update the "LanguagesUser" user profile field in the database
if ( update_user_meta( $user_id, 'LanguagesUser', $LanguagesUser ) ) {
echo '<p class="success">The languages have been successfully updated for the user with ID '.$user_id.'</p>';
} else {
error_log( 'Database update failed for user with ID '.$user_id );
}
}
我一直在尝试让一个WordPress用户使用表单更新他们的语言配置文件。我使用的脚本有当前用户和WordPress数据库的全局变量,还检索网站URL。表单包含一个供用户输入语言的字段和一个提交按钮。当用户提交表单时,脚本检查字段是否为空,清理输入数据,然后尝试使用“update_user_ meta”函数更新数据库中用户的语言字段。尽管收到此函数的正面反馈,但数据库中的语言字段未更新。因此,我正在寻求有关如何解决此问题的帮助。谢谢。
1条答案
按热度按时间gr8qqesn1#
感谢您的帮助和及时响应!确实,您之前的声明是正确的,即脚本是由用户而不是所有者执行的。此特定用户具有在数据库上执行更新操作所需的权限。我确实使用MySQL命令验证了此特定用户的字段存在于数据库表中:
SELECT * FROM wp_usermeta WHERE user_id = 1327 AND meta_key = 'LanguagesUser';
此外,我可以通过WordPress Jmeter 板的“用户”部分访问与用户对应的字段,在那里我可以查看和编辑他们的个人资料。然而,尽管可以使用表单修改此字段的内容,但所做的任何更改似乎对数据库中的相应字段没有任何影响。