Обсуждение:PHP: различия между версиями
Строка 36: | Строка 36: | ||
[[Служебная:Contributions/77.41.56.248|77.41.56.248]] 18:46, 20 мая 2010 (UTC) Alexey |
[[Служебная:Contributions/77.41.56.248|77.41.56.248]] 18:46, 20 мая 2010 (UTC) Alexey |
||
:Точнее, в переменную-итератор будут попадать копии элементов массива. |
|||
== Уязвимость == |
== Уязвимость == |
Версия от 19:24, 5 июля 2013
Предлагаю разделить учебник на несколько частей. 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 — я не нашёл ровным счётом ничего, выходящего за эти рамки. Смысла в дублировании общедоступной информации нет, поэтому я считаю, что необходимо коренным образом пересмотреть сам подход к изложению материала.
- Приводить больше разнообразных и нетривиальных примеров, в том числе и тех, которые демонстрировали бы «высший пилотаж» в использовании возможностей языка: нестандартное использование оператора
for
, оптимизация и т.п. - Отдельно выделить правила форматирования текстов php-скриптов.
- Пренебречь описанием стандартных функций (кроме часто используемых) в пользу примеров их использования. Я не вижу смысла в тех описаниях, которые сейчас имеются в учебнике — вместо этого желательно показать читателю, в каких задачах может пригодиться тот или иной набор функций. Например, рассмотреть использование функции
sscanf
и подобных в приложении к вопросам структуризации входящих данных. - Уделить особое внимание вопросам безопасности — в объёме большем, чем это сделано в официальных руководствах. Сюда можно включить описание типичных уязвимостей скриптов, методов их обнаружения, анализа и устранения, а также рассмотрение общих принципов и «философии» безопасности, если так можно выразиться.
- Объяснить основные концепции программирования вообще и вэб-программирования в частности в объёме, достаточном для того, чтобы показать новичкам важность этих вопросов. Или хотя бы написать пару абзацев с большим количеством ссылок на соответствующие статьи.
- Сравнить 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 инъекции. Не раскрыта тема параметризированных запросов.
И вообще, весь код - тренажер для хакеров.