anonkz
03.10.2012 05:02 QIP свободное общение
http://code.google.com/p/mypasta/
Ну в общем залил первую версию. Адекватная критика приветствуется.
Recommended by:
@ojab: itt пхпотсос
> isset($_GET['view'])
разве оно не срет нотайсами при максимальном еррор репортинге? я обычно использую
array_key_exists('view', $_GET) && !!$_GET['view']
чтобы определить, что непустое
Не срет. Без этого срет.
> $view!=''
можно заменить на
> !!$view
я про это писал же
В чем разница? Если isset пустой, то он возвращает пустую строку.
вместо
strtotime('now');
лучше вроде как использовать
date('U');
Алсо, есть демо?
Демо крутиться локально. Хостинга нету развернуть.
Чем лучше? Первый вариант более читаемый.
Я бы тебя похакал :3
Рассказывай лучше как и где. :3
срттутайм вроде парсится сложнее, хз, сделай циклом 10000 раз и проверь что лучше
(string)$_GET['view'] надо заменить на (int)$_GET['view']
запости такую пасту:
</textarea><div style="position:absolute;top:0;left:0;width:100%;height:100%;background:red;colo r:#fff;font-size:1000px">ХУЙ ПИЗДА СОСИ ХУЙ ЛАЛКА</div>
Сука. Я обосрался.
http://www.php.net/manual/ru/function.ht...
echo '<p><b>Ваша паста:</b></p><p><textarea rows="'.($filecols<20?20:$filecols).'" cols="50" readonly>'.htmlspecialchars($filedata).'</textarea>
Спасибо большое.
алсо, по стандартам тег <a> должен быть внутри <h1>, а не снаружи
Знаю, просто на хочу захерачил. Пофиксил.
пиздец
Еще есть проблема, только заметил, если урл будет
http://localhost/pasta/index.php?view=.
то все наебнется. :3
Даже если добавить проверку
if ($file_handle!=false) {
То все равно вываливается варнинг.
проверяй view
if (preg_match('~^\d+$~', $_GET['view']))
Спасибо, а то я костыль начал писать
Пиши еще. А то у меня от твоих коментариев сухо становится в трусах.
это самый нормальный способ проверить что в переменной цифры. есть всякие функции типа is_numeric, но они пропускают не только натуральные числа, т.е. может придти отрицательное или нецелое число
пиздец
такие дела, да
Слушай. С ^,\d,+,$ понятно. А что за ~?
http://www.php.net/manual/ru/regexp.refe...
Все. Нагуглил. Что еще починить можно?
если у тебя в одну секунду запостят две пасты, то одна другую перезапишет
Да. Можно добавлять милисекунды.
можно сделать идентификаторы как в imgur (буквы+цифры), только не рандомные, а последовательные
>как в psto (буквы)
Смотерть последний файл, увеличивать и отдавать пользователю?
фуркция: #oeeotf
имя нового файла:
generate_code(count(scandir($pastadir))-1);
функция в #oeeotf
ну и вместо $_GET['view'] можно использовать $_SERVER['QUERY_STRING'], тогда урлы будут вместо таких:
http://localhost/pastebin/?view=e27sYS
такие:
http://localhost/pastebin?e27sYS
только кверистринг всегда установлен, нужно просто проверять пустой/непустой (т.е. isset будет всегда true возвращать)
короче, на 60 строке замени
$curfile=strtotime('now');
на
$curfile=generate_code(count(scandir($pastadir))-1);
и перетяни код функции из #oeeotf
$mtime = microtime(true);
От точки избавится и все.
нахуй длинные урлы?
Можно этот длинный урл зиповать и потом бинарный код в виде UUCODE выдавать. :3
Я пошутил. Сейчас через generate_code и $_SERVER['QUERY_STRING'] переделаю
пиздец какой-то. можно просто брать тогда
count(scandir($pastadir))-1
это будет номер для следующего файла
можно взять хеш длинного урла потом сгенерировать уникальный короткий идентификатор, добавить в базу соответствие (таблица с 2 полями — хеш и идентификатор), а при запросе расшифровывать хеш (там один хуй же цифры, быстро расшифруется) и отдавать файл
Слушай. Почему в #oeeotf используются " для обычных строк? Ведь php пытается парсить. Почему просто ' не использовать?
можешь заменить, да, хотя во времени это вообще никак не отражается, я использую двойные кавычки только для SQL-запросов (иначе синтаксис в саблайме не подсвечивается сука)
> echo generate_code(1000000);
> Notice: String offset cast occurred in C:\coding\Apache24\htdocs\pasta\index.php on line 32
а что на 32 линии?
return $codes{$number}.$out;
>C:\
пиздец
Это у апач под вайном. :3
обосрался
а если
return $codes{$number}.$out;
заменить на
return $codes{((int) $number)}.$out;
читаю тред, не убирая руку от лица
ты не шаришь в тырпрайзе просто
Норм стало.
фикс уровня похапе
Незнал. Буду знать.
вообще, обычно все хуй кладут на нотайсы и ставят error_reporting без нотайсов. но я стараюсь править нотайсы, ставлю максимальный error_reporting и по нотайсам в логах часто ошибки, баги и уязвимости нахожу
У меня стоит:
error_reporting = E_ALL
норм тебе
алсо, у меня display_errors = none
чтобы в браузер не срало
У благо локально стоит, так что норм. На серверах — отрубаю
Слушай. А почему в той функции на "return $codes{$number}.$out;" ругается, а на "$out = $codes{$key}.$out;" нет. Это из-за того что return?
дунно, лол, это же похапе
а не
> return $codes{$number}.$out
> $out = $codes{$key}.$out;
разницу найди
там $number, а там $key
короче, $number приходит не int, вот он и выебывается
там return, а там $out
/70
да похуй мне
Не не похуй. Ты зависишь от нас и наших постов.
ты тупой просто
Я.
алсо, я когда ньюфажил, писал гостевые книги, лол. только щас они никому не нужны. но можешь покачать скиллы создавая бложик, например
Обязательно. Создам своей веб-софт с минимализмом и текстовыми файлами. :3
в текстовых файлах нет жизни, учи скуль
mssql, mysql, sqlite, postgresql. С этим всем работал.
SELECT * FROM mytable ?
Общий sql-синтаксис я понимаю. Специфические вещи гуглю.
в общем закоммитил. Спасибо @kurkuma и @ojab.
да похуй мне лул
Пожалуйста, обращайся, если что.
это ты разрабатываешь свои навыки или любишь писать велосипеды?
лол
Люблю писать велосипеды, плюс разрабатываю свой ану^W^Wсвои навыки