 |
Бесплатные PHP скрипты - форум техподдержки |
Форум техподдержки WR-Скриптов на php. Обсуждаем: основы программирования на PHP 5 - 7 версий, различные подходы к написанию скриптов на php 7 без MySQL. А также WR-скрипты: бесплатные доски объявлений, скрипты форумов, Гостевые книги, Каталог ссылок, Галерея, Фотоальбом, Счётчики, Рассылки, Анекдот и другие. Принимаются пожелания для новых версий. Сообщите какой скрипт нужен для Вашего сайта, постараемся найти или реализовать. Скачать скрипты можно бесплатно. Вместе мы сделаем бесплатные php скрипты лучше и доступнее!
|
| Сегодня: 14.12.2025 - 04:35:28
Страницы: 1 ... 2 3 4 5 6 Изменение структуры БД с txt на DBF| Объявление - WR-Scriptы в UTF-8 кодировке |
|---|
Активно обновляю скрипты и перевожу их в UTF-8 кодировку. Список перекодированных php скриптов доступен на главной странице сайта. Скачивайте скрипты и устанавливайте на свой сайт! В ближайшее время обновлю каталог знакомств, форум Про, фотоальбом, доски объявлений лайт и ЛЮКС.
На форуме, пожалуйста, пишите что модернизировать в скриптах в первую очередь. Постараюсь исправить большую часть пожеланий! Планирую продолжить работы весь 2026 год.
|
| Автор | Сообщение |
|---|
sfinexer •
S Участник форума
|
https://www.wr-script.ru/forum/index.php?=PHPE9568F36-D428-11d2-A769-00AA001ACF42
А если так Как те логочипчик.
Ну то что ты описал реализовано в моей базе на php. И есть в моей моде гостевой книги, тоесть СТАРЫЕ (удаленные) записи затираются НОВЫМИ, автоматически.
Кстати, если мне не изменяет мой склероз ;) то база подобная MySQL не делает фрагментирование на лету, а лиш пишет процент фрагментирования ДА ДА, ЭТОТ ПРОЦЕНТ ВЫВЕДЕН В ПАНЕЛЕ УПРАВЛЕНИЯ БАЗОЙ. И чтобы убрать эти пустоты, надо ИМЕННО делать сжимание базы что равно dbase_pack(), или ты кнопочку "фрагментировать" в панеле мускула не видел????????????????????? Так вот в моей базе, это на лету делаться, достаточно задать процент фрагментирования, по умолчанию 10%.
Так что то что ты говориш что в твоем супер MySQL нету пустот а нах тогда кнопка там "фрагментировать" и ВЫВЕДЕНО РАЗМЕР МЕСТА НА ДИСКЕ ЧТО ЗАНИМАЮТ ПУСТОТЫ?????? | |
|
| Сообщение # 40 |
14.10.09 - 22:18:38
|  | admin02 •
A Участник форума
|
Глубокая пурга.
Вначале неплохобылобы оптимизировать скрипты а потом лесть в дебри если даже <? и <?php не понимаем.
К примеру....
Пурга: Код: // собираем данные по шаблону: RN-ключ | МКТАЙМ:время_в_UNIX_формате | имя | емайл | собщение, раздробленное на 6 кусочков по 250 символов каждый | коментарий админа $record=array("$rn","$today","$name","$email","$m[0]","$m[1]","$m[2]","$m[3]","$m[4]",""); |
Очередная пурга: Код:$text=str_replace(" ",' ',$text); $text=str_replace(">",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"", '"',$text); $text=preg_replace("/\n\n/",'<p>',$text); $text=preg_replace("/\n/",' ',$text); $text=p reg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\ ;',$text); $text=str_replace("\r\n"," ",$text); $text=str_replace("\n\n",'<p>',$text); $text=str_replace("\n",' ',$text); $text=str_replace("\t",'',$text); $text=str_replace("\r",'',$text); $text=str_replace(' ',' ',$text); |
и ето пурга:
Код: if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";} if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";} if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";} if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";} if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";} if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";} if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";} if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";} if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";} if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";} |
В вашем случае нужно открыть книгу и убедится что там не видна фига.  | |
|
| Сообщение # 41 |
15.10.09 - 01:35:46
|  | sfinexer •
S Участник форума
|
Цитата:
| если даже <? и <?php не понимаем. |
А что там понимать... | |
|
| Сообщение # 42 |
15.10.09 - 08:40:22
|  | admin02 •
A Участник форума
|
Цитата:
Я чуть со стула не ебанулся. Хорошо, найди ХОТЬ ОДИН скрипт, (не поделку на коленке а нормальный) где он начинается с <? а не с <?php
Есть же стандарты оформления!!! |
Цитата:| sfinexer, если ты вообще брал в руки учебник по PHP то там четко написано что <? и <?php теперь яляется стандартом и разницы между <? и <?php нет. |
Нащёт 2 кусков что скажеш? | |
|
| Сообщение # 43 |
15.10.09 - 15:15:55
|  | admin02 •
A Участник форума
|
|
| Сообщение # 44 |
15.10.09 - 15:29:26
|  | sfinexer •
S Участник форума
|
Цитата:
Капча меня не интерисует, у меня в модах другая стоит. А замена... ну есть несколько вариантов, вплоть и до втроенной функции замены таких всяких знаков подобных "< и иных что написаны.
Конечно, код не оптимален, но в принципе, можно и так оставить. А вобще, это настраиваться как в конфиге php так и функция есть тогоже php, это чтобы всякие скриптики от пользователя не сработали.
А чего за три, насчет <?php оно тоже настраиваеться, мне правда тут сказали В ЭТОЙ ТЕМЕ.
Цитата:Вот такой у меня не нормальный код Зато работает на любом не нормальном хостинге Я же стараюсь писать скрипты, который пойдут на любом хостинге. Хоть на php 3 |
Я конечно ответил
Цитата:Я чуть со стула не ебанулся. Хорошо, найди ХОТЬ ОДИН скрипт, (не поделку на коленке а нормальный) где он начинается с <? а не с <?php
Есть же стандарты оформления!!! |
Но помоему мое мнение никого не интересует поэтому все исправления я делаю в своих модах. А если тут начинаеш говорить... порой смотрят как на дурака. PS: Я хотел сделать скрин мускула, где написано про размер фрагментированности записей, но не стал, если интересно сам посмотри. Просто, мускул, это вроде как общепринято, у меня почти тоже самое но на php, причем моя база неплохо развивается, и почти реализован поиск уже, ну и налету фрагментация - БЕЗ НАГРУЗКИ НА СЕРВЕР! | |
|
| Сообщение # 45 |
15.10.09 - 19:36:56
|  | admin02 •
A Участник форума
|
Цитата:
| PS: Я хотел сделать скрин мускула, где написано про размер фрагментированности записей, но не стал, если интересно сам посмотри. |
Вкурсе что там находится.
Цитата:| Конечно, код не оптимален |
Ябы сказал код ужасно неопитмален. =(
Для начала: Код: if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";} if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";} if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";} ......... |
непробовали использовать switch??? во всех скриптах ниразу невидел. Или 1000 раз использовать if ето очень оптимально? Код:switch($num) { case 0 : $len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7"; break; case 1 : $len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw=="; break; case 2 : $len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw=="; } ....... | и ето еще каптча так устроена? =D У меня код каптчи в пару строчек и работает не хуже.
http://vesj.net/news_203_lednikovyj_period_3_dvdrip.html | |
|
| Сообщение # 46 |
16.10.09 - 01:39:39
|  | admin02 •
A Участник форума
|
Код: | $text=str_replace(" ",' ',$text); | Дурим мозги комуто 
Переделываем ужас:
Цитата:$text=str_replace(" ",' ',$text); $text=str_replace(">",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"", '"',$text); $text=preg_replace("/\n\n/",'<p>',$text); $text=preg_replace("/\n/",' ',$text); $text=p reg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\ ;',$text); $text=str_replace("\r\n"," ",$text); $text=str_replace("\n\n",'<p>',$text); $text=str_replace("\n",' ',$text); $text=str_replace("\t",'',$text); $text=str_replace("\r",'',$text); $text=str_replace(' ',' ',$text); |
вот так: (все неперечисленно)
Цитата:$se_pre = array('/\n|(\r\n)/m', // '', и т.д. );
$rep_pre = array('<br />', // '', и т.д. );
$se_str = array('>', '<', // и т.д. );
$rep_str = array('>', '<', //и т.д. );
$text = preg_replace ($se_pre, $rep_pre, str_replace ($se_str, $rep_str, $text)); |
| |
|
| Сообщение # 47 |
16.10.09 - 01:58:36
|  | admin02 •
A Участник форума
|
или
Код: $ar = array( ">" => "'>", "<" => "'<", );
$text = strtr($text, $ar ); |
оптимальнее чем 300 раз перезаписывать одну и туже переменную. | |
|
| Сообщение # 48 |
16.10.09 - 02:03:43
|  | sfinexer •
S Участник форума
|
Цитата:
| оптимальнее чем 300 раз перезаписывать одну и туже переменную. |
Я это знаю, но видимо когда вначале у разработчика было одна-две замены, в принципе можно и переписать пару раз, а когда замен стало больше, то просто стал делать по подобию.
Да там этот код такая мелочь посравнению с тем что в цикле идет скажем Код: do { $basa=dbase_open("base.dbf",2) or die("<BR>Ошибка - невозможно открыть <B>базу данных 'base.dbf'</B>. Проверьте наличие файла и права доступа на файл"); $dt=dbase_get_record($basa,$fm); dbase_close($basa); |
Ну и цикл конечно не закончен, я тока начало показал. Прикинь, если в цикле к мускулу конектится и закрывать соединение  оригинал Код: do { $basa=dbase_open("base.dbf",2) or die("<BR>Ошибка - невозможно открыть <B>базу данных 'base.dbf'</B>. Проверьте наличие файла и права доступа на файл"); $dt=dbase_get_record($basa,$fm); dbase_close($basa); if ($msginout==TRUE) {$num=$itogo-$fm+2;} // обрабатываем REPLACER'ом данные $xtime=replacer($dt[1]); $name =replacer($dt[2]); $email=replacer($dt[3]); $msg=null; for ($i=4; $i<9; $i++) {$msg.=$dt[$i];} $msg=replacer($msg);// Cклеиваем всё сообщение в одну переменную $msg=str_replace("<br>"," ",$msg); $msg=str_replace("","<B><font color=red>",$msg); $msg=str_replace("","</font></B>",$msg); |
У меня Код:$dt= Base::tabread("msg, all, $nach, $poz"); do { $xtime=replacer($dt["timestamp"][$fm])+$tz*3600; $name =replacer($dt["name"][$fm]); $email=replacer($dt["email"][$fm]); $msg=null; $msg=$dt["msg"][$fm]; $msg=str_replace("<br>"," ",$msg); $msg=str_replace("","<B><font color=red>",$msg); $msg=str_replace("","</font></B>",$msg); | Репласеры я не трогал, это мода, бетта версия, может поправлю, я просто показать как запросы обрабатываются. Но тут варианта два, или оптимизировать или писать с нуля, по времени также выйдет.
Иными словами, эти примеры что тут есть хоть и НЕ оптимальны, но посравнению с другими перлами, они почти не вносят никакой нагрузки на сервер.
PS: Капчу конечно можно написть в пару строчек, вопрос в том, что если проект станет более развитым, то боты найдут управу на слабую капчу, поэтому капча идет обычно как класс, ну или подключается в начале скрипта а потом там где надо выводиться, так проще вносить в нее изменения не трогая базовый код.
| |
|
| Сообщение # 49 |
16.10.09 - 10:15:19
|  | sfinexer •
S Участник форума
|
Вот будет форум 2.0 тогда его форкнем, я уже примерно накидал базу данных для него. Само собой база моей разработки. http://wr-script.exergo.ru/forum/moda/ Вот таблицы поля и тыпв которые пока в ней есть, ну и описание полей http://wr-script.exergo.ru/forum/moda/struktura.html
Там потом поменяю, введу когда пару строчек в базу, для возможности использования целочисленных полей. Ну и чтение куска записи из таблицы. в гостевой в моей моде код запроса $dt= Base::tabread("msg, all, $nach, $poz"); Ну $dt понятно, массив первый элемент которого $dt["name"][$fm] равен имени шапки, второй это то что мы запрашивали. Кстати, в мускуле можно номерами выводить шапку таблицы, но у меня можно номера использовать при создании таблицы. msg- имя таблицы all - то что выводим все поля из таблицы, в ином случае надо перечислить те которые выводить. $nach откуда выводим, например с 40 записи $poz - сколько записей выводим если $poz=10 то выведется с 40 до 50 записи если $poz=-4 то выведется с 36 до 40 ну и + обработка неверного запроса, и всяких там неверно заданных значений. Можно вывести и всю таблицу... там два метода есть $dt= Base::tabread("msg, all, all"); $dt= Base::tabread("msg, all, begin, end");
Ну есть и флаги сортировки, в данном случая закоментил в базе их... но можно выводить как по ID, так и по сортировки этого ID (автоинкримент, он есть всегда, отменить его нельзя.)
То что выбор пощел в сторону DBF это где-то может и плюс, где-то и минус, но в любом случае, базой надо верно пользоваться, а с таким подходом, что мускул что обычные текстовые файлы, всеравно слетать будет. | |
|
| Сообщение # 50 |
16.10.09 - 10:40:14
|  | admin02 •
A Участник форума
|
Цитата:
| Ну и цикл конечно не закончен, я тока начало показал.Прикинь, если в цикле к мускулу конектится и закрывать соединение оригинал |
Мускл конектиттся 1 раз в первых строках скрипт. Дальше идут только запросы на выборку данных =)
Цитата:| что мускул что обычные текстовые файлы, всеравно слетать будет. |
За 3 года мускул переклиноло 1 раз и то исправляется "Оптимизировать" за 30 сек. Про dbf незнаю посмотрим в таком случае. А текстовые файл вообще курят в строне. Чисто так сказать нах такая ебл.. когда база текстовых летит чуть не какждую неделю. Я уже заиб.. бекапы делать. Лучше использовать мускл и несидеть на гвоздю и ждать когда база слетит.  | |
|
| Сообщение # 51 |
16.10.09 - 13:47:12
|  | admin02 •
A Участник форума
|
Сейчас у меня в базе 3533010 записей и работает как часики. http://speed-tester.info/ | |
|
| Сообщение # 52 |
16.10.09 - 13:50:09
|  | Страницы: 1 ... 2 3 4 5 6
|