Неопределенный индекс: user_phone

Я знаю, что есть и другие похожие вопросы, но ошибка вызвана разными причинами с другим решением.

У меня есть файл шаблона формы регистрации Wordpress, который отлично работает с этой строкой, номер телефона фиксируется и отправляется в профиль клиента / БД:

<input type = "text" name = "user_phone" id = "user_phone" class = "input" placeholder = "<?php _e('Telefon', ET_DOMAIN);?>" value = "<?php echo esc_attr( stripslashes( $user_phone ) ); ?>" tabindex = "25"></div>  

Я попытался использовать ту же строку в форме социальной регистрации, чтобы клиент мог поделиться номером телефона, но номер телефона сохранен в профиле БД / клиента. Это ошибка файла отладки:

Undefined index: user_phone in /home/admin/public_html/mysite.net/wp-content/plugins/sms-verification/sms-verification.php on line 333

sms-verify.php - это файл плагина,

Это строка 333 из ошибки отладки:

 $phone = $_POST['user_phone'];

Контекст функции в строке выше:

function user_register( $user_id ) {
    $enabled = wedevs_sms_get_option( 'register_form' );
    $phone = $_POST['user_phone'];

    if ( $enabled == 'on' ) {
        $gateway_obj = WeDevs_SMS_Gateways::instance();
        $status = $gateway_obj->send( $phone );

        update_user_meta( $user_id, 'sms_registered', 'yes' );
        update_user_meta( $user_id, 'wedevssms_mobile', $phone );
        update_user_meta( $user_id, 'sms_verified', 0 );

        //if sms sent successfully, update the code
        //else, insert a random code to the profile
        if ( $status['success'] == true ) {
            update_user_meta( $user_id, 'wedevssms_referenceno', $status['code'] );
        } else {
            update_user_meta( $user_id, 'wedevssms_referenceno', rand( 1000, 9999 ) );
        }
    }
}

форма социальной регистрации:

 <form id = "form_username" method = "post" action = "">
            <div class = "fre-input-field">
                <input type = "hidden" name = "et_nonce" value = "<?php echo wp_create_nonce( 'authentication' ) ?>">
            <input type = "text" name = "user_phone" id = "user_phone" class = "input" placeholder = "<?php _e('Telefon', ET_DOMAIN);?>" value = "<?php echo esc_attr( stripslashes( $user_phone ) ); ?>" tabindex = "25">  
                <input type = "hidden" name = "user_email" value = "<?php if ( isset( $auth['user_email'] ) ) {
                    echo $auth['user_email'];
                } ?>">
                <input type = "text" name = "user_login"
                       value = "<?php echo isset( $auth['user_login'] ) ? $auth['user_login'] : "" ?>"
                       placeholder = "<?php _e( 'Username', ET_DOMAIN ) ?>">
            </div>
            <?php
            $role_default      = ae_get_social_login_user_roles_default();
            $social_user_roles = ae_get_option( 'social_user_role', false );
            if ( ! $social_user_roles ) {
                $social_user_roles = ae_get_social_login_user_roles_default();
            }
            if ( $social_user_roles && count( $social_user_roles ) >= 1 ) { ?>
                <div class = "fre-input-field">
                    <select name = "user_role" id = "user_role" class = "fre-chosen-single">
                        <option selected disabled value = ""><?php _e('Choose your role',ET_DOMAIN);?></option>
                        <?php foreach ( $social_user_roles as $key => $value ) { ?>
                            <option value = "<?php echo $key ?>"><?php echo $role_default[ $value ]; ?></option>
                        <?php } ?>
                    </select>
                </div>
            <?php } ?>
            <div class = "fre-input-field">
                <input type = "submit" class = "fre-submit-btn btn-submit" value = "<?php _e( 'Sign Up', ET_DOMAIN ); ?>">
            </div>
        </form>

Как исправить мой код, чтобы заработало?

user_phone не существует в вашем $_POST. Это может быть вызвано отсутствием элемента формы с name = "user_phone", если он назначен, то он мог быть отключен перед отправкой, если он не отключен, убедитесь, что ваша форма использует method = "POST", если вы используете method = "POST", убедитесь, что элемент формы фактически находится внутри тега <form>, или вы совершенно не понимаете, какой файл создает HTML-форму, а какой файл ее обрабатывает.
MonkeyZeus 09.08.2018 19:58

Используя method = "POST", я обновил вопрос с полной формой социальной регистрации.

mario 09.08.2018 20:03

Я проверил форму веб-сайта, и в ней отображается правильный ввод с правильным именем и идентификатором user_phone. Я добавил строку, которую вы сказали о функции user_register (), при отправке формы я получаю сообщение об ошибке на странице «Не определено», но отправка идет и сохраняет данные в БД без номера телефона, конечно ..

mario 09.08.2018 20:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
3
32
0

Другие вопросы по теме