Доход с нуля
Все что относится к интернету.

Советы по PHP (Для тех кто пишет сайт сам)

Сообщение Slash » более года назад 25 фев 2016, 20:20

Здравствуйте.
Решил создать тему, где буду давать разного рода советы по языку программированию PHP, советы, которыми пользуюсь сам.

php


И так первый мой совет:
Не используйте закрывающий тег ?> в файле набирая php код, если ниже нет HTML тегов, это удар по безопасности.
Как это может повлиять на безопасность? - скорее всего зададите этот вопрос.

Допустим, вы набираете код, ставите закрывающий тег и случайно делаете пробел после закрывающего тега ("?> "), этот файл инклюдится к вызываемому файлу. Пользователь при обращению к файлу может получить вместо результата сценария, исходный код файла, где стоит пробел после закрывающего тега. Этого может и не произойти, как вам повезет. Но представьте, что пользователь получит исходник вашего конфига, где записаны данные доступа к БД. Обычному пользователю все ровно, он посчитает, что сайт на реконструкции или ещё чего и закроет страницу с исходником. А кто-та может воспользоваться моментом и сотворить с вашей базой, все, что ему вздумается...

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

Спасибо за внимание.
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение Administrator » более года назад 25 фев 2016, 20:39

Сейчас посмотрел несколько файлов phpbb, там везде есть закрывающий тег ?>, и действительно без пробела после него. Если убрать этот тег, то такой сайт будет работать?
Аватара пользователя
Administrator
Администратор
 
Сооб­щения: 9597
Откуда: Россия

Сообщение Slash » более года назад 26 фев 2016, 05:35

Administrator писал(а):Если убрать этот тег, то такой сайт будет работать?

Да, конечно.
Я во всех своих движках стараюсь убрать.

В phpFOX во многих файлах, после закрывающего тега, несколько переносов на новую строку сделано, все удаляю.
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение Slash » более года назад 27 фев 2016, 09:17

Спецсимволы в строках получаемых от пользователей необходимо экранировать, что бы избежать SQL инъекции. Сделать это можно при помощи функции mysqli_real_escape_string, которая создана специально для экранирования спецсимволов.

Пример работы функции:
Код: Выделить всё
$name = mysqli_real_escape_string($mysqli$_POST['name']); 
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение Slash » более года назад 03 мар 2016, 18:10

Если сценарий выдал вам необходимый результат, то остановите его, что бы снизить нагрузку на сервер. Например остановить сценарий можно функцией exit. Пример:
Код: Выделить всё
# Сравниваем два значения
if ($this->master == $this->go($count))
{
    echo 
'Всё верно!'# Если значения одинаковы, выводи сообщение на экран
    
exit; # Останавливаем дальнейшее выполнение сценария
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение Slash » более года назад 28 апр 2016, 04:58

Многие начинают работать в кодировке CP1251.
Советую не использовать эту кодировку, лучше всего UTF-8.
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение Slash » более года назад 09 июн 2016, 05:50

Не используйте короткие теги <? (<? | <?=)
До версии PHP 5.4, для использования коротких тегов, должна быть включена php.ini опция short_open_tag.
С PHP 5.4 - включен всегда. Если Ваш PHP меньше 5.4, советую использовать полный тег: <?php.

Ниже PHP 5.4 не использую давно (5.6 - 7.0), но все ровно пишу полные теги.
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение x64 » более года назад 05 окт 2016, 13:32

Slash писал(а):Не используйте короткие теги <?=

Не совсем понял, чем эта замечательная конструкция, полностью аналогичная <?php echo, не угодила? (:
Шорт-теги в новых версиях пыха отменены, да, но именно этот — оставлен. Более того, начиная с версии 5.4.0 тег <?= доступен всегда.
Аватара пользователя
x64
Участник
 
Сооб­щения: 91
Откуда: Подмосква

Сообщение Slash » более года назад 05 окт 2016, 14:55

x64 писал(а):чем эта замечательная конструкция

Кому как, мне это не кажется замечательной конструкцией.

Пример: переход на новый хостинг, который не поддерживает короткие теги.
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение x64 » более года назад 05 окт 2016, 15:04

Пример несколько устаревший)
Из официальной документации: «Начиная с версии PHP 5.4.0 Тег <?= доступен всегда, вне зависимости от настройки short_open_tag».
Версии младше встретить можно, но это надо постараться ещё. Как и найти хостинг, предоставляющий довольно древнюю версию пыха с short_open_tag = off.
Дело привычки, понимаю и не осуждаю, ибо сам до сих пор пишу array() заместо [] :D
Аватара пользователя
x64
Участник
 
Сооб­щения: 91
Откуда: Подмосква

Сообщение Slash » более года назад 06 окт 2016, 03:56

x64 писал(а):Пример несколько устаревший)

Так и совет для устаревших версий:
Slash писал(а):Если Ваш PHP меньше 5.4, советую использовать полный тег: <?php.

x64 писал(а):Более того, начиная с версии 5.4.0 тег <?= доступен всегда.

Об этом я и сказал:
Slash писал(а):С PHP 5.4 - включен всегда.

x64 писал(а):не осуждаю

За это я не переживаю.
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение x64 » более года назад 19 окт 2016, 15:01

Slash писал(а):За это я не переживаю.

Да, крупный «специалист» :facepalm:
Бежать надо от таких советов и советчиков.

Один раз на своём форумке потёр моё сообщения, когда пытался заместо стандартной implode() написать свою TRUEЪ-функцию объединения массива в строку, а я привёл простой код «из коробки».
Второй раз было сегодня.
Как же, какой-то пришлый привёл пару способов из чистого JS и jQuery по правильному началу работы с контентом страницы после загрузки. Непорядок! Не может же Верховный Одминистратор не блистать на своём сайте.
Аватара пользователя
x64
Участник
 
Сооб­щения: 91
Откуда: Подмосква

Сообщение Slash » более года назад 19 окт 2016, 15:54

x64 писал(а):Бежать надо от таких советов и советчиков.

А кто тебя держит? Беги.
На свой форум я тебя не тянул, сам появился. :facepalm:
x64 писал(а):когда пытался заместо стандартной implode()

На то были свои причины.
x64 писал(а):Второй раз было сегодня.

Второй раз был из за твоего тона.
x64 писал(а):привёл пару способов из чистого JS и jQuery по правильному началу работы с контентом страницы после загрузки

И что?
x64 писал(а):Не может же Верховный Одминистратор не блистать на своём сайте.

Как ярко сказано. Видимо "звезду" обидели, тем, что не дали поблистать ей и его (или ее) заели амбиции. :lol:
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

Сообщение Екатирина » более года назад 14 окт 2017, 11:47

Доброго времени суток. Подскажите, как связаться со Slash'ом? Срочно нужна его помощь.
Екатирина
 

Сообщение Administrator » более года назад 14 окт 2017, 13:07

Здравствуйте, Екатирина. Вы можете задать свои вопросы здесь. А ещё у Slash'а есть свой форум danfa точка org.
Аватара пользователя
Administrator
Администратор
 
Сооб­щения: 9597
Откуда: Россия

Сообщение Екатирина » более года назад 15 окт 2017, 07:24

Administrator писал(а):Вы можете задать свои вопросы здесь.

Спасибо.

Slash, Вы исправили все ошибки предыдущего исполнителя на нашем сайте и сказали, что если нужна будет Ваша помощь, мы можем Вас просить, но Ваш скайп всегда в офлайне, мы не можем связаться с Вами.
Мы хотели бы Вас попросить, вот о чём:
- Переделать сайт, чтобы он работал на php7.
- Сделать онлайн проверку почты, чтобы значок нового сообщения загорался без перезагрузки страницы.
- Сделать лайки для заметок с уведомлениями.
И ещё есть пара пожеланий, о них я могу сказать лично.
Вы поможете нам? Спасибо.
Екатирина
 

Сообщение Екатирина » более года назад 15 окт 2017, 10:26

x64 писал(а):Да, крупный «специалист» :facepalm:
Бежать надо от таких советов и советчиков.

А что с советами? Они по Вашему неверные? По моему советы вполне разумные и к месту.
Зря Вы так об этом человеке отзываетесь. Он между прочем сделал то, что не мог сделать долгое время наш прежний исполнитель с образованием программиста. Slash, сделал всё быстро и качественно, сайт стал работать быстрее и стало меньше нагрузки на сервер, в общем, поставил сайт на ноги.
Екатирина
 

Сообщение Екатирина » более года назад 21 окт 2017, 07:50

Отпишусь.
Slash, вышел на связь в Скайпе, обговорили и он уже работает!

Я уж начала думать, что с ним, что-то случилось. Слава Богу, ни чего!
Екатирина
 

Сообщение Slash » более года назад 26 окт 2017, 11:43

Отпишусь и я.
Работа выполнена.

Спасибо за отзыв! С Вами приятно работать!
Аватара пользователя
Slash
Эксперт
 
Сооб­щения: 501

на главнуюна главную



Вверх Вниз