#691 2012.04.06 18:09

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Хмм. Понятно. Спс.

Неактивен

#692 2012.04.06 23:50

tipsun
Moderator
Зарегистрирован: 2009.10.14
Сообщений: 2277
Карма: 19
Профиль

Re: Общие вопросы по PHP

Ну я злодей, хотел показывать активность гостей написавших сообщение, а потом подумал и big_smile Ахаха

Код:

1
span style="color: #0000BB"><?php$result = $db->query('SELECT `active_id` FROM `activity` WHERE `active_id` > 0 AND `active_point` > NOW();');$activity = $array = array();while ($array = $result->fetch()) { if ($array['active_id']) { $activity[$array['active_id']] = $array; }/* else { $key = md5($array['active_ip'] . $array['active_browser']); $activity[$key] = $array; }*/}$result = $db->query('SELECT * FROM `users`;');$users = $array = array();while ($array = $result->fetch()) { $users[$array['user_id']] = $array;}foreach ($users as $user) { echo $user['user_id']; echo ' '; echo isSet($activity[$user['user_id']]) ? 'On' : 'Off'; echo '<br/>';}

Отредактировано tipsun (2012.04.07 20:06)

Неактивен

#693 2012.04.07 18:10

Akdmeh
Участник
Откуда: Киев и рядом;)
Зарегистрирован: 2008.11.30
Сообщений: 257
Карма: 9
Профиль Веб-сайт

Re: Общие вопросы по PHP

Привет, Геморрой.
Стоит задача написать свой небольшой шаблонизатор на нейтивном php.
Вот и стоит задача импортировать с помощью функции extract в область видимости метода класса view переменные с массива.
Какие минусы этого метода, стоит ли его использовать или нет?
Компилировать шаблоны или использовать другие решения не очень-то хочется, а писать $this->array['var'] - слишком длинно.


Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink

Неактивен

#694 2012.04.07 18:32

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

во первых, я бы настоятельно рекомендовал не велосипедить, а найти шаблонизатор по вкусу. от банальных smarty и twig до blitz и xslt.
что до extract, то в принципе, можно все сделать достаточно безопасно, если делать аккуратно, учитывая все моменты описанные в документации.

Неактивен

#695 2012.04.07 18:52

Akdmeh
Участник
Откуда: Киев и рядом;)
Зарегистрирован: 2008.11.30
Сообщений: 257
Карма: 9
Профиль Веб-сайт

Re: Общие вопросы по PHP

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


Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink

Неактивен

#696 2012.04.07 19:24

Akdmeh
Участник
Откуда: Киев и рядом;)
Зарегистрирован: 2008.11.30
Сообщений: 257
Карма: 9
Профиль Веб-сайт

Re: Общие вопросы по PHP

Кстати, вспомнил об одной уязвимости.
Есть файл, внутри него код:
<?php
$addr="my_file.txt\0";
echo $addr;
if(file_exists($addr.".php")) echo 'OK!';
include $addr.".php";

Результат будет отличным - мы проинклюдим файл my_file.txt, а остальная строка проигнорится!!!
То есть, как это может сработать.
Мы хотели получить от пользователя имя файла, к примеру, lol, а затем проверить, если существует файл lol.php - инклюдим его.
Но с помощью символа конца строки \0 остаток строки игнорируется, что позволит пройти проверку и подключить другой файл с другим расширением!

Вопрос - а какие еще функции подверждены этой уязвимости?


Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink

Неактивен

#697 2012.04.07 19:55

Akdmeh
Участник
Откуда: Киев и рядом;)
Зарегистрирован: 2008.11.30
Сообщений: 257
Карма: 9
Профиль Веб-сайт

Re: Общие вопросы по PHP

Кстати, есть объект $test, он является экземпляром класса son, а son является сыном (через extends) абстрактного класса parent.

Если сделать $test instanceof parent - запрос будет работать?


Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink

Неактивен

#698 2012.04.07 21:27

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

Akdmeh написал:

"my_file.txt\0"

на какой версии php проверял?
проверил сейчас на php 5.3.8 - не работает.
по-моему, это что-то из времен бородатого php 4.

Код:

1
span style="color: #0000BB"><?phpabstract class _parent {}class son extends _parent {}$test = new son;var_dump($test instanceof _parent); //bool(true)

Неактивен

#699 2012.04.07 22:56

Akdmeh
Участник
Откуда: Киев и рядом;)
Зарегистрирован: 2008.11.30
Сообщений: 257
Карма: 9
Профиль Веб-сайт

Re: Общие вопросы по PHP

На какой версии:
на php 5.3.1, винда.
Попытаюсь обновить, посмотреть.
Пришли код, как проверил, посмотрю.


Желание стать программистом из-за того, что вам нравляться компьютерные игры-это все равно, что желание стать гинекологом из-за того, что вам нравиться сексwink

Неактивен

#700 2012.04.08 00:03

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6594
Карма: 107
Профиль Веб-сайт

Re: Общие вопросы по PHP

Код:

1
span style="color: #0000BB"><?php$file = '../robots.txt';var_dump(include $file);var_dump(include $file . "\0txt");// если бага присутствует, то файл должен проинклудится

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.032 s