ERET1K: Комментарии

Главные вкладки

10 ноября 2015 в 11:49

Во всяком случае благодарю пользователя graker за помощь
Первый кусок модуля Я сделал.

Функция проверки выглядит так:

<?php
function first_form_validate($form, &$form_state)
{
if (!((bool) db_select('users')->fields('users', array('uid'))->condition('name', db_like($form_state['values']['name']), 'LIKE')->range(0, 1)->execute()->fetchField()))
{
form_set_error('name', t('Database is not have your User Name.', array('%name' => $form_state['values']['name'])));
}
}
?>

10 ноября 2015 в 11:49

сработало, ошибки больше нет! ещё раз спасибо!

вот так только: if (isset($account->status) && $account->status == 1)

[img]http://www.drupal.ru/files/snimok_ekrana_2013-09-02_v_22.45.15.png[/img]

10 ноября 2015 в 11:49

вроде до кое чего допер
добалил в оглавление функции $account

<?php
function first_form_validate($form, &$form_state, $account)
{
if ((bool) db_select('users')->fields('users', array('uid'))->condition('uid', $account->uid, '<>')->condition('name', db_like($form_state['values']['name']), 'LIKE')->range(0, 1)->execute()->fetchField())
{
form_set_error('name', t('The name %name is already taken.', array('%name' => $form_state['values']['name'])));
}
}
?>

10 ноября 2015 в 11:49

Читая все что попадется в гугле нашел как получить объект по его id примерно прикинул что к чему написал исключительно методом тыка такой код:
<?php
/**
* Function for unblocking users.
*/
function pay_activation_user_operations_unblock($form_state)
{
$account = db_query("SELECT * FROM {users} WHERE name = :name", array(':name' => $form_state['values']['name']))->fetchObject();

10 ноября 2015 в 11:49

"Niklan" wrote:
Безопасность сводится на нет. Если база с md5 еще небольшая, проще её под друпал заточить чем друпал под неё.

понимаешь, не вопрос Я бы не копался в друпале если бы была возможность.
у мея есть perl скрипт авторизации в котором можно разрешить использование md5 если перепишешь его под sha512 Я буду благодарен!

10 ноября 2015 в 11:49

Прикрепляю код.

status - столбец базы mysql, который находиться в таблице users, этот столбец определяет заблокирован пользователь или нет.
1- активный
0-заблокирован

получается что программа проверяет заблокирован этот пользователь или нет, а ошибка потому что пользователя гость в базе данных не существует.))

+ картинка как выглядит столбец статус
[img]http://content-2.foto.mail.ru/mail/dmitrybarynov/_answers/s-944.jpg[/img]

6 сентября 2013 в 21:41

Chyvakoff Я не хочу разводить в теме холиваров.
Но вам отвечу, дабы некого не вводить в заблуждение. Я не программист php и не дурачек который сам не знает что делает, Я просто Человек который хочет научиться, а вам бы стоило указать что нужная мне функция лежит у меня под носом под названием user_save(), Хорошо что есть нормальные форумчане которые готовы помочь. Им Я беспредельно благодарен.

6 сентября 2013 в 0:45

Кое что нашел. Может кто что скажет? то ли это?
функция из стандартного модуля user:
<?php
/**
* Callback function for admin mass unblocking users.
*/
function user_user_operations_unblock($accounts) {
$accounts = user_load_multiple($accounts);
foreach ($accounts as $account) {
// Skip unblocking user if they are already unblocked.
if ($account !== FALSE && $account->status == 0) {
user_save($account, array('status' => 1));
}
}
}
?>

6 сентября 2013 в 0:28

Эх, А по теме у когото есть что посоветовать?
Всеравно что: статью, пример кода, ... ?

P.S.
grob.82 сомневаюсь что для того чтоб обатиться к базе, таблице users и столбцу status по средством php нужен программист!
Быстрее нужно чтоб программист ответил как туда обратиться. Или какой хук использует стандартный модуль user.

5 сентября 2013 в 20:10

graker wrote:
Было бы здорово параллельно с бездумным копированием кода понемногу учить php.

Не надо $account добавлять ни в какое "оглавление" функции. Этого объекта там нет, его никто ниоткуда не передает. Надо просто убрать condition, в котором используется объект $account.

5 сентября 2013 в 16:30

попрбовал тот вариант что подсказал gedeon
всунул вместо последней функции
эту
<?php
function first_form_validate(&$form, &$form_state)
{
$name = $form_state['values']['name'];
if (!db_result(db_query("SELECT COUNT(*) FROM {users} WHERE name = '%s';", $name))) // это у меня строка 52
{
// User doesn't exist
form_set_error("name", $form_state['values']['name'] . "Database is not have your User Name");
}
}
?>

результат: ошибка на линии 52

2 сентября 2013 в 23:28

Ну потому что пытается получить статус пользователя гость. Но ведь пользователя гость в таблице users нет!
На всех других зарегистрированных пользователях никакой ошибки нет. И страница успешно выводиться.

2 сентября 2013 в 23:16

))) ну ведь работает!
не веришь могу кинуть свой ip в личку.

P.S. Я и ещё один мой друг рылись в ядре (сайт временно в режиме зомби Lol и как Я понимаю все обращения $account->"тут имя столбца" приводят к базе данных, таблице users и соответственно заданному столбцу.

2 сентября 2013 в 18:35

Да все таки Я прав, навести в теме холивара это вы Сразу! Интересно чем занимаются модераторы? если они вообще есть!

Уважаемый мистер Niklan Я переведу любой англоязычный текст, но если меня ткнуть в него рожей Я буду очень благодарен! А искать в мануалах которые мне выдаст гугл Я буду значительно дольше!

2 сентября 2013 в 16:24

Удивительно насколько ленивые здесь люди. Интересно вы всем так отвечаете?!
Зчем вообще отвечать если толку от этого ровным счетом 0!

Понимаете Я не заканчивал ИНЯЗ! И английский знаю на довольно низком уровне! И в следствии этого прошу опишите!

И больших знаний в программировании у меня нет! Так как опять же Я не учился в ВУЗе на прогера! Единственное что могу себе позволить на зарплату токаря: это курсы по C++ и то только четыре занятия в месяц!

31 августа 2013 в 21:52

gedeon wrote:
хорошо, тогда так: да на этот адрес можно принимать письма, если он рабочий, реальный (я принимаю).

вот теперь понятно. Хорошо. а каким способом сайт эту почту отправляет, через чей сервер?

дело вот в чем сайт будет содержать информацию и предоставлять услугу которую можно при желании причислить к пособничеству нарушению авторских прав.

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

31 августа 2013 в 19:47

gedeon wrote:
как я понимаю емаил просто пишется, тот что ты заполнил, а отправка идет c сервера хостинга - *******@gmail.com via shiva.vps-private.net. а принимать можно, т.к. когда реплай, то вставляется наш емаил, что указывали

не единого слова не понял из того что вы написали.

31 августа 2013 в 19:00

Niklan wrote:
Открыть почту и отправлять.

просто предел! мозговой деятельности!
Я бы сейчас выматерился! честно!

Адрес электронной почты который Я ввел, не привязан к какому либо сервису! но письма с него приходят! минут через 20.

Я так чувствую мне прийдется делать почтовый сервер….

31 августа 2013 в 13:10

решил проблему хвала аллаху! знаю Си!

насколько это глупо незнаю но работает!

добавил в функцию
function user_check_password($password, $account)
{
$password = md5($password);
if (substr($account->pass, 0, 32) == $password)
{
return TRUE;
}
else
{
return FALSE;
}
}

осмелюсь предположить это самый глупый выход. )))