Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамические данные на странице, меню админа. Что сделать с юзером >Форма 
:(
    Опции темы
Strafer
Дата 29.1.2010, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



День добрый подскажите как правильно расположить. Проблема следующая

На странице в меню есть пунк "администрирование". Выглядит он так
Код

<FORM action="<?php $_SERVER['PHP_SELF']?>" method="POST" enctype="multipart/form-data">
<?php
    $op = $_POST['op'];
    switch ($op):
    case "useradd":
        useradd();
        break;
    default:
        adminmenu();
    endswitch;
?>
<INPUT type="submit" name="send" value="Отправить">
</FORM>

Тобишь по умолчанию я вижу следующее
Код

function adminmenu()
{
echo "<INPUT type=\"radio\" name=\"op\" value=\"useradd\">Создание пользователя<br>";
echo "<INPUT type=\"radio\" name=\"op\" value=\"chngpasswd\">Смена пороля пользователя<br>";
echo "<INPUT type=\"radio\" name=\"op\" value=\"chnglogin\">Смена логина пользователя<br>";
echo "<INPUT type=\"radio\" name=\"op\" value=\"chngfio\">Смена ФИО пользователя<br>";
}

в случае выбора первого пункта меню нажимаю Отправить
выводит следующее
Код

function useradd()
{
echo "Введите логин<INPUT type=\"text\" name=\"login\" size=\"20\"><br>";
echo "Введите пароль<INPUT type=\"password\" name=\"passwd\"><br>";
echo "Пароль еще раз<INPUT type=\"password\" name=\"passwd1\"><br>";
echo "Введите ФИО<INPUT type=\"text\" name=\"fio\"><br>";
}

далее когда заполняю поля мне надо создать пользователя в БД и вернутся на выбор действий. Возврат на первое меню происходит, но как видно пользователь не создаётся. Вопрос куда вставить код добавления пользователя?
Код имеет следующий сокращённый вид(проверки различные из него выброшены)
Код

$login = $_POST['login'];
$paswd = $_POST['passwd'];
$fio = $_POST['fio'];
$stmt = "INSERT INTO users (LOGIN, PASSWD, FULLNAME, BLOCKED, ADMINS) VALUES ('$login', '$passwd', '$fio', 0, 0)";


PM MAIL ICQ   Вверх
s0lman
Дата 29.1.2010, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и лохматый
**


Профиль
Группа: Участник
Сообщений: 637
Регистрация: 1.11.2007
Где: Ukraine

Репутация: 9
Всего: 29



Цитата(Strafer @  29.1.2010,  16:29 Найти цитируемый пост)
куда вставить код добавления пользователя?

Он должен быть в скрипте-обработчике фомы. В данном случае это 
Цитата(Strafer @  29.1.2010,  16:29 Найти цитируемый пост)
$_SERVER['PHP_SELF']

то есть данные обрабатываются в этом же скрипте.


Цитата(Strafer @  29.1.2010,  16:29 Найти цитируемый пост)
function useradd()
{
echo "Введите логин<INPUT type=\"text\" name=\"login\" size=\"20\"><br>";
echo "Введите пароль<INPUT type=\"password\" name=\"passwd\"><br>";
echo "Пароль еще раз<INPUT type=\"password\" name=\"passwd1\"><br>";
echo "Введите ФИО<INPUT type=\"text\" name=\"fio\"><br>";
}

если припустить, что ниже идет строка
Код

<input type="submit" name="user_add" />

то вполне подойдет конструкция 
Код

if(isset($_POST['user_add']))
{
    $login = $_POST['login'];
    $paswd = $_POST['passwd'];
    $fio = $_POST['fio'];
    $stmt = "INSERT INTO users (LOGIN, PASSWD, FULLNAME, BLOCKED, ADMINS) VALUES ('$login', '$passwd', '$fio', 0, 0)";
}



--------------------
Когда я уже выучусь на волшебника? :(
PM   Вверх
Ипатьев
Дата 29.1.2010, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



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

и я не вижу в коде корректного искейпинга данных для SQL запроса.
PM MAIL   Вверх
Strafer
Дата 1.2.2010, 09:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



s0lman, спасибо за подсказку я сделал. Просто обработку ставил не там(надо было до switch, а внутри ) И во внутрь функций рисующих меню подобавлял каждой по sabmit, вместо одного внешнего. 

Это сообщение отредактировал(а) Strafer - 1.2.2010, 09:59
PM MAIL ICQ   Вверх
Ипатьев
Дата 1.2.2010, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(Strafer @  1.2.2010,  09:33 Найти цитируемый пост)
как определить что выполняется создание юзера или редактирование полей?

одно скрытое поле в форме решит все проблемы.
Цитата(Strafer @  1.2.2010,  09:33 Найти цитируемый пост)
Как узнать что нужно сменить

А зачем узнавать? Почему бы просто не обновить все поля? Зачем юзера грузить кучей вопросов и увсе редактировать по одному кусочку, если можно ему вывести просто форму, и пусть редактирует, что хочет?
Почему бы не посмотреть, как сделаны другие сайты, перед тем, как начинать учиться делать свой?
Я представляю, как выглядело бы редактирование профайла на этом форуме по такой схеме.

 


PM MAIL   Вверх
Strafer
Дата 1.2.2010, 10:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 29
Регистрация: 15.4.2008

Репутация: нет
Всего: нет



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

Это сообщение отредактировал(а) Strafer - 1.2.2010, 10:30
PM MAIL ICQ   Вверх
Ипатьев
Дата 1.2.2010, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



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

В чем сложность "восстановить" данные из БД? Это ведь, по сути, обычный вывод данных. Используется на любой странице по 10 раз. 

Это сообщение отредактировал(а) Ипатьев - 1.2.2010, 10:44
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1180 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.