Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Rva4
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
1

Починить повторную отправку формы в ulogin

24.06.2016, 23:34. Просмотров 1052. Ответов 5
Метки нет (Все метки)

Нужно убрать повторную отправку формы, при попытке вернуться на предыдущую страницу браузер выдает вот это:

////
Подтвердите повторную отправку формы

Для корректного отображения веб-страницы требуются введенные ранее данные. Их можно отправить повторно, но в этом случае все действия на странице будут выполнены снова.
Чтобы повторно ввести данные, необходимые для загрузки страницы, нажмите "Обновить".
/////

это происходит из-за авторизации, использую ulogin

HTML5
1
2
3
4
<script src="//ulogin.ru/js/ulogin.js"></script>
    <div id="uLogin" data-ulogin="display=buttons;fields=first_name,last_name;hidden=;redirect_uri=http%3A%2F%2Ftest1.ru%2Fmain.php">
        <img src="vk.png" data-uloginbutton = "vkontakte"/>
    </div>

PHP
1
2
3
4
5
6
7
8
       $s = file_get_contents('http://ulogin.ru/token.php?token=' . $_POST['token'] . '&host=' . $_SERVER['HTTP_HOST']);
               $user = json_decode($s, true);
           $defaultbalance = 25;
                    
                    //$user['network'] - соц. сеть, через которую авторизовался пользователь
                    //$user['identity'] - уникальная строка определяющая конкретного пользователя соц. сети
                    //$user['first_name'] - имя пользователя
                    //$user['last_name'] - фамилия пользователя
Добавлено через 38 минут
Выяснил, что это происходит из-за отправки данных в бд
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
require_once 'sql-query-master/function.qb.php';
 
$existingUser = qb()->table('users')->select()->where(array('identity' => $user['identity']))->one();
 
if ($existingUser) {
    qb()->table('users')->update(array(
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name']
    ))->where(array('id' => $existingUser['id']))->run();
} else {
    qb()->table('users')->insert(array(
        'identity' => $user['identity'],
        'first_name' => $user['first_name'],
        'last_name' => $user['last_name'],
        'balance' => $defaultbalance
    ))->run();
}
}
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.06.2016, 23:34
Ответы с готовыми решениями:

Предотвратить отправку формы
Сделала простой скрипт проверки ввода пароля function passcontrol() { ...

Запретить отправку формы
Хочу запретить отправку формы на сервер, если поле пустое. alert выскакивает на...

Отменить отправку формы
Здравствуйте есть форма echo(&quot;&lt;div id='input_form'&gt;&quot;);//2 echo(&quot;&lt;form...

Как запретить отправку формы ?
Пишу так не выходит &lt;input type=&quot;submit&quot; onclick=&quot;otpravka() return false&quot;...

Как запретить отправку формы, если какое-то условие не выполнено?
Как запретить отправку формы, если какое-то условие не выполнено (заполнены не...

5
Raisin Zn
100 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 929
25.06.2016, 04:03 2
Может так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (isset($user['network'])) 
{
    $existingUser = qb()->table('users')->select()->where(array('identity' => $user['identity']))->one();
    if ($existingUser) 
    {
        qb()->table('users')->update(array(
            'first_name' => $user['first_name'],
            'last_name'  => $user['last_name']
        ))->where(array('id' => $existingUser['id']))->run();
    } 
    else 
    {
        qb()->table('users')->insert(array(
            'identity'   => $user['identity'],
            'first_name' => $user['first_name'],
            'last_name'  => $user['last_name'],
            'balance'    => $defaultbalance
        ))->run();
    }
}
Или, как Вы писали раньше:
PHP
1
2
3
4
if ($user['network'] != 'vkontakte') 
{
    // Код
}
0
Rva4
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
25.06.2016, 08:52  [ТС] 3
Raisin Zn, Не помогло
0
Миниатюры
Починить повторную отправку формы в ulogin  
Rva4
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
25.06.2016, 09:15  [ТС] 4
Не из-за бд, а из-за uLogin
PHP
1
2
3
4
5
6
7
<?php
if($user['network'] != 'vkontakte'){  ?>   
    <script src="//ulogin.ru/js/ulogin.js"></script>
    <div id="uLogin" data-ulogin="display=buttons;fields=first_name,last_name,photo;hidden=;redirect_uri=http%3A%2F%2Ftest1.ru%2Fmain.php">
        <img src="vk.png" data-uloginbutton = "vkontakte"/>
    </div>
<?php } ?>
0
Raisin Zn
100 / 100 / 51
Регистрация: 19.04.2011
Сообщений: 929
25.06.2016, 15:05 5
Лучший ответ Сообщение было отмечено Rva4 как решение

Решение

Цитата Сообщение от Rva4 Посмотреть сообщение
при попытке вернуться на предыдущую страницу
Я не понял, попытка вернуться на предыдущею страницу после авторизации?
Зачем возвращаться на предыдущею страницу после регистрации?
1
Rva4
3 / 3 / 2
Регистрация: 26.01.2016
Сообщений: 229
26.06.2016, 15:57  [ТС] 6
Raisin Zn, Регистрация происходит на главной странице, но я уже добавил специальную для авторизации и регистрации, проблема решена
0
26.06.2016, 15:57
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.06.2016, 15:57

Как сделать отправку формы без перезагрузки страницы с получением ответа
Добрый день, уважаемые форумчане. В javascript и ajax разбираюсь крайне плохо и...

Убрать кнопку авторизации Ulogin
Я использую на сайте авторизацию через Ulogin , вот элемент кода: &lt;script...

Запрет на отправку
Не отрабатывает return false, и отправляет форму, в чем может быть дело? ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru