Изменить логин в сервисной связке

Технические вопросы по UTM 5.0
Ответить
sveter
Сообщения: 13
Зарегистрирован: Сб ноя 12, 2011 07:36

Изменить логин в сервисной связке

Сообщение sveter »

Есть запрос показывает пользователей с блокировкой если логин в сервисной связке не начинается с N
Код:

Код: Выделить всё

SELECT u.id AS uid, ig.uname, inet_ntoa(ig.ip) 
FROM users u, 
 service_links sl, 
 iptraffic_service_links isl, 
 ip_groups ig, 
 accounts a 
WHERE u.id=sl.user_id 
 AND u.basic_account=a.id 
 AND a.is_blocked != 0
 AND LEFT(ig.uname,2) != "Nn"
 AND LEFT(ig.uname,2) != "Ng" 
 AND isl.id=sl.id 
 AND isl.ip_group_id=ig.ip_group_id 
 AND ig.is_deleted=0 
 AND u.is_deleted=0 
 AND sl.is_deleted=0 ORDER BY u.id;
как этим пользователям добавить в начало логина в сервисной связке N используя SQL

maxxsoft
Сообщения: 125
Зарегистрирован: Пт янв 18, 2013 09:23

Сообщение maxxsoft »

используя URFA (Urfa-php).
потому как при прямой инъекции в базу новых логинов потребуется перезапуск ядра и радиуса,но если уж очень хочется.....
то как то так..

n.php

Код: Выделить всё

<?php
@header &#40; 'Content-Type&#58; text/html; charset=UTF-8'&#41;;
$link = mysql_connect&#40;"localhost","root","вашпароль"&#41;;
mysql_select_db&#40;"UTM5",$link&#41;;
mysql_query&#40;"SET NAMES utf8"&#41;;

$res = mysql_query&#40;"
SELECT
ig.id,
ig.uname,
inet_ntoa&#40;ig.ip&#41;
FROM
users u,
service_links sl,                                      
iptraffic_service_links isl,                           
ip_groups ig,                                          
accounts a                                             
WHERE                                                  
u.id=sl.user_id                                        
AND u.basic_account=a.id                               
AND a.block_id !=0
AND ig.uname NOT REGEXP '^N'
AND isl.id=sl.id
AND isl.ip_group_id=ig.ip_group_id
AND ig.is_deleted=0
AND u.is_deleted=0
AND sl.is_deleted=0
ORDER BY u.id;"&#41;;

echo "<table width='100%' border=1><thead><tr><th>ID</th><th>login</th><th>IP</th></tr></thead><tbody>";
while&#40;list&#40;$id,$uname,$ip&#41; = mysql_fetch_row&#40;$res&#41;&#41;
&#123;
echo "<tr><td>$id</td><td>$uname</td><td>$ip</td></tr>";
mysql_query&#40;"UPDATE `ip_groups` SET `uname`='N$uname' WHERE `id`='$id'"&#41;;
&#125;
echo "</tbody></table>";
?>
Я немного изменил запрос выведя селект id сервисной связки, а не id.users, так как именно с сервисными связками нам придётся работать.
также я сменил условие фильтра признака блокировки, так как предложенный устарел, ну и наконец изменил условие по фильтру названия логина, так как предложенный некорректно отрабатывался.

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

ЗЫ
правильней было бы задать вопрос в профильном топике, не засоряя форум...
несколько полезных SQL запросов

sveter
Сообщения: 13
Зарегистрирован: Сб ноя 12, 2011 07:36

Сообщение sveter »

Спасибо! Очень помогли.

Ответить