Обсуждение:PHP

Материал из Викиучебника — открытых книг для открытого мира
Перейти к: навигация, поиск

Предлагаю разделить учебник на несколько частей. Lockal 14:03, 27 августа 2006 (UTC)

Предлагаю этого не делать. Ramir 20:58, 27 августа 2006 (UTC)
+1 к разделению учебника --79.126.14.103 17:35, 10 марта 2008 (UTC)
Учебник по синтаксису и семантике языка предлагаю оставить целым, поскольку язык не настолько сложен, чтобы писать о нём много. Отдельно предлагаю поместить более специфичные темы: «Безопасность в PHP», «Боты на PHP», «Модули для популярных CMS на PHP», «Стандартные функции PHP» и т.п. --Scriptin 10:59, 2 августа 2009 (UTC)

«Описание» vs. «Объяснение»[править]

На данный момент учебник является простым переизложением содержимого официальных руководств по PHP — я не нашёл ровным счётом ничего, выходящего за эти рамки. Смысла в дублировании общедоступной информации нет, поэтому я считаю, что необходимо коренным образом пересмотреть сам подход к изложению материала.

  1. Приводить больше разнообразных и нетривиальных примеров, в том числе и тех, которые демонстрировали бы «высший пилотаж» в использовании возможностей языка: нестандартное использование оператора for, оптимизация и т.п.
  2. Отдельно выделить правила форматирования текстов php-скриптов.
  3. Пренебречь описанием стандартных функций (кроме часто используемых) в пользу примеров их использования. Я не вижу смысла в тех описаниях, которые сейчас имеются в учебнике — вместо этого желательно показать читателю, в каких задачах может пригодиться тот или иной набор функций. Например, рассмотреть использование функции sscanf и подобных в приложении к вопросам структуризации входящих данных.
  4. Уделить особое внимание вопросам безопасности — в объёме большем, чем это сделано в официальных руководствах. Сюда можно включить описание типичных уязвимостей скриптов, методов их обнаружения, анализа и устранения, а также рассмотрение общих принципов и «философии» безопасности, если так можно выразиться.
  5. Объяснить основные концепции программирования вообще и вэб-программирования в частности в объёме, достаточном для того, чтобы показать новичкам важность этих вопросов. Или хотя бы написать пару абзацев с большим количеством ссылок на соответствующие статьи.
  6. Сравнить PHP с конкурирующими языками (в рамках специализации), причём не только в плане возможностей языка, но и в вопросах популярности, коммерческого использования и т.д. Читателю лучше знать о перспективах и альтернативах.

Важно! Предлагаю основному(-ым) автору(-ам) учебника поместить на этой странице подробный (насколько возможно) план будущего учебника, чтобы другие участники могли активно включиться в работу, а не просто дополнять уже готовое. Координация действий приведёт к значительному ускорению работы над учебником — для этого можно даже обменяться контактными данными на страницах обсуждения участников. Если плана ещё нет, то его могу составить я. --Scriptin 20:18, 1 августа 2009 (UTC)

Неверная информация в учебнике[править]

Цикл перебора массивов foreach работает с копией массива, т.е. изменение элемента массива внутри этого цикла не затрагивает исходный массив. Следующий код, вопреки написанному в учебнике, не превратит все элементы массива в единицы:

<?php
  $arr = array (1, 2, 3, 4);
  $i = 0;
  foreach ($arr as $a)
    $a -= $i++;

Будет работать только такой вариант как

<?php
  $arr = array (1, 2, 3, 4);
  $i = 0;
  foreach ($arr as $k => $a)
    $arr[$k] -= $i++;

77.41.56.248 18:46, 20 мая 2010 (UTC) Alexey

Точнее, в переменную-итератор будут попадать копии элементов массива.

Уязвимость[править]

$find_names = mysql_query("SELECT * FROM users WHERE login='".$_POST['login']."'");

Блжад, ну нельзя же так. Классический пример SQL инъекции. Не раскрыта тема параметризированных запросов.

И вообще, весь код - тренажер для хакеров.

уязвимость md5[править]

На той же страничке вики написано, что он уязвим и пользоваться им не рекомендуется, нужно использовать sha2.

Оформление[править]

Просматривая статьи викиучебника я много раз сталкивался с проблемами оформления. Многие статьи имели черные заголовки весьма неприятны для человеческого глаза.

Поэтому я увидел хороший учебник по PHP и сразу начал писать, чтобы учли мои просьбы. Например первая из них - не вылезать за границы страницы. Иначе примеры становится читать очень неудобно. Вторая - как я уже говорил про то, что черные заголовки - не всегда приятно я повторю это еще раз. Хотел бы чтобы заголовки были оформлены хотя бы любым цветным цветом. На этом пока мои пожелания закончились. Будут еще - напишу. Volobuev Ilya. Создатель проекта учебник по программированию 06:57, 16 мая 2014 (UTC)

  1. «Черные заголовки» можно найти едва ли не в любом печатном издании. Если говорить о Европе — первые из оных появились в XV в. Почему-то без малого шесть веков это проблемы не составляло. (Хочу, кроме того, обратить внимание на w:Википедия:Персональное оформление, — любой участник Викиучебника может при просмотре применять оформление страниц, соответствующее собственным предпочтениям. Вносить изменения в сами страницы при этом не требуется.)
  2. В отношении «границ страницы» — где именно возникают проблемы?
Ivan Shmakov (ов) 07:33, 16 мая 2014 (UTC)

Скажи, тебе удобно читать учебник, где одна строка длинная, а другая короткая? Volobuev Ilya. Создатель проекта учебник по программированию 15:04, 16 мая 2014 (UTC)

Универсальность[править]

Предлагаю вместе с POST и GET запросами описать и $_REQUEST и объяснить, что при написании кода им пользоваться удобнее, т.к в будущем при изменении POST на GET и обратно, не потребуется переписывать весь код. noName188.162.245.64 17:17, 6 июля 2016 (UTC)

Ошибка в синтаксисе описания таблицы в параграфе "2.3. Внешние переменные"[править]

В параграфе "2.3. Внешние переменные" данного учебника содержится ошибка. А именно, в начале параграфа у вас есть список из двух пунктов и в первом элементе списка написано следущее:

1. Сначала PHP инициализирует массивы $_ENV (содержащий переменные среды-окружения; англ. environment) и $_SERVER[1]. Ассоциативный массив $_SERVER содержит следующие ключи (индексы массива): {| class="wikitable" !Ключ (индекс ячейки массива) !Полный путь к ячейке массива !Содержимое ячейки массива |- |HTTP_USER_AGENT |$_SERVER['HTTP_USER_AGENT'] |Сведения о браузере клиента. |- |HTTP_ACCEPT |$_SERVER['HTTP_ACCEPT'] |Принимаемые MIME-типы. Может служить для определения возможностей браузера. |- |PHP_SELF |$_SERVER['PHP_SELF'] |Путь к файлу, содержащему выполняющийся скрипт, относительно корневого каталога (папки) сервера. Пример: /w/index.php. |}

Вы явно хотели сделать какую-то табличку. Судя по всему, словами "{| class="wikitable" !Ключ (индекс ячейки массива)..." начинается и словами "... (папки) сервера. Пример: /w/index.php. |}" заканчивается описание некоторой таблички. Однако вместо самой таблицы на страницу выводится, похоже, её исходный текст. Или допущена ошибка в синтаксисе описания таблицы, или вы забыли таблицу заключить в какие-то тэги. Поправьте, пожалуйста, эту ошибку. Указание на ошибку я оставил в самом тексте учебника.

217.10.40.176 12:40, 16 августа 2016 (UTC)