PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (69): В начало « ... 58 59 60 61 [62] 63 64 65 66 ... » В конец

> Найдено сообщений: 1032
RickMan Отправлено: 28 Декабря, 2012 - 22:47:40 • Тема: Безопасность, рейтинг блогов! • Форум: Вопросы новичков

Ответов: 4
Просмотров: 167
jobsdata пишет:
сделать голосование раз в день с 1 ip адреса...


а как же прокси? поменял и минусуй дальше...

А если по делу... Если у тебя минусы и плюсы ставят регистрированные пользователи, то где нибудь логируй их действия, и если он поставил минус, то чтобы больше не мог ставить...
RickMan Отправлено: 28 Декабря, 2012 - 15:11:24 • Тема: Малая оптимизация скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 271
EuGen пишет:
RickMan пишет:
1) создал таблицу с столбцом smallint(3) [unsigned]

RickMan пишет:
4) увидел не 0 а 65535

EuGen пишет:
Присвоит 0 для отрицательных значений.


плохо...ибо у меня все запросы идут на отминусовывание а не на присваивание отрицательного значения...
RickMan Отправлено: 28 Декабря, 2012 - 14:42:51 • Тема: Малая оптимизация скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 271
EuGen пишет:
RickMan пишет:
Так оно? если да то тогда он не подойдет...

Не может. А почему не подойдет? Разве что-либо мешает в одном триггере сделать все нужные проверки/действия?


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

1) создал таблицу с столбцом smallint(3) [unsigned]
2) закинул туда 2
3) сделал запрос на `поле`=`поле`-3
4) увидел не 0 а 65535

вот так вот...
RickMan Отправлено: 28 Декабря, 2012 - 14:39:11 • Тема: Малая оптимизация скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 271
EuGen пишет:
RickMan пишет:
А что по поводу unsigned ?

Присвоит 0 для отрицательных значений.

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


я нашел что не может быть к 1 таблице больше чем 1 однотипных триггеров... то есть не может быть 2 триггера на инсерт в таббилцу одну и ту же..Так оно? если да то тогда он не подойдет...
RickMan Отправлено: 28 Декабря, 2012 - 14:15:52 • Тема: Малая оптимизация скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 271
EuGen пишет:
RickMan
Наиболее корректное решение - контролировать значения, попадующие в БД, на уровне приложения - поскольку БД в общем случае не может решать задачи валидации данных. В этом случае запросов делать вообще не придется - ведь в БД априрори будут попадать лишь верные с точки зрения логики приложения значения.

Если без проверки со стороны БД не обойтись, то единственным надежным вариантом я бы советовал <a href='http://dev.mysql.com/doc/refman/5.0/en//create-trigger.html'>триггер</a> (до/после вставки и до/после обновления)


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

А что по поводу unsigned ?
RickMan Отправлено: 28 Декабря, 2012 - 14:10:11 • Тема: Малая оптимизация скрипта • Форум: Вопросы новичков

Ответов: 9
Просмотров: 271
Здравствуйте, у меня есть таблица, в которой несколько столбцов... скажем t1,t2,t3,t4,t5 типа smallint(6). По логике скрипта, они не должны выходить из диапазона 0-25 ... Ну и собственно, с начале скрипта стоят вот такие вот запросы:

PHP:
скопировать код в буфер обмена
  1.  
  2. mysql_query("UPDATE `table` SET `t1` = '25' WHERE `id` = '".$_SESSION['uid']."' and t1>25");
  3. mysql_query("UPDATE `table` SET `t1` = '0' WHERE `id` = '".$_SESSION['uid']."' and t1<0");
  4.  


И так вот для каждого столбца..следовательно в начале скрипта стоит порядка 10 запросов. Как можно соптимизировать этот код и избавиться от стольких связей с базой?

У меня в голове есть вариант поставить полям значение unsigned и получается на 1 запрос станет меньше...но я не знаю последствия....что будет есть t1 равен 1 а мы туда отправляем запрос на `t1`=`t1`-2 ...что он сделает? не выполнил или присвоит 0 ?

Заранее благодарю за ответы...
RickMan Отправлено: 27 Декабря, 2012 - 20:26:00 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 3
Просмотров: 142
EuGen пишет:
PHP:
скопировать код в буфер обмена
  1. $sData='st[rin/g';
  2. preg_match('/\[(.*?)\//', $sData, $rgMatches);
  3. //var_dump($rgMatches[1]);

?


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

+ я щас посмотрел, думаю что смогу но не тут та было...а как переделать эту регулярку чтобы находило уже между / и ]
RickMan Отправлено: 27 Декабря, 2012 - 19:46:21 • Тема: Регулярные выражения • Форум: Вопросы новичков

Ответов: 3
Просмотров: 142
Здравствуйте, как вытащить из строки подстроку, которая находится между символами [ и / ...в строке такой вариант только 1, массив не нужен.. заранее благодарю...
RickMan Отправлено: 25 Декабря, 2012 - 17:54:18 • Тема: Отключение прав MYSQL на чтение и запись файлов • Форум: Вопросы новичков

Ответов: 1
Просмотров: 107
Здравствуйте,
как отключить права MYSQL на чтение и запись файлов. Слышал что это немаловажный шаг по улучшению защиты, но как его сделать? Заранее благодарю....
RickMan Отправлено: 22 Декабря, 2012 - 13:48:59 • Тема: Кнопка Copy • Форум: Вопросы новичков

Ответов: 3
Просмотров: 181
АП
RickMan Отправлено: 21 Декабря, 2012 - 08:06:37 • Тема: Кнопка Copy • Форум: Вопросы новичков

Ответов: 3
Просмотров: 181
IllusionMH пишет:
RickMan, очевидно ж createTextRange(), если потыкать по ссылкам и почитать(а дальше можно запросить и js clipboard)

Ждем реализации Clipboard API and events.


а можно подсказать как это будет? а то я так и не понял...
RickMan Отправлено: 21 Декабря, 2012 - 00:41:08 • Тема: Кнопка Copy • Форум: Вопросы новичков

Ответов: 3
Просмотров: 181
Здравствуйте, у меня есть гиппер ссылка, когда нажимаете на нее правой кнопкой, появляются кнопки, среди которых есть и кнопка Copy, назжав на нее, текст попадает в буфер обмена...

CODE (javascript):
скопировать код в буфер обмена
  1. <TEXTAREA ID="holdtext" STYLE="display:none;"></TEXTAREA><A class=menuItem HREF="javascript:ClipBoard(\''+login+'\');cMenu()">COPY</A>
  2.  
  3. function ClipBoard(text){
  4.         holdtext.innerText = text;
  5.         var Copied = holdtext.createTextRange();
  6.         Copied.execCommand("RemoveFormat");
  7.         Copied.execCommand("Copy");
  8. }
  9.  

Но эта функция не работает, в буффер обмена ничего не попадает а хром матерится и пишет:
Uncaught TypeError: Object #<HTMLTextAreaElement> has no method 'createTextRange'

В чем может быть проблема? что ему не нравится?
Заранее благодарю за ответ...
RickMan Отправлено: 18 Декабря, 2012 - 20:18:43 • Тема: Фоновая проверка • Форум: JavaScript & VBScript

Ответов: 1
Просмотров: 688
Здравствуйте,
Как можно реализовать следующий скрипт который фоново, проверяет, есть ли в таблице trades запись с его айди, которое хранится в сессии, и если есть, то на экран выводит окно... html скрипт окна есть, тут скорее нужна та часть, которая проверяет на наличие в БД!

БД: MYSQL
Скрипт окна:
CODE (javascript):
скопировать код в буфер обмена
  1. function dialogconfirm(title, script, text, mtype) {
  2.         var s;
  3.  
  4.         s='<table border=0 width=100% cellspacing="0" cellpadding="2"><tr><form action="'+script+'" method=POST name=slform><td colspan=2>'+
  5.         text+'</TD></TR><TR><TD width=50% align=left><INPUT TYPE="button" name="tmpname423" value="Да" style="width:70%" onclick="if (!top.is_qlaunch) { slform.submit(); } else { top.QLaunchQuery(slform.use.value); closehint3(); } "></TD><TD width=50% align=right><INPUT type=button style="width:70%" value="Нет" onclick="closehint3();"></TD></TR></FORM></TABLE>';
  6.  
  7.         s = crtmagic(mtype, title, s);
  8.         document.all("hint3").innerHTML = s;
  9.  
  10.         document.all("hint3").style.visibility = "visible";
  11.         document.all("hint3").style.left = 200;
  12.         document.all("hint3").style.top = 100;
  13.         document.all("tmpname423").focus();
  14.         Hint3Name = name;
  15. }


Заранее благодарю...
RickMan Отправлено: 15 Декабря, 2012 - 22:05:36 • Тема: Отличие в плане безопасности • Форум: Вопросы новичков

Ответов: 20
Просмотров: 566
dubasua пишет:
RickMan, на самом деле все очень просто, просто нельзя напрямую подставлять такие переменные сразу в запрос, ведь переменную нужно сначала проверить, почистить и тдт, а какой смысл делать вот так $_POST['var'] = trim($_POST['var']); Это же не удобно. Даже взять ваш пример
RickMan пишет:
mysql_query("UPDATE `table` SET `var`='".$_POST['var']."'   ");

А если в вашей переменой есть кавычка? Вот вам и пишут что так нельзя, и это к стати только php из строки 55 сам вам переделает в число при необходимости, я к тому что в любом POST или GET всегда приедет строка.


во, спасибо за толковое объяснение))
RickMan Отправлено: 15 Декабря, 2012 - 21:51:48 • Тема: Отличие в плане безопасности • Форум: Вопросы новичков

Ответов: 20
Просмотров: 566
LIME пишет:
ндааа...как ламерский вопрос колыхнул обчественость))


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

Страниц (69): В начало « ... 58 59 60 61 [62] 63 64 65 66 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB