|
|
|
| Создал приложение:- "Расширенная регистрация пользователя" - по книге М.Кузнецова - "PHP практика создания Web-сайтов". После заполнения полей формы в браузере нажимаю "Добавить" вылетает повторный пароль и обозначаются ошибки: поле "Повторный пароль" не заполнено; пароли не верны. И конечно регистрации пользователя не происходит. Если в коде задаю для pass_again - false, все ОК и все работает. | |
|
|
|
|
|
|
|
для: nicki
(27.07.2010 в 16:03)
| | шерше ля фам... а точнее начните с контроля переменных которые приходят в обработчик | |
|
|
|
|
|
|
|
для: Valick
(27.07.2010 в 16:08)
| | А можно подробнее? Please. | |
|
|
|
|
|
|
|
для: nicki
(27.07.2010 в 16:53)
| | покажите форму которую отправляете на сервер (логин, пароль и подтверждение пароля) | |
|
|
|
|
|
|
|
для: Valick
(27.07.2010 в 17:36)
| | форма регистрации пользователя: | |
|
|
|
|
|
|
|
для: nicki
(27.07.2010 в 18:30)
| | HTML код нужен :)
[поправлено модератором] | |
|
|
|
|
 4.1 Кб |
|
|
для: Valick
(27.07.2010 в 19:00)
| | Ну извини. Код в PHP: | |
|
|
|
|
|
|
|
для: nicki
(27.07.2010 в 19:17)
| | так посмотрите что у вас находится в
$form->fields['pass']->value
$form->fields['pass_again']->value
|
при введении в поля одинаковых значений
а имена полей формы pass и pass_again ? | |
|
|
|
|
|
|
|
для: nicki
(27.07.2010 в 19:17)
| | напишите перед
// Проверяем идентичность паролей
|
вот так
echo $form->fields['pass']->value;
echo $form->fields['pass_again']->value;
// Проверяем идентичность паролей
|
| |
|
|
|
|
 62.6 Кб |
|
|
для: Valick
(27.07.2010 в 19:39)
| | Посмотрите что получилось. | |
|
|
|
|
 3.5 Кб |
|
|
для: nicki
(27.07.2010 в 20:46)
| | Посмотрите этот файл | |
|
|
|
|
 5.5 Кб |
|
|
для: nicki
(27.07.2010 в 20:50)
| | И еще один. | |
|
|
|
|
|
|
|
для: nicki
(27.07.2010 в 20:51)
| | Молодой человек, надо не просить кого то куда то посмотреть, а самому чуть напрячься и разобраться .
ведь вам конкретно подсказали в чем могут быть проблемы и что вы сделали? | |
|
|
|
|
|
|
|
для: oliss
(27.07.2010 в 22:08)
| | Я ведь и сделал, как подсказали. Но результат сложно объяснить на словах, как говорится лучше один раз увидеть. Если будет понятно, то результат такой - после нажатия "Добавить" "повторный пароль" улетел в начало строки-предупреждения об ошибке и это выглядит так:
2345Поле "Повтор пароля" не заполнено
Пароли не равны
где, 2345 - это вводимый мной пароль.
Нагляднее в прикрепленных файликах: 845,4Кб (это .bmp) и 62,6Кб (это .jpeg) | |
|
|
|
|
|
|
|
для: nicki
(28.07.2010 в 12:43)
| | там должно быть два одинаковых пароля 23452345 -вот так.
а то что у Вас поле пароля остается заполненным (да еще и не скрыто точками), а поле повторного пароля очищается после редиректа, это подозрительно
нужно было сразу это сделать но ктож знал...
поправте вот так:
echo "Парроль: ".$form->fields['pass']->value."<br />";
echo "Повторный пароль: ".$form->fields['pass_again']->value."<br />";
// Проверяем идентичность паролей
|
| |
|
|
|
|
|
|
|
для: Valick
(28.07.2010 в 13:00)
| | Теперь при заполнении полей паролями и нажатии "Добавить" - вверху формы над сообщениями об ошибках выводится:
Пароль: 2345
Повторный пароль:
Все остальное остается по прежнему.
Переход на отображение паролей в виде точек результата не меняет. | |
|
|
|
|
|
|
|
для: 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 и забить его руками | |
|
|
|
|
|
|
|
для: Valick
(28.07.2010 в 14:25)
| | Valick ну ни как. Перебрал код вручную в трех местах, используя Notepad и WordPad. Результат тот-же. Я эту страницу в книге уже в дыры истер - все как написано. В чем же прикол. | |
|
|
|
|
|
|
|
для: nicki
(28.07.2010 в 16:59)
| | попробуйте написать так:
/////////////////////////////////////////////
// 2. Обработка HTML- формы
/////////////////////////////////////////////
if(!empty($_POST))
{
echo "<PRE>";
print_r($_POST);
echo "</PRE>";
// Устанавливаем соединение с базой данных
require_once("config/config.php");
|
| |
|
|
|
|
|
|
|
для: Valick
(28.07.2010 в 17:50)
| | Скорее всего у тс проблема с нтмл кодом самой формы тип полей паролей и их имена | |
|
|
|
|
|
|
|
для: oliss
(28.07.2010 в 18:03)
| | дык я начал с середины, чтоб знать в какую сторону "грести" | |
|
|
|
|
|
|
|
для: nicki
(28.07.2010 в 16:59)
| | Покажите ваш нтмл код формы который отображает браузер | |
|
|
|
|
 80.9 Кб |
|
|
для: oliss
(28.07.2010 в 18:05)
| | Посмотрите, что получилось- рис3. Класс формы в PHP- файлик выше- 5.5Кб | |
|
|
|
|
|
|
|
для: nicki
(28.07.2010 в 20:02)
| | советую Вам отложить до поры до времени эту книгу и если хотите что-то знать и уметь начать учиться.
Я лично не смогу Вам помочь, пока Вы не будете знать базовых понятий веб-программирования.
Вам приходиться на пальцах объяснять элементарные понятия.
Ну какой нафиг класс формы, когда Вас попросили скопировать результат работы этого класса, то бишь то, что отображается в браузере.
Не с той книги Вы начали обучение. | |
|
|
|
|
|
|
|
для: nicki
(28.07.2010 в 20:02)
| | Странно, судя по коду, поле повтора пароля у вас должно называться pass_again, а на сервер приходит, судя по последней картинке passiagain.
У вас вот это passiagain, похоже, и прописано в html-форме. Исправляйте name в поле повторного ввода пароля. | |
|
|
|
|
|
|
|
для: Лена
(28.07.2010 в 21:18)
| | это пол беды... почему там жирные точки вместо пароля? | |
|
|
|
|
|
|
|
для: Valick
(28.07.2010 в 21:46)
| | он их от безнадеги сам нарисовал :)
Вообще-то мутная какая-то история... Может, он там в исходном коде что-то свое втулил, мы же не знаем...
Я думаю, в первую очередь html-код формы надо было смотреть, что там методы класса выводят на самом деле... | |
|
|
|
|
|
|
|
для: Лена
(28.07.2010 в 21:18)
| | Это ошибка в SoftTime FrameWork http://softtime.ru/forum/read.php?id_forum=1&id_theme=74730, не знаю почему тему проигнорили.
Файл class.field.php, метод encodestring, не ясно зачем там вообще заменяется символ "_" и каким образом он относится к русскому языку. | |
|
|
|
|
|
|
|
для: sms-send
(28.07.2010 в 21:50)
| | я с этим фреймворком не знакома :) но то, что лишнее, согласна. | |
|
|
|
|
|
|
|
для: 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");
|
| |
|
|
|
|
|
|
|
для: 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"- обидно, что ты не увидел то что отображает браузер. Другие, судя по ответам, смогли это сделать в прикрепленном файлике. Я чайник- иначе я не зашел бы на форум. Наверняка очень многие из задающих вопросы здесь относятся к этой категории. Будьте к нам лояльными господа.
Всем удачи и до скорой встречи на форуме. | |
|
|
|
|
|
|
|
для: nicki
(29.07.2010 в 10:51)
| | я увидел картинку, а мне нужен был HTML код из браузера.
и я ни в коем случае не хотел ни кого обижать
Я чайник- иначе я не зашел бы на форум
ну а я про что? я же Вам сказал, что не стой книги начали обучение, начинать нужно не с практики а с теории.
Будьте к нам лояльными господа.
речь не о лояльности, а о том что Вы не понимаете что Вас просят сделать.
Я Вам говорю, что нужно сделать для того что бы Вы понимали.... а вам обидно, как прикажете быть? :)
sms-send, дал вам готовое решение проблемы (правда возникла еще одна и по аналогии Вы будете ждать такого же готового решения)
я об этой ошибке кода не знал, и хотел найти её с Вами вместе, и показать как нужно отлавливать ошибки подобного рода. | |
|
|
|