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

Все что относится к интернету.
Ответить
Аватара пользователя
Slash
Эксперт
Сообщения: 501
Зарегистрирован: 17 окт 2012, 12:20
Контактная информация:

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

Сообщение Slash »

Здравствуйте.
Решил создать тему, где буду давать разного рода советы по языку программированию PHP, советы, которыми пользуюсь сам.
php.jpg
php.jpg (68.2 КБ) 15709 просмотров
И так первый мой совет:
Не используйте закрывающий тег ?> в файле набирая php код, если ниже нет HTML тегов, это удар по безопасности.
Как это может повлиять на безопасность? - скорее всего зададите этот вопрос.

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

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

Спасибо за внимание.
Аватара пользователя
Administrator
Администратор
Сообщения: 9600
Зарегистрирован: 10 ноя 2009, 09:58
Откуда: Россия
Контактная информация:

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

Сообщение Administrator »

Сейчас посмотрел несколько файлов phpbb, там везде есть закрывающий тег ?>, и действительно без пробела после него. Если убрать этот тег, то такой сайт будет работать?
Аватара пользователя
Slash
Эксперт
Сообщения: 501
Зарегистрирован: 17 окт 2012, 12:20
Контактная информация:

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

Сообщение Slash »

Administrator писал(а):Если убрать этот тег, то такой сайт будет работать?
Да, конечно.
Я во всех своих движках стараюсь убрать.

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

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

Сообщение Slash »

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

Пример работы функции:

Код: Выделить всё

$name = mysqli_real_escape_string($mysqli, $_POST['name']); 
Аватара пользователя
Slash
Эксперт
Сообщения: 501
Зарегистрирован: 17 окт 2012, 12:20
Контактная информация:

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

Сообщение Slash »

Если сценарий выдал вам необходимый результат, то остановите его, что бы снизить нагрузку на сервер. Например остановить сценарий можно функцией exit. Пример:

Код: Выделить всё

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

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

Сообщение Slash »

Многие начинают работать в кодировке CP1251.
Советую не использовать эту кодировку, лучше всего UTF-8.
Аватара пользователя
Slash
Эксперт
Сообщения: 501
Зарегистрирован: 17 окт 2012, 12:20
Контактная информация:

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

Сообщение Slash »

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

Ниже PHP 5.4 не использую давно (5.6 - 7.0), но все ровно пишу полные теги.
Аватара пользователя
x64
Участник
Сообщения: 91
Зарегистрирован: 05 окт 2016, 11:05
Откуда: Подмосква
Контактная информация:

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

Сообщение x64 »

Slash писал(а):Не используйте короткие теги <?=
Не совсем понял, чем эта замечательная конструкция, полностью аналогичная <?php echo, не угодила? (:
Шорт-теги в новых версиях пыха отменены, да, но именно этот — оставлен. Более того, начиная с версии 5.4.0 тег <?= доступен всегда.
Аватара пользователя
Slash
Эксперт
Сообщения: 501
Зарегистрирован: 17 окт 2012, 12:20
Контактная информация:

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

Сообщение Slash »

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

Пример: переход на новый хостинг, который не поддерживает короткие теги.
Аватара пользователя
x64
Участник
Сообщения: 91
Зарегистрирован: 05 окт 2016, 11:05
Откуда: Подмосква
Контактная информация:

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

Сообщение x64 »

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

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

Сообщение Slash »

x64 писал(а):Пример несколько устаревший)
Так и совет для устаревших версий:
Slash писал(а):Если Ваш PHP меньше 5.4, советую использовать полный тег: <?php.
x64 писал(а):Более того, начиная с версии 5.4.0 тег <?= доступен всегда.
Об этом я и сказал:
Slash писал(а):С PHP 5.4 - включен всегда.
x64 писал(а):не осуждаю
За это я не переживаю.
Аватара пользователя
x64
Участник
Сообщения: 91
Зарегистрирован: 05 окт 2016, 11:05
Откуда: Подмосква
Контактная информация:

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

Сообщение x64 »

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

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

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

Сообщение Slash »

x64 писал(а):Бежать надо от таких советов и советчиков.
А кто тебя держит? Беги.
На свой форум я тебя не тянул, сам появился. :facepalm:
x64 писал(а):когда пытался заместо стандартной implode()
На то были свои причины.
x64 писал(а):Второй раз было сегодня.
Второй раз был из за твоего тона.
x64 писал(а):привёл пару способов из чистого JS и jQuery по правильному началу работы с контентом страницы после загрузки
И что?
x64 писал(а):Не может же Верховный Одминистратор не блистать на своём сайте.
Как ярко сказано. Видимо "звезду" обидели, тем, что не дали поблистать ей и его (или ее) заели амбиции. :lol:
Екатирина

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

Сообщение Екатирина »

Доброго времени суток. Подскажите, как связаться со Slash'ом? Срочно нужна его помощь.
Аватара пользователя
Administrator
Администратор
Сообщения: 9600
Зарегистрирован: 10 ноя 2009, 09:58
Откуда: Россия
Контактная информация:

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

Сообщение Administrator »

Здравствуйте, Екатирина. Вы можете задать свои вопросы здесь. А ещё у Slash'а есть свой форум danfa точка org.
Екатирина

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

Сообщение Екатирина »

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

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

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

Сообщение Екатирина »

x64 писал(а):Да, крупный «специалист» :facepalm:
Бежать надо от таких советов и советчиков.
А что с советами? Они по Вашему неверные? По моему советы вполне разумные и к месту.
Зря Вы так об этом человеке отзываетесь. Он между прочем сделал то, что не мог сделать долгое время наш прежний исполнитель с образованием программиста. Slash, сделал всё быстро и качественно, сайт стал работать быстрее и стало меньше нагрузки на сервер, в общем, поставил сайт на ноги.
Екатирина

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

Сообщение Екатирина »

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

Я уж начала думать, что с ним, что-то случилось. Слава Богу, ни чего!
Аватара пользователя
Slash
Эксперт
Сообщения: 501
Зарегистрирован: 17 окт 2012, 12:20
Контактная информация:

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

Сообщение Slash »

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

Спасибо за отзыв! С Вами приятно работать!
Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей