php - Wordpress php 未定义索引,表单发布到数据库

标签 php mysql wordpress forms

我正在为 wordpress 小部件构建一个非常小的表单。该表单只是一个下拉选择输入,允许用户选择他们的业务类型 - 然后将其存储在数据库的 wp_usermeta 表中。

下拉框实际上是在注册时选择的,所以这个表单更多的是给用户一个改变值的机会。

这是我用来创建表单的 php:

<?php 
$user = wp_get_current_user();        
$selected = get_user_meta( $user->ID, 'i_am_a', true ); 
?>

<form method="post">        
<h3>I am a...</h3>
        <select name="i_am_a" id="i_am_a">
            <option value="musician" autocomplete="off" <?php echo ($selected == "musician")?  'selected="selected"' : '' ?>>Musician/Artist</option>
            <option value="band" autocomplete="off" <?php echo ($selected == "band")?  'selected="selected"' : '' ?>>Band</option>
            <option value="photographer" autocomplete="off" <?php echo ($selected == "photographer")?  'selected="selected"' : '' ?>>Photographer</option>
            <option value="business" autocomplete="off" <?php echo ($selected == "business")?  'selected="selected"' : '' ?>>Small Business</option>
            <option value="other" autocomplete="off" <?php echo ($selected == "other")?  'selected="selected"' : '' ?>>Other</option>
        </select>
<input type="submit" name="submit" value="change" class="button"/>

</form>
<?php
    $i_am_a = $_POST['i_am_a'];
    update_user_meta( $user->ID, 'i_am_a', $i_am_a );
?>

注意:未定义索引:/home/.../layers-whitelabel.php 第 90 行中的 i_am_a

第90行如下:

$i_am_a = $_POST['i_am_a'];

我怎样才能摆脱这个错误?

最佳答案

声明变量。或者使用 isset()在引用它们之前检查它们是否被声明,如:

$i_am_a = isset($_POST['i_am_a']) ? $_POST['i_am_a'] : '';

关于php - Wordpress php 未定义索引,表单发布到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34485947/

相关文章:

mysql - mysql中如何从一对多关系的两个表中获取数据?

php - 如何更新 php mysql 中的特殊子行

php - 使用 Laravel-5 的下拉菜单

php - csv 文件未插入 mysql 数据库

PHP、MySQL查询返回空数组,为什么?

mysql - 使用 MySQL 选择按列分组的唯一行

自定义帖子类型的 Wordpress 多个 slug

javascript - 如何仅向特定 URL 的超链接添加属性?

php - 如何处理事务中相互依赖的查询?

php - 从 Zend Framework 应用程序获取所有模块、 Controller 和操作