Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Расширенная регистрация пользователя.
 
 автор: nicki   (27.07.2010 в 16:03)   письмо автору
 
 

Создал приложение:- "Расширенная регистрация пользователя" - по книге М.Кузнецова - "PHP практика создания Web-сайтов". После заполнения полей формы в браузере нажимаю "Добавить" вылетает повторный пароль и обозначаются ошибки: поле "Повторный пароль" не заполнено; пароли не верны. И конечно регистрации пользователя не происходит. Если в коде задаю для pass_again - false, все ОК и все работает.

  Ответить  
 
 автор: Valick   (27.07.2010 в 16:08)   письмо автору
 
   для: nicki   (27.07.2010 в 16:03)
 

шерше ля фам... а точнее начните с контроля переменных которые приходят в обработчик

  Ответить  
 
 автор: nicki   (27.07.2010 в 16:53)   письмо автору
 
   для: Valick   (27.07.2010 в 16:08)
 

А можно подробнее? Please.

  Ответить  
 
 автор: Valick   (27.07.2010 в 17:36)   письмо автору
 
   для: nicki   (27.07.2010 в 16:53)
 

покажите форму которую отправляете на сервер (логин, пароль и подтверждение пароля)

  Ответить  
 
 автор: nicki   (27.07.2010 в 18:30)   письмо автору
 
   для: Valick   (27.07.2010 в 17:36)
 

форма регистрации пользователя:

  Ответить  
 
 автор: Valick   (27.07.2010 в 19:00)   письмо автору
 
   для: nicki   (27.07.2010 в 18:30)
 

HTML код нужен :)

[поправлено модератором]

  Ответить  
 
 автор: nicki   (27.07.2010 в 19:17)   письмо автору
4.1 Кб
 
   для: Valick   (27.07.2010 в 19:00)
 

Ну извини. Код в PHP:

  Ответить  
 
 автор: oliss   (27.07.2010 в 19:24)   письмо автору
 
   для: nicki   (27.07.2010 в 19:17)
 

так посмотрите что у вас находится в
$form->fields['pass']->value 
 $form->fields['pass_again']->value

при введении в поля одинаковых значений


а имена полей формы pass и pass_again ?

  Ответить  
 
 автор: Valick   (27.07.2010 в 19:39)   письмо автору
 
   для: nicki   (27.07.2010 в 19:17)
 

напишите перед
    // Проверяем идентичность паролей

вот так
echo $form->fields['pass']->value;
echo $form->fields['pass_again']->value;
    // Проверяем идентичность паролей

  Ответить  
 
 автор: nicki   (27.07.2010 в 20:46)   письмо автору
62.6 Кб
 
   для: Valick   (27.07.2010 в 19:39)
 

Посмотрите что получилось.

  Ответить  
 
 автор: nicki   (27.07.2010 в 20:50)   письмо автору
3.5 Кб
 
   для: nicki   (27.07.2010 в 20:46)
 

Посмотрите этот файл

  Ответить  
 
 автор: nicki   (27.07.2010 в 20:51)   письмо автору
5.5 Кб
 
   для: nicki   (27.07.2010 в 20:50)
 

И еще один.

  Ответить  
 
 автор: oliss   (27.07.2010 в 22:08)   письмо автору
 
   для: nicki   (27.07.2010 в 20:51)
 

Молодой человек, надо не просить кого то куда то посмотреть, а самому чуть напрячься и разобраться .
ведь вам конкретно подсказали в чем могут быть проблемы и что вы сделали?

  Ответить  
 
 автор: nicki   (28.07.2010 в 12:43)   письмо автору
 
   для: oliss   (27.07.2010 в 22:08)
 

Я ведь и сделал, как подсказали. Но результат сложно объяснить на словах, как говорится лучше один раз увидеть. Если будет понятно, то результат такой - после нажатия "Добавить" "повторный пароль" улетел в начало строки-предупреждения об ошибке и это выглядит так:
2345Поле "Повтор пароля" не заполнено
Пароли не равны
где, 2345 - это вводимый мной пароль.
Нагляднее в прикрепленных файликах: 845,4Кб (это .bmp) и 62,6Кб (это .jpeg)

  Ответить  
 
 автор: Valick   (28.07.2010 в 13:00)   письмо автору
 
   для: nicki   (28.07.2010 в 12:43)
 

там должно быть два одинаковых пароля 23452345 -вот так.
а то что у Вас поле пароля остается заполненным (да еще и не скрыто точками), а поле повторного пароля очищается после редиректа, это подозрительно
нужно было сразу это сделать но ктож знал...
поправте вот так:
echo "Парроль: ".$form->fields['pass']->value."<br />"; 
echo "Повторный пароль: ".$form->fields['pass_again']->value."<br />"; 
    // Проверяем идентичность паролей 

  Ответить  
 
 автор: nicki   (28.07.2010 в 13:55)   письмо автору
 
   для: Valick   (28.07.2010 в 13:00)
 

Теперь при заполнении полей паролями и нажатии "Добавить" - вверху формы над сообщениями об ошибках выводится:
Пароль: 2345
Повторный пароль:
Все остальное остается по прежнему.
Переход на отображение паролей в виде точек результата не меняет.

  Ответить  
 
 автор: Valick   (28.07.2010 в 14:25)   письмо автору
 
   для: nicki   (28.07.2010 в 13:55)
 

попробуй тут:
     $pass_again = new field_text("pass_again",
                                    "Повтор пароля",
                                    true,
                                    $_POST['pass_again']);

и тут:
    // Проверяем идентичность паролей
    if($form->fields['pass']->value !=
    $form->fields['pass_again']->value)


в текстовом редакторе стереть pass_again и забить его руками

  Ответить  
 
 автор: nicki   (28.07.2010 в 16:59)   письмо автору
 
   для: Valick   (28.07.2010 в 14:25)
 

Valick ну ни как. Перебрал код вручную в трех местах, используя Notepad и WordPad. Результат тот-же. Я эту страницу в книге уже в дыры истер - все как написано. В чем же прикол.

  Ответить  
 
 автор: Valick   (28.07.2010 в 17:50)   письмо автору
 
   для: nicki   (28.07.2010 в 16:59)
 

попробуйте написать так:
/////////////////////////////////////////////
// 2. Обработка HTML- формы
/////////////////////////////////////////////
if(!empty($_POST))
{
echo "<PRE>";
print_r($_POST);
echo "</PRE>";
    // Устанавливаем соединение с базой данных
    require_once("config/config.php");

  Ответить  
 
 автор: oliss   (28.07.2010 в 18:03)   письмо автору
 
   для: Valick   (28.07.2010 в 17:50)
 

Скорее всего у тс проблема с нтмл кодом самой формы тип полей паролей и их имена

  Ответить  
 
 автор: Valick   (28.07.2010 в 18:10)   письмо автору
 
   для: oliss   (28.07.2010 в 18:03)
 

дык я начал с середины, чтоб знать в какую сторону "грести"

  Ответить  
 
 автор: oliss   (28.07.2010 в 18:05)   письмо автору
 
   для: nicki   (28.07.2010 в 16:59)
 

Покажите ваш нтмл код формы который отображает браузер

  Ответить  
 
 автор: nicki   (28.07.2010 в 20:02)   письмо автору
80.9 Кб
 
   для: oliss   (28.07.2010 в 18:05)
 

Посмотрите, что получилось- рис3. Класс формы в PHP- файлик выше- 5.5Кб

  Ответить  
 
 автор: Valick   (28.07.2010 в 20:09)   письмо автору
 
   для: nicki   (28.07.2010 в 20:02)
 

советую Вам отложить до поры до времени эту книгу и если хотите что-то знать и уметь начать учиться.
Я лично не смогу Вам помочь, пока Вы не будете знать базовых понятий веб-программирования.
Вам приходиться на пальцах объяснять элементарные понятия.
Ну какой нафиг класс формы, когда Вас попросили скопировать результат работы этого класса, то бишь то, что отображается в браузере.
Не с той книги Вы начали обучение.

  Ответить  
 
 автор: Лена   (28.07.2010 в 21:18)   письмо автору
 
   для: nicki   (28.07.2010 в 20:02)
 

Странно, судя по коду, поле повтора пароля у вас должно называться pass_again, а на сервер приходит, судя по последней картинке passiagain.
У вас вот это passiagain, похоже, и прописано в html-форме. Исправляйте name в поле повторного ввода пароля.

  Ответить  
 
 автор: Valick   (28.07.2010 в 21:46)   письмо автору
 
   для: Лена   (28.07.2010 в 21:18)
 

это пол беды... почему там жирные точки вместо пароля?

  Ответить  
 
 автор: Лена   (28.07.2010 в 21:48)   письмо автору
 
   для: Valick   (28.07.2010 в 21:46)
 

он их от безнадеги сам нарисовал :)
Вообще-то мутная какая-то история... Может, он там в исходном коде что-то свое втулил, мы же не знаем...
Я думаю, в первую очередь html-код формы надо было смотреть, что там методы класса выводят на самом деле...

  Ответить  
 
 автор: sms-send   (28.07.2010 в 21:50)   письмо автору
 
   для: Лена   (28.07.2010 в 21:18)
 

Это ошибка в SoftTime FrameWork http://softtime.ru/forum/read.php?id_forum=1&id_theme=74730, не знаю почему тему проигнорили.

Файл class.field.php, метод encodestring, не ясно зачем там вообще заменяется символ "_" и каким образом он относится к русскому языку.

  Ответить  
 
 автор: Лена   (28.07.2010 в 22:02)   письмо автору
 
   для: sms-send   (28.07.2010 в 21:50)
 

я с этим фреймворком не знакома :) но то, что лишнее, согласна.

  Ответить  
 
 автор: sms-send   (28.07.2010 в 22:12)   письмо автору
 
   для: nicki   (27.07.2010 в 16:03)
 

В файле class.field.php в самом конце вот этот фрагмент:
      // Сначала заменяем "односимвольные" фонемы.
      $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
      "abvgdeeziyklmnoprstufh'iei");
      $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
      "ABVGDEEZIYKLMNOPRSTUFH'IEI");

замените на такой:
      // Сначала заменяем "односимвольные" фонемы.
      $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ",
      "abvgdeeziyklmnoprstufh'ie");
      $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ",
      "ABVGDEEZIYKLMNOPRSTUFH'IE");

  Ответить  
 
 автор: nicki   (29.07.2010 в 10:51)   письмо автору
 
   для: sms-send   (28.07.2010 в 22:12)
 

Ура-а-а-а-а! Заработало! Но есть НО:
1. Вернулся к истокам своего "проекта"
2. Внес изменения в class.field.php - проверяю - не работает, но теперь точки в поле "Повторный пароль" не исчезают, а их кол-во увеличивается раз в пять. Если же пароль выводить видимым текстом, то все работает.
3. Возвращаюсь назад и делаю изменения в этом файле но только в русском транскрипте. т.е:
// Сначала заменяем "односимвольные" фонемы.
$st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ",
"abvgdeeziyklmnoprstufh'iei");
$st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ",
"ABVGDEEZIYKLMNOPRSTUFH'IEI");
Вот теперь все ОК!

SMS-SEND благодарю Вас персонально! Я угробил уже часов 100.
Всем большое спасибо за участие.

"Valick"- обидно, что ты не увидел то что отображает браузер. Другие, судя по ответам, смогли это сделать в прикрепленном файлике. Я чайник- иначе я не зашел бы на форум. Наверняка очень многие из задающих вопросы здесь относятся к этой категории. Будьте к нам лояльными господа.

Всем удачи и до скорой встречи на форуме.

  Ответить  
 
 автор: Valick   (29.07.2010 в 10:55)   письмо автору
 
   для: nicki   (29.07.2010 в 10:51)
 

я увидел картинку, а мне нужен был HTML код из браузера.
и я ни в коем случае не хотел ни кого обижать
Я чайник- иначе я не зашел бы на форум
ну а я про что? я же Вам сказал, что не стой книги начали обучение, начинать нужно не с практики а с теории.
Будьте к нам лояльными господа.
речь не о лояльности, а о том что Вы не понимаете что Вас просят сделать.
Я Вам говорю, что нужно сделать для того что бы Вы понимали.... а вам обидно, как прикажете быть? :)
sms-send, дал вам готовое решение проблемы (правда возникла еще одна и по аналогии Вы будете ждать такого же готового решения)
я об этой ошибке кода не знал, и хотел найти её с Вами вместе, и показать как нужно отлавливать ошибки подобного рода.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования