Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
3 / 3 / 0
Регистрация: 27.08.2019
Сообщений: 19

Как сделать чистый блог на php для понимания его?

27.08.2019, 16:22. Показов 2143. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вордпресс не предлагать
мне нужно для усвоения пхп
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.08.2019, 16:22
Ответы с готовыми решениями:

Ищу комплексный компонент для понимания его устройства
Люди добрые, есть ли у кого комплексный компонент, нужен самый простой, например чтобы включал два компонента список и детальное описание....

Как подключить ckeditor в чистый PHP?
Доброго времени суток! Коллеги если не сложно объясните на пальцах, как прикрутить CKEditor в чистый PHP? Обязательно ли использовать...

Что такое блог и как его создать?
Добрый вечер любители и профессионалы. Что такое блог в принципе понятно. Меня больше интересует 1) как его создать? Слышал о движке...

25
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
27.08.2019, 18:25
Ищи в гугл пхп с нуля, иначе никак.
1
 Аватар для Vetrox
9 / 9 / 6
Регистрация: 08.10.2012
Сообщений: 266
29.08.2019, 15:07
ищи уроки сразу с "PDO" чтобы потом вопросов не возникало с безопасностью

Добавлено через 7 минут
https://youtu.be/NSBQ7hF-iCc
только надо данные фильтровать от инъекций

Добавлено через 11 минут
регистрация и авторизация пользователей
https://youtu.be/3UtB4QS6EAg
https://youtu.be/vvgOPJQA8Zk
ну ты можешь сам посмотреть других в ютубе много
главное чтобы с PDO было, это стрелочка такая -> при обращении к базе данных ну и про безопасность почитай когда разберешься с php
https://youtu.be/hETK-ohKbhw
https://youtu.be/hvGzH4AnWjA

я учился на этом https://www.youtube.com/watch?... _oJfMn6S3I
но там устаревший mysqli а не PDO, чтобы не переучиваться лучше сразу с PDO иначе 15% сайта переписывать придется.
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
29.08.2019, 20:19
Vetrox, не подскажете, когда MySQLi устарело?

Цитата Сообщение от Vetrox Посмотреть сообщение
главное чтобы с PDO было, это стрелочка такая -> при обращении к базе данных
Т.е. это PDO:
PHP
1
if ($result = $mysqli->query('SELECT * FROM `table`')) {
Ну, тогда первый вопрос снимается
1
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2019, 07:40
Цитата Сообщение от Phantom-84 Посмотреть сообщение
не подскажете, когда MySQLi устарело?
пока нет. Но есть мнение, что разрабы php настойчиво предлагают уходить от использования mysqli. Не ясно откуда родом сии слухи, но вот с mysql было примерно так же и лет через ццать всё-таки потерли
1
 Аватар для Vetrox
9 / 9 / 6
Регистрация: 08.10.2012
Сообщений: 266
30.08.2019, 09:37
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Vetrox, не подскажете, когда MySQLi устарело?
Оно еще не устарело, но в PDO если я помню меньше надо фильтровать данные, верно?
0
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2019, 09:40
Цитата Сообщение от Vetrox Посмотреть сообщение
меньше надо фильтровать данные, верно?
не верно.
1
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
30.08.2019, 13:50
Цитата Сообщение от atanov Посмотреть сообщение
пока нет
PDO - это расширение другого уровня абстракции. Расширения под конкретные СУБД вряд ли исчезнут из PHP в обозримой перспективе. История с двумя расширениями (можно сказать, с двумя поколениями расширения) под MySQL связана с тем, что эта СУБД развивалась практически параллельно с самим PHP. Надеюсь, больше подобных пертурбаций не случится. Хотя в версии 8 опять какие-то волнения происходят (пока еще детально не смотрел)
1
 Аватар для atanov
640 / 481 / 172
Регистрация: 26.05.2016
Сообщений: 2,674
30.08.2019, 14:14
Цитата Сообщение от Phantom-84 Посмотреть сообщение
Хотя в версии 8
за 8-ку не скажу, а вот P++ могут избавить.
1
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
30.08.2019, 14:52
atanov, я про версию MySQL писал
1
 Аватар для Vetrox
9 / 9 / 6
Регистрация: 08.10.2012
Сообщений: 266
30.08.2019, 15:57
atanov, почему неверно? от ковычек инъекции не обязательно фильтровать в pdo, когда в msqli нужно оборачивать в функцию все поступаемые данные внедряемые в sql запрос, я вот теперь не помню, что за функция, потому что стал pdo пользоваться!

Добавлено через 10 минут
https://www.youtube.com/watch?v=O1kXtRkMLS0
интересный курс про безопасность там я узнал про все эти ковычки и понял что всё, что я делал на msql и msqli небезопасно, конечно в pdo нужно защитится от html тегов, но все же меньше забот, это кстати очень фундаментальный вопрос при написании форума, если я что-то не так правильно понимаю давай придем к какому то общему выводу, безопасность превыше всего, и всетаки мы программисты, а значит должны понимать что то что делаем правильно, или есть какието другие способы о которых мы еще не знаем, то слава Богу за этот форум
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
30.08.2019, 16:40
Vetrox, просто пишите только то, что знаете, и все будет хорошо

Мы, программисты, обычно смотрим в справочник, когда что-то не помним
1
 Аватар для Vetrox
9 / 9 / 6
Регистрация: 08.10.2012
Сообщений: 266
30.08.2019, 16:52
ну раз мы все тут собрались, давайте выясним, ведь если я что-то не так делаю надо исправиться и делать правильно, мне нравится играть на гитаре, но когда я вижу как ктото какуюто фишку использует я пытаюсь это перенять, давай делиться опытом, это полезно,
я прав что от ковычек в запросах PDO можно не защищаться? а в msqli это необходимо делать, когда в msql вообще как в теплом тулупе обернутых функций себя чувствовал))

Добавлено через 1 минуту
как танк с многотонной железной броней)))
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
30.08.2019, 17:10
Vetrox, просто продолжайте использовать PDO и оставьте в покое MySQLi. Если случайно где-то встретите использование метода quote, сильно не пугайтесь. Это не означает, что MySQLi наступает
1
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
31.08.2019, 12:54
Цитата Сообщение от Phantom-84 Посмотреть сообщение
главное чтобы с PDO было, это стрелочка такая -> при обращении к базе данных
"стрелочка"...
В пхп имеется два варианта обращения к классу:
1. Синглтон, это типа MSQL::query(....)
2. Инсталл, (как объект класса) типа $mysqli->query(...)
В классе могут иметься методы типа static, которые вызываются MSQL::query(....) или $mysqli::query(...)
Далее, существует протекция методов : public, protected, private. Функции protected можно вызвать из клона, а private только в исходном классе.
Например, я создаю базовый клон
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
 class JModelBase extends JModel
   {
     protected $slash='\\';
     # PUBLIC SECTION
 
   public function __construct()
     {
       parent::__construct();
     }
     
   public function _FUN($type,$fn,$options=null)
     {
       $function=$type.$fn;
        return $this->$function($options);
     }
 
   public function _get($fn,$options=null)
     {
       $function='get'.$fn;
        return $this->$function($options);
     }
 
   public function _set($fn,$options=null)
     {
       $function='set'.$fn;
        return $this->$function($options);
     }
 
   public function _update($fn,$options=null)
     {
       $function='update'.$fn;
        return $this->$function($options);
     }
 
   public function _delete($fn,$options=null)
     {
       $function='delete'.$fn;
        return $this->$function($options);
     }
     
   public function _publish($fn,$options=null)
     {
       $function='publish'.$fn;
        return $this->$function($options);
     }
 
   public function checkArgs($arg,$type='int')
     {
         switch($type){
             case 'int':
                 $regexp = '/\D++/';
                 $this->checkRegexp($regexp,$arg);
                 break;
         }
       return true;
     }
     
     protected function checkRegexp($regexp,$str){
         
           preg_match_all($regexp,$str,$matches);
   if(isset($matches[0])&& is_array($matches[0])&&count($matches[0])>0)
       {
      JFactory::getApplication()->redirect('home');
        exit  ;
     }
     }
}
Который использую для создания дочерних классов
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 class ModelShops extends JModelBase
   {
 
   public function __construct()
     {
       parent::__construct();
     }
 
   protected function getProductsTotal($params=null)
     {
       $query=$this->_db->getQuery(true);
       $query->select('count(*)');
       $query->from('#__shops_products');
       $query->where('published=1');
      if(isset($params['type']))
          $query->where($params['type'].'='.$params['value']);
       $query->orderby('date_added DESC');
       $this->_db->setQuery($query);
       $total=$this->_db->loadResult();
        return $total;
     }
}
И с ними работаю
PHP
1
2
     $model->checkArgs($limitstart);//тут запрашиваю public функцию родительского класса
     $total=$model->_get('ProductsTotal',array('type'=>'cat_id','value'=>$id)); //тут вызываю protected метод наследника через функцию родительского класса
Короче, тебе пока это трудно понимать, изучай пхп, и обращайся, что не понятно
1
Эксперт PHP
3899 / 3237 / 1353
Регистрация: 01.08.2012
Сообщений: 10,904
31.08.2019, 15:29
Цитата Сообщение от Vetrox Посмотреть сообщение
я прав что от ковычек в запросах PDO можно не защищаться?
Экранировать не нужно, если вы используете подготовленные запросы. Они есть и в PDO, и в mysqli.

Если НЕ используете подготовленные запросы, тогда экранировать нужно. И в PDO, и в mysqli.

Цитата Сообщение от Vetrox Посмотреть сообщение
конечно в pdo нужно защитится от html тегов
Не обязательно, экранировать (имею ввиду htmlspecialchars/htmlentities) можно перед выводом на экран.
1
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
31.08.2019, 16:24
Цитата Сообщение от esculap_ra Посмотреть сообщение
Короче, тебе пока это трудно понимать
Такое лучше и не пытаться понять, без обид) Кошмар из joomla и врагу не пожелаешь)
1
 Аватар для Vetrox
9 / 9 / 6
Регистрация: 08.10.2012
Сообщений: 266
31.08.2019, 18:34
Мне кажется, что тут дело привычки, если ты не работал в комманде в компании, где принципиально знать построение кода, и если один все делаешь, то можно одними простыми function() обойтись даже без паблик, утрирую конечно, но всё же =)

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

Добавлено через 12 минут
Форум состоит из сих сложных элементов
1. регистрация и авторизация пользователя
2. админка
3. ранги и привилегии
4. разделы и темы, доступные админу, модераторам и пользователям
5. форма добавления сообщений
6. вывод сообщений
7. пагинация для сообщений и тем, когда они не влазят на одну страницу (можно аяксом красиво подгружать сообщения)
8. прикрутить загрузку аватары и настройки подписи
На ютубе уроков можно достаточно посмотреть по этим всем вещам по-очереди. по пунктам.
Это хороший опыт который каждый проходит, если сделаешь конечный безопасный продукт, значит ты знаешь mysql и php
0
377 / 319 / 73
Регистрация: 15.09.2017
Сообщений: 1,436
31.08.2019, 23:02
esculap_ra, вы с цитированием намудрили. Это не я писал.
1
 Аватар для esculap_ra
462 / 265 / 55
Регистрация: 22.08.2010
Сообщений: 1,204
Записей в блоге: 4
01.09.2019, 10:49
Цитата Сообщение от Vetrox Посмотреть сообщение
всё что ты написал я почти не знаю
Я когда-то тоже ничего не знал. В конце 2008 года попал в аварию на мотоцикле (мне тогда было 40 лет и я работал в редакции газеты). Пол-года в гипсе, больницы, суды - чуть крыша не поехала. И вот решил чем-нибудь заняться, чтобы не спиться или не присесть на наркоту...
Решил освоить пхп, но под руку попалась Делфи, и я начал программировать для десктоп, а потом оказалось, что я я и азы пхп знаю. Ну а дальше jQuery, Smаrty и прочее. Сейчас знаю кишки Джумлы, Престашоп, Опенкарт, ремонтировал сайты англичанам и швейцарцам, а они такие дотошные, просто жуть! Особенно вредная попалась из Швейцарии! Она где-то откопала сервис, и требовала делать все по их рекомендациям - прописывать альты даже для элементов шаблона, убирать из заголовка ответа идентификацию сервера и т.д.
И заметь, мне не у кого было учиться... Я тупо ставил перед собой цель, и стремился ее достичь.

Добавлено через 13 минут
Цитата Сообщение от tarasalk Посмотреть сообщение
Кошмар из joomla и врагу не пожелаешь
Почему кошмар? Очень удобная либа для работы с базами. В Опенкарте этот класс довольно скуп на методы, а в Джумле даже без понимания всех функций пхп работы с БД все легко и просто.

Добавлено через 11 минут
Цитата Сообщение от Vetrox Посмотреть сообщение
устаревший mysqli а не PDO, чтобы не переучиваться лучше сразу с PDO иначе 15% сайта переписывать придется.
Так можно использовать либу от Джумлы, там имеются драйвера для 3 скулей, пдо и оракла.

Добавлено через 9 минут
Цитата Сообщение от Vetrox Посмотреть сообщение
курс про безопасность
Что касается безопасности, так я сканирую свои разработки с помощью ironwasp (прога бесплатная). Недавно он выявил дырку в пагинаторе - уязвимость инъекции в limitstart= . Я создал функцию проверки на integer, чтобы исключить вариант limitstart=bla-bla-bla
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.09.2019, 10:49
Помогаю со студенческими работами здесь

Как сделать чистый exe файл
Как «избавиться» от всех осх и dll компонентов, входящих в VB-Application? Жизненно необходимо сделать чистый exe-файл, без зависимости...

Форум >web-программистов > PHP > PHP для начинающих. Как такое сделать?
Форум >web-программистов > PHP > PHP для начинающих...... Как такое сделать? что бы автоматически по категориям расписывалось! начал...

Как создать блог на платном хостинге и раскрутить его!
Итак, создаем блог на движке WordPress (качаем последнюю версию с официального сайта - http://ru.wordpress.org/ ). Для такого блога...

Как из WordPress сделать не блог
Как в WordPpess'е сделать так что бы первая страница не была блогом, а был статической или только WP для блога ?

Как сделать, чтобы при нажатии по нику или логину пользователя, попасть на его страницу php mysql
Как на странице пользователи сайта организовать такую вещь: Это уже сделано -> Выводим список зарегистрированных пользователей: Это...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru