Форум сетевых администраторов
Показаны 13 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Просмотр тех новостей что были добавлены за текущий день, меяц (http://netadmin.ws/forum/showthread.php?threadid=4439)


Помещено ANDRY 21-02-2003 в 10:31:

Просмотр тех новостей что были добавлены за текущий день, меяц

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

http://localhost/mysite/category/in...month=02&day=28

если такая
http://localhost/mysite/category/in...r=2003&month=02

то толжна вывести те новости, что были добавлены за текущи месяц.

это надо я так думаю сделать специальный запрос который будет выберать из базы по указанной дате?

принцип такойже что и у скрипта pMachinePro маленький календарь

в моём скрипте
столбци в MySQL для даты у меня свои для каждой, т.е

year - год
month - месяц
day - день



вот сам календарь

__________________
Web-Zona


Помещено Nevermind 21-02-2003 в 15:19:

quote:
столбци в MySQL для даты у меня свои для каждой, т.е

year - год
month - месяц
day - день
Жуть. Зачем? Когда можно одно поле DATE создать? Потом выборку можно будет сделать одним коротким запросом.

Не надо изобретать велосипедов.


Помещено ANDRY 21-02-2003 в 16:51:

всё разобрался, через ссылку передал в

$year = $_GET['year'];
$month = $_GET['month'];
$day = $_GET['day'];

а через переменные а в запрос
year='$year' AND month='$month' AND day='$day'

quote:
Жуть. Зачем? Когда можно одно поле DATE создать? Потом выборку можно будет сделать одним коротким запросом.


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

__________________
Web-Zona


Помещено Nevermind 21-02-2003 в 22:29:

ANDRY,
На самом деле при выборке можно стандартными функциями MySQL всё в том же одном запросе разделить дату, как тебе будет угодно дабы не писать лишние килобайты php-кода.

Но вообще дело вкуса

quote:
$year = $_GET['year'];
$month = $_GET['month'];
$day = $_GET['day'];

а через переменные а в запрос
year='$year' AND month='$month' AND day='$day'
А можно и не назначать лишний раз. Опять же просто написать:

code:
year='".$_GET['year']."' AND month='".$_GET['month']."' AND day='".$_GET['day']."'


Помещено ANDRY 22-02-2003 в 04:48:

quote:
А можно и не назначать лишний раз


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

__________________
Web-Zona


Помещено Nevermind 22-02-2003 в 11:33:

ANDRY,
Я уже говорил - можно обойтись функциями MySQL. Допустим, у тебя в поле data хранится дата. Тогда запрос делается примерно так:

select * from table where MONTH(data)='".$_GET['month']."'

MONTH() - одна из date-&-time функций MySQL..


Помещено ANDRY 22-02-2003 в 15:31:

Nevermind, спасибо, на заметку, потом если буду что нибудь писать то сделаю в одном столбце.
А на этом скрипте много исправлять придётся

__________________
Web-Zona


Помещено SCHIZO 18-03-2003 в 02:24:

интересно а что если вместо числа в переменой из GET вставить что то типа 'DELETE FROM tablename...; DROP database,'..

Все что доходит до базы должно либо проверяться либо приводиться к безобидному виду (escape)

RFTM: SQL injection

__________________
FAQ OFF


Помещено rio 18-03-2003 в 04:08:

SELECT * FROM $dbtable WHERE year=$year and month = $month ORDER BY id DESC;

Вместо id поставь свой идентивикатор

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !


Помещено ANDRY 18-03-2003 в 07:27:

quote:
Все что доходит до базы должно либо проверяться либо приводиться к безобидному виду (escape)


об этом я незнал, нескажешь где можно найти доку про эту самую защиту?

__________________
Web-Zona


Помещено SCHIZO 18-03-2003 в 15:23:

Если ты знаешь что можно выбрать из базы уже можно проверить переданное значение на допустимость. Например если чисел в месяце от 1 до 31 значит в GET должна быть переменная являющаяся числом(is_int($var)), не меньше 1 и не больше 31 если она удовлетворяет этим условиям значит с переменной можно работать если нет, посылаем юзера нафик и используем свое значение по умолчанию... так же смотри в мануале ПХП все фунции со словом escape в названии..

__________________
FAQ OFF


Помещено ANDRY 19-03-2003 в 04:36:

ну это я знаю насчёт циферок, а если допустим у меня не циферки а слова к примеру названия раздела(категории)

пример
http://localhost/mysite/news/more.php?news_cat=sport&year=2003&month=03&day=25&id=128

здесь в таблице news_cat имеется название sport
так вот, в место его можно вставить как ты уже говорил 'DELETE'

делать на ограничение символов - нет то
делать регистр символов тоже нето

может зделать проверку на нахождение какого либо слова и замены его на что-то, если кто то решит вставить 'DELETE' то оно должно замениться на ничего, это бедет правельное решение, или есть другое лутьше?

ANDRY добавил 19-03-2003 в 04:41:28:
кстати насчёт защиты, есть такой скрипт он ещё в думпе лежит SiteWorks Professional 5.0
так вот, я содрал с него авторизацию и управление юзерами, как ты думаешь защита у него неплохая? я его на свой движок вставляю

__________________
Web-Zona


Помещено SCHIZO 19-03-2003 в 11:17:

Exclamation

RFTM: mysql, escape, security

http://www.php.net/docs.php
http://www.php.net/manual/ru/security.php
http://www.php.net/distributions/ma...nual_ru.tar.bz2

__________________
FAQ OFF


Формат времени GMT. Текущее время 22:17.
Показаны 13 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.