За последние 24 часа нас посетили 38718 программистов и 1742 робота. Сейчас ищут 867 программистов ...

Проблема с регистрацией

Тема в разделе "PHP для новичков", создана пользователем gix, 19 дек 2014.

  1. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Вообщем хочу сделать регистрацию со следущим алгоритмом-юзер ввел данные в форму, если данные введены корректно ему на почту отправляется код, далее загружается форма для ввода кода, я ввожу код в поле, далее если он совпадает с тем кодом который мне пришел на почту то загружается что-то..... Вот, программа не работает на этапе когда я отправляю форму с введенным кодом для валидации. Вместо того чтобы написать все ок, меня выкидывает но форму регистрации. Пробовал всевозможные варианты и нихрена( Может кто подскажет по делу что не так.
    Код (Text):
    1.  
    2. if($this->form_validation->run()==false)
    3.         {
    4.             $this->load->view('registration');
    5.         }
    6.         else
    7.         {
    8.             $mail=$this->input->post('email');
    9.             $code=rand(100,999);
    10.             mail($mail,'код авторизации',$code);
    11.             $this->load->view('check_box');
    12.             if(isset($_POST['check']))//если нажата кнопка отправки формы с введенным кодом
    13.             {
    14.                 $data=$_POST['code'];//поле в которое ввожу код
    15.                 echo $data==$code?'все ок':'все херово';
    16.             }
    17.         }
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    А что говорит о валидации документация framework'а который ты используешь?
    Может не все условия выполняешь, перепроверь.
     
  3. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Да не,с правилами валидации вск норм и если к примеру не загружать отдельную форму для ввода кода а сразу писать данные из формы регистрации в бд,то все работает. Я раз 100 просматривал код,алгоритм прохода программы,вроде ж все просто но что то не работает
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Если я правильно получаю информацию из телепатического поля(нет всего кода), то чтобы запустить if(isset($_POST['check'])) тебе нужно отправить данные для регистрации + код проверки (одновременно), тут ошибка в логике.
    Попробуй код проверки проверять на другой странице.
     
  5. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Уточню- пост чек это уже кнопка отправки формы с кодом которая отдельно грузится после того как форму регистрации отправлена
     
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    И что она грузится? Главное что она грузится после отправки регистрации и чтобы отправить код нужно опять отправить форму регистрации + код проверки, это как-то не логично.
     
  7. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Так никто и не делает. Я отправляю сначала форму регистрции, после загружается форма для кода, я отправляю и эту форму и тут вместо того чтобы произошло чудо,после отправки формы кода, какого то х.. грузит форму регистрации заново и скрипт дальше не идет
     
  8. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Когда ты отправляешь форму с кодом, форма с регистрацией отправляется?

    Потому что я вижу такую логику, чтобы сработала проверка кода, должна быть отправлена форма регистрации одновременно с кодом проверки.
     
  9. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Та нет) сначала я отправляю регистрацию и потом уже только грузится форма с одним полем для кода. Мне ж надо сначала с регистрации вытащить мыло и только потом уже на это мыло я отправляю код.поэтому о быть форма регистрации->форма кода->занесение данных юзера в бд, а по факту получается форма регистрации->форма кода->форма регистрации

    Добавлено спустя 1 минуту 39 секунд:
    хммм в каком участке кода это видно
     
  10. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    чтобы $reg_valid была true нужно отправить форму регистрации, когда ты отправляешь код проверки то $reg_valid = false так как форма регистрации не валидна, а не валидна так как ты её не отправляешь.
    Код (PHP):
    1. <?php
    2. $reg_valid = false;
    3. $check = true;
    4.  
    5. if($reg_valid == false)
    6. {
    7.     echo 'форма регистрации';
    8. }
    9. else
    10. {
    11.     echo 'форма отправлена';
    12.  
    13.     if($check == true)
    14.     {
    15.         echo 'принят проверочный код';
    16.     }
    17. }
    18. ?>
     
  11. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Ааа я понял о чем ты. Убирал все правила валидации но безрезультатно.

    Добавлено спустя 4 минуты 45 секунд:
    Завтра на свежую голову подумаю. Но согласен,что скорее всего надо смотерь в чторону учловий загрузки формы регистрации.Ведь я когда я нажимаю отправить форму с кодом,я прогоняю программу заново и она упирается в то что форма регистрации не определена
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Запихни это в другой action, туда сделай redicrect после mail
    Код (PHP):
    1.             $this->load->view('check_box');
    2.             if(isset($_POST['check']))//если нажата кнопка отправки формы с введенным кодом 
    3.             {
    4.                 $data=$_POST['code'];//поле в которое ввожу код
    5.                 echo $data==$code?'все ок':'все херово';
    6.             } 
     
  13. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Ага,завтра сделаю.огромное спасибо ща помощь
     
  14. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    переписал код таким макаром, и вроде все норм стало кроме одного-несмотря на то что пришлось юзать глобалс, во второй функции переменная $GLOBALS не инициализирована и мне всегда выдает ответ bad. В чем ошибка?
    Добавлено спустя 41 минуту 53 секунды:
    не работает видимо опять из за того что скрипт перезапускается. можно тогда попробовать в бд его(код) хранить что ли или кук
     
  15. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Я писал решение выше, раздели этот функционал, раз ещё не наловчился писать алгоритмы.
     
  16. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    Если честно, то я не понял совета.сделай редирект-вызвать фунуцию redirect? Action- это функция или что?! То есть в моем понимании это перекинуть на другую функцию или как?
     
  17. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    на другую страницу, или ты все действия делаешь на одной странице?
     
  18. gix

    gix Новичок

    С нами с:
    28 окт 2014
    Сообщения:
    168
    Симпатии:
    0
    на одной
     
  19. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    сделай на разных, если сложно понять логику работы программ, чтобы реализовать всё на одной