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

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

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

Сообщение Slash

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

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

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

Спасибо за внимание.
Аватара пользователя
Administrator
Администратор
Сообщения: 9600

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

Сообщение Administrator

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

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

Сообщение Slash

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

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

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

Сообщение Slash

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

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

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

$name = mysqli_real_escape_string($mysqli, $_POST['name']); 
Аватара пользователя
Slash
Эксперт
Сообщения: 501

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

Сообщение Slash

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

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

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

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

Сообщение Slash

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

Советы по 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

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

Сообщение x64

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

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

Сообщение Slash

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

Пример: переход на новый хостинг, который не поддерживает короткие теги.
Аватара пользователя
x64
Участник
Сообщения: 91

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

Сообщение x64

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

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

Сообщение Slash

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

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

Сообщение x64

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

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

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

Сообщение Slash

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

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

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

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

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

Сообщение Administrator

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

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

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

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

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

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

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

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

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

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

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

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

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

Сообщение Slash

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

Спасибо за отзыв! С Вами приятно работать!
  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение