Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Уроки по PHP для новичков.

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Уроки по PHP для новичков.
Имя
Сообщение << Старые топики   Новые топики >>
Уроки по PHP для новичков. - 2009-11-28 20:05:15.110000   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
  Ух..чет все вокруг пишут свои статьи, а я вклад в рунет  не вношу. Плохо это. Вот и решил написать цикл статей по теме в которой я хоть немного да понимаю :) Уроки PHP.
 
 1.Куда нажать? Где писать? Что запустить?
   У PHP есть множество разнообразых сред разработки (Zend, Delphi for PHP, Eclipse PDT,phpDesigner), но писать можно даже в блокноте.  Я пишу код в Notepad++, т.к не хочу чтобы висела тяжеловесная программа. Для набора кода советуют Dreamweaver, но мне лень качать и я им не пользуюсь. В общем простор вашей фантазии. Предварительно надо скачать локальный сервер. Локальный сервер, это сервер, работающий либо на компьютере пользователя, либо в локальной сети. Также нужен интерпретатор PHP, систему управления БД итд. Чтобы не заморачиваться можно скачать готовые набор программ (apache, mysql итп) например Денвер. Скачать можно тут: Скачать.

   В принципе, все устанавливается без проблем и если вы введете в строке браузера localhost (или что вы там придумали), то уже увидите какое-нибудь сообщение от сервера. В случае Денвера это инструкция по работе с ним. Например то, что все скрипты надо кидать в "/home/localhost/www"
 
2.С чего начать писать скрипт?
Вариантов несколько, но предпочтительными являются.
&lt;?php //Код скрипта ?&gt; &lt;? //Код скрипта ?&gt;  
3.Комментарии
Комментарии нужны, чтобы оставлять свои пояснения в коде, чтобы не запутаться самому, помочь разобраться другим, закомментировать забракованный код, который жалко удалить , или можно оставить пасхалку, раскомментировав которую можно получить что-нибудь этакое.
Однострочные комментарии к коду начинаются с - //, либо с #. Многострочные пишутся в /*…*/. Интерпретатор не обращает внимание на содержание комментариев.
 
4.Наш первый скрипт. Helloworld.
  Наиболее часто используемая синтаксическая конструкция в PHP это echo() - используется для вывода текста на экран. Вместо текста в параметрах можно писать html код.  Ну что ж, напишем хелловорлд?
&lt;?php Echo('&lt;i&gt;ХелоВорлд&lt;/i&gt;'); ?&gt; Примечание:
Не забываем заканчивать оператор точкой с запятой и заключать текст в кавычки. Кстати о кавычках, в PHP можно использовать как одинарные так и двойные кавычки. Двойные могут обрабатывать некоторые управляющие последовательности (например \n,\r,\t подробнее про управляющие последовательности тут: http://php.su/learnphp/datatypes/?string#double);
 
Сохраняйте ваш скрипт в указанной директории (/home/localhost/www/) в формате *.php, а лучше назвать index.php (Следите чтобы не сохранить случайно index.php.txt), т.к. Index.php интерпретируется сервером в первую очередь. Запускаете браузер и видите свое сообщение, а значит сервер работает, вы начали изучать PHP, и написали хелловорлд :).
5.Послесловие
 В следующем уроке мы рассмотрим основные конструкции языка (условия, циклы..) и получим первое ДЗ. Урок хоть и будет немного нудным, но без него никак.
p.s. Если надо я продолжу писать, уже сейчас готов следующий урок, по основным конструкциям и уже пишется третий. Пока хочу знать это требуется или нет?
Post #: 1
RE: Уроки по PHP для новичков. - 2009-11-28 22:01:43.163333   
Xalyavsheg

Сообщений: 9
Оценки: 0
Присоединился: 2008-11-27 21:22:36.883333
Зачот! Пиши еще! 
Post #: 2
RE: Уроки по PHP для новичков. - 2009-11-29 02:47:46.940000   
wolf295214

Сообщений: 5
Оценки: 0
Присоединился: 2009-04-01 19:10:00.026666
Пиши есчё!:)
Любой труд всегда оценивается
Post #: 3
RE: Уроки по PHP для новичков. - 2009-11-29 09:25:45.276666   
Motorcode

Сообщений: 68
Оценки: 0
Присоединился: 2009-07-15 21:15:27.283333
Я думаю это будет интересно, так держать
Post #: 4
RE: Уроки по PHP для новичков. - 2009-11-29 10:48:05.270000   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
Хорошо, есть 3 положительных отзыва. УРА!. Короче, следующий урок выложу сегодня-завтра, а потом раз в неделю.
Post #: 5
RE: Уроки по PHP для новичков. - 2009-11-29 11:41:57.720000   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000
quote:

У PHP нет своей среды разработки
http://www.zend.com/products/studio/
quote:

нет даже компилятора :)
А зачем интерпретируемому языку иметь компилятор?
quote:

Я пишу в Notepad++ и Блокноте. Советуют Dreamweaver, но мне лень качать и я им не пользуюсь.
все 3 программы - сакс, вернее они не для разработки на PHP
quote:

Предварительно надо скачать локальный сервер, чтобы вы могли запускать свои скрипты.
Для запуска скриптов нужен не сервер, а интерпретатор.
quote:

Что такое локальный сервер? Это программа имитирующая работу сервера на вашем компьютере.
А я думал, что локальный сервер, это сервер, работающий либо на компьютере пользователя, либо в локальной сети.
quote:

Она исполняет скрипты, работает с БД итп.
Ничего такого она не делает.
quote:

Наиболее популярен Денвер.
Денвер - это не сервер, это набор дистрибутивов.
quote:

Наиболее часто используемая функция в PHP это echo()
Это не функция, а синтаксическая конструкция.
quote:

p.s. Если надо я продолжу писать
Не надо. Чтобы писать статьи, нужно разбираться в предмете, о котором вы пишите. После таких "учений", нужно будет обратно переучиваться.
Post #: 6
RE: Уроки по PHP для новичков. - 2009-11-29 11:42:43.523333   
Agent Smith

Сообщений: 976
Оценки: 0
Присоединился: 2007-04-10 21:56:49.593333
Автор жжот :D Пиши есчё!

P.S. ORb, а ты однако суровый.:D
Post #: 7
RE: Уроки по PHP для новичков. - 2009-11-29 11:56:40.003333   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
quote:

ORIGINAL: oRb

quote:

У PHP нет своей среды разработки
http://www.zend.com/products/studio/
quote:

нет даже компилятора :)
А зачем интерпретируемому языку иметь компилятор?
quote:

Я пишу в Notepad++ и Блокноте. Советуют Dreamweaver, но мне лень качать и я им не пользуюсь.
все 3 программы - сакс, вернее они не для разработки на PHP
quote:

Предварительно надо скачать локальный сервер, чтобы вы могли запускать свои скрипты.
Для запуска скриптов нужен не сервер, а интерпретатор.
quote:

Что такое локальный сервер? Это программа имитирующая работу сервера на вашем компьютере.
А я думал, что локальный сервер, это сервер, работающий либо на компьютере пользователя, либо в локальной сети.
quote:

Она исполняет скрипты, работает с БД итп.
Ничего такого она не делает.
quote:

Наиболее популярен Денвер.
Денвер - это не сервер, это набор дистрибутивов.
quote:

Наиболее часто используемая функция в PHP это echo()
Это не функция, а синтаксическая конструкция.
quote:

p.s. Если надо я продолжу писать
Не надо. Чтобы писать статьи, нужно разбираться в предмете, о котором вы пишите. После таких "учений", нужно будет обратно переучиваться.

1)Ну еще есть Delphi for PHP, но разве вы пользуетесь, хотя бы одной из этих сред. Как по мне так лучше пользоватся текстовым редактором, которые не нагружает систему.
2)Я разве не написал что это интерпретатор? Значит забыл, извиняюсь.
3)Насчет что такое локальный сервер, да немного не то написал.
4)Про echo(), исправил.
5)Дайте еще один шанс :(, а вообще спасибо за замечания.
Post #: 8
RE: Уроки по PHP для новичков. - 2009-11-29 12:02:25.960000   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
Урок 2
  В этом уроке мы познакомимся с основными конструкциями и понятиями языка.
 
1)Переменные, константы.
  Переменные в PHP объявлять в общем не обязательно, можно сразу брать и использовать их. Названия переменных начинаются с знака доллара - $. Например: $a, $news, $user_id, $id12, причем названия чувствительны к регистру => $user и $UsEr разные переменные. Чтобы не было путаницы советую писать названия всех переменных в одном регистре, например в нижнем. В названиях переменных можно применять буквы латинского алфавита, цифры, знак - "_", причем название обязательно начинается с буквы.
  А вот константы объявлять надо. Но это не сложно. Воспользуемся функцией define(Имя, значение);  Например: define(PI, '3.14');  Как правило идентификаторы констант (идентификаторами называют имена переменных,  функций, констант итп) пишут в верхнем регистре, хотя это тоже не обязательно, а нужно только для удобства.
 
2)Условные переходы
  Иногда бывает необходимость провести какое-нибудь действие в зависимости от какого либо условия. Например, если А больше чем Б, то следует вывести число А, а если нет, то число Б. Синтаксис:
&lt;?php $a=5; $b=0; If ($a&gt;$b)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Условие { Echo($a);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Что делать если выполняется условие } else { Echo($b);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //Что делать если не выполняется условие } ?&gt; 
Если вторую часть (за else) не написать, то в случае отличном от условия, просто ничего не выполнится.
 
 Бывают случаи когда надо сделать много вложенных условий, тогда применяют такую конструкцию:
If (условие) { } else if (условие2){ } else if (условие3){ } Но такая конструкция получается очень громоздкой и не красивой при большом количестве условий. Тогда применяют конструкцию switch..case
Switch(условие){ Case значение1: Операторы; Break; Case значение1: Операторы; Break; Default: в ином случае }  
Приведем пример:
Switch($a) { Case 1: echo('да');Break; Case 2: echo('нет');Break; Default: echo('неизвестно'); }В этом случае если значение переменной $a, будет 1, то выводится ответ "да", если 2, то "нет", в других случаях "неизвестно".
 
 Существуют специальные операции сравнения, которые очень часто используются в программировании, а особенно в условиях. Это операции:
== - условие истинно, когда левый операнд и правый операнд равны.
!= - условие истинно, когда левый операнд не равен правому
<= - равносильно знаку "меньше либо равно".
>= - "больше либо равно"
>- больше
< - меньше
=== - равны и одинакового типа
!== - не равны или разного типа (спасибо horiz)
Итд.
 
3)Циклы
   Циклы применяются если необходимо повторить много раз какую-нибудь операцию.  В PHP несколько видов циклов, позаимствованных из различных языков программирования (Perl, C++ …).
1)Если вам известно сколько раз выполниться цикл то используется такой вид цикла:
for($i=0;$i&lt;=10;$i++) { //Операторы, которые будут повторяться }Один проход цикла по операторам называется итерацией. В первой части, "$i=0" переменной счетчику присваивается начальное значение, во второй части($i<=10) условие окончания цикла и в последней, что делать с переменной счётчиком. В нашем случаем её надо инкрементировать, то есть увеличивать на 1 за каждый проход.
2)Если вы не знаете заранее количество итераций цикла.
Тут есть два варианта:
while (условие выполнения) { //Операторы }Пока условие истинно цикл повторяется.
И второй вариант:
do{ //операторы }While(условие)Различие в том что проверка на истинность условия происходит после выполнения операторов. То есть цикл выполнится как минимум 1 раз.

Существует еще один вид циклов - foreach, позаимствованный из Perl, он удобен для перебора элементов массива. В общем виде:
foreach (массив as $key=&gt;$value) команды;
Например:
$mas["first"] = "первый"; $mas["second"] = "второй"; $mas["third"] = "третий"; foreach ($mas as $key =&gt; $value) { echo $key." ".$value."&lt;br&gt;"; }   Выведет:
quote:

first первый
second второй
third третий

Есть еще вариант записи, где ключ не доступен.
foreach (mas as $value) тело; 4)Массивы.
 Массивы очень важны в любом языке программирования, так как позволяют оперировать с огромными размерами информации, а точнее с большим количеством  переменных.:).
 Любая строка по умолчанию является массивом. Например:
$s="СтРоЧкА"; Echo($s[0]); Обращаться к элементам массива можно с помощью индекса - порядкового номера элемента. То есть строка echo($s[0]); выведет первый элемент, то есть букву "С". Индекс указывается в квадратных скобках.
Можно массив задать еще и так:
$s[0]="C"; $s[1]="p"; $s[2]="O";Удобно то же самое сделать циклом :) Особенно если элементов в массиве 1000.
Также существует конструкция array(); для задания элементов массива.
$s=array("s","ss","sss"); В этом случае первый элемент получает индекс 1, второй-2 и.т.д
Можно задать индексы элементов явно:
$s=array("s","ss",7=&gt; "sss","ssss"); В этом случае элемент "sss" имеет индекс 7, а следующий за ним индекс 8.

Также вместо числа, в качсетве индекса, можно использовать строку. Такие массивы называются ассоциативными. Например:
$theme["programming"] = "Программирование"; $theme["design"] = "Дизайн"; echo $theme["design"]
Как видите, работать с ними так же легко.
5)Домашняя работа
Чтобы скучный и нудный материал усваивался лучше (до лучших более интересных времен), и чтобы мозг не забывал до следующего урока, что было в предыдущем, мы будем делать задания. В этот раз простые. Ответы отправляйте мне на e-mail [email=Revival1002@gmail.com]Revival1002@gmail.com[/email], я проверю и если будут ошибки подскажу. А вопросы лучше задавайте здесь, чтобы остальные тоже узнали ответы на них.
Номер 1:
Вывести на экран первые N букв латинского алфавита с использованием массивов и циклов. (Подсказка: в массиве хранить весь алфавит, и выводить с помощью цикла, обращаясь к элементам по индексу).
Номер 2:
В массиве размерностью 10 дана последовательность нулей и единиц. Нужно вывести на экран количество нулей и количество единиц. (Массив заполните сами, т.к мы еще не умеем получать данные от пользователя)
Номер 3:
В переменной $a дана цифра от 1 до 26, нужно вывести на экран символ английского алфавита с порядковым номером $a (решение аналогично первой задаче).
Номер 4:
Заполнить массив $s первыми 100 числами Фибоначчи и вывести 67'ой элемент на экран.
(1,1,2,3,5,8,13… - Каждый следующий элемент, это сумма двух предыдущих)
Пример решения задачи:
В переменной $a, хранится некоторое число. Нужно вывести сумму цифр от 1 до $a.
Решение:
&lt;?php $a = 6; $k=0; //Желательно заранее указать значение этой переменной. for($i=1;$i&lt;=$a;$i++) { $k=$k+$i; //Складываем предыдущую сумму с новым числом. } Echo $k; //Выводим результат на экран. ?&gt; 6)Послесловие
Ух, в общих чертах основы рассмотрели :) В следующем уроке пройдем GET и POST запросы, научимся работать с формами и получать данные от пользователя, дальше будет интереснее, а так пока что вроде все легко :)  Не забывайте писать свои замечания и задавать вопросы!
p.s. Надеюсь этот урок лучше предыдущего, а если нет, то .. очень жаль..
Post #: 9
RE: Уроки по PHP для новичков. - 2009-11-29 13:33:46.053333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Замечания по уроку №2:
quote:

2)Условия

Если строго придерживаться терменологии, то IF и SWITCH это не условия, а условные переходы. Условия это $a==$b.

quote:

Примечание:
Существует еще один вид циклов - foreach, позаимствованный из Perl, но так как лично я использую его редко и вообще считаю что он вполне заменим другими видами, мы рассматривать его не будем.


А вот это зря, зря…
В моих программах foreach встречается чаще чем for и while вместе взятые.

quote:

Существуют специальные операции сравнения, которые очень часто используются в программировании, а особенно в условиях. Это операции:
== - условие истинно, когда левый операнд и правый операнд равны.
!= - условие истинно, когда левый операнд не равен правому
&lt;= - равносильно знаку "меньше либо равно".
&gt;= - "больше либо равно"
&gt;- больше
&lt; - меньше
Итд.

Забыли === - равны и одинакового типа, и !== - не равны или разного типа
Post #: 10
RE: Уроки по PHP для новичков. - 2009-11-29 17:29:16.440000   
Xalyavsheg

Сообщений: 9
Оценки: 0
Присоединился: 2008-11-27 21:22:36.883333
Жду продолжения!:)
Post #: 11
RE: Уроки по PHP для новичков. - 2009-11-29 20:26:30.770000   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
Я проверил у вас ДЗ, очень много ошибок. Все ответил на e-mail Продолжение через неделю.
Post #: 12
RE: Уроки по PHP для новичков. - 2009-11-30 14:25:37.456666   
G.Bug

Сообщений: 49
Оценки: 0
Присоединился: 2009-10-18 19:16:51.236666
Пиши не останавливайся….. я этот хпх никогда не переваривал, может хоть тут чего допру
Post #: 13
RE: Уроки по PHP для новичков. - 2009-11-30 20:27:40.843333   
XeL077

Сообщений: 9
Оценки: 0
Присоединился: 2009-11-17 18:22:35.883333
Не всё верно и точно, но хорошо.
Post #: 14
RE: Уроки по PHP для новичков. - 2009-12-04 15:53:49.970000   
kent99

Сообщений: 1
Оценки: 0
Присоединился: 2009-12-04 13:24:17.893333
quote:


Обращаться к элементам массива можно с помощью индекса - порядкового номера элемента. То есть строка echo($s[1]); выведет первый элемент, то есть букву "С".

строка echo($s[1]); выведет второй элемент, т.е. букву "т".
Нумерация элементов массива начинается с нуля.
Пиши еще!!!
Post #: 15
RE: Уроки по PHP для новичков. - 2009-12-04 20:24:26.953333   
phpdreamer

Сообщений: 119
Оценки: 0
Присоединился: 2009-07-19 00:46:59.216666
по второй статье:

а про foreach незнаем?
и почему асоциативные массивы опущены?

ЗЫ: orb хорошо покритиковал первую статью (за дело!)
немного добавлю
quote:

У PHP нет своей среды разработки

quote:

нет даже компилятора :)

сред разработки лично у меня в прогах 3(хоть и не 1 не установлено), всего их хз сколько, но много
что касается компилятора, то bamcompile я считаю компилятором… хотя опять же это скриптовый язык.

Имхо автору рано писать статьи. Да, возможно это поможет разобраться новичкам, но книжка автора, который написал сотню книг по программированию (например С.Хольцнер) поможет гораздо лучше…
и создаст меньше неграмотных программистов

Читайте книжки, а не вые…
Post #: 16
RE: Уроки по PHP для новичков. - 2009-12-05 22:17:43.410000   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
quote:

сред разработки лично у меня в прогах 3(хоть и не 1 не установлено), всего их хз сколько, но много
что касается компилятора, то bamcompile я считаю компилятором… хотя опять же это скриптовый язык.

Имхо автору рано писать статьи. Да, возможно это поможет разобраться новичкам, но книжка автора, который написал сотню книг по программированию (например С.Хольцнер) поможет гораздо лучше…
и создаст меньше неграмотных программистов

Читайте книжки, а не вые…

К критике отношусь нормально, потому что действительно ошибки есть. Конечно книги есть, они лучше, намного. Но не у всех есть возможность покупать книги (а они сейчас достаточно дорогие), а читать книги в электронном варианте, не всем по душе.  Завтра выложу еще урок, недочеты и ошибки напишете в личку, постараюсь исправить.
Post #: 17
RE: Уроки по PHP для новичков. - 2009-12-06 19:14:00.673333   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
Мои прошлые уроки бешенной популярностью не пользовались, было прислано всего одно ДЗ на проверку. Но так как читатели, которым понравилось были, то я продолжаю. Если будут замечания, то пишите в личку и я исправлю. Вопросы можно задавать тут же.
 Итак сегодня мы научимся принимать данные от пользователя.  Желательно знать html, приступая к PHP, но если вы знаете его не очень то сегодня я познакомлю вас с формами, так как без них дальше тяжеловато.
1)Формы
 Формы позволяют получать некоторые данные от посетителя, передавать их PHP скрипту. Без форм не  обойтись создавая регистрацию и авторизацию на сайте, для организации добавления комментариев и создания гостевой книги.
 


 Для создания формы, в нужном месте добавим тег <form>
&lt;form action="add.php"method="POST"&gt;&nbsp;&lt;/form&gt; 
    Где параметр action - это тот скрипт которому будут переданы данные, а method - указывает каким методом будут переданы данные. Два метода мы рассмотрим чуть позже. Внутри этого блока <form></form> мы пишем из каких элементов будет состоять форма: различные кнопки, поля ввода, флажки.
    Например, однострочное поле ввода: <input name="FIO" value="ФИО">
    Name - имя элемента, нельзя чтобы оно дублировалось (с  таким именем должен быть только один элемент), value - значение по умолчанию. Для отправки данных, используется такой элемент:
<input type="submit"  name="send"  value="Отправить"> - это кнопка для отправки данных из формы скрипту.
Более подробно познакомиться с элементами форм можно тут:  http://www.softtime.ru/info/articlephp.php?id_article=96
 
А теперь поговорим об основных методах передачи информации.
 
2)Методы POST и GET
 а)Метод GET
Вы наверно видели URL такого вида: http://example.com/index.php?id=11&amp;pr=543
Метод GET передает информацию с использованием  URL. Данные записываются после знака "?"  в виде имя=значение  и разделяются знаком - "&".  Использовать метод GET следует аккуратно, так как любой пользователь может изменить URL запрос, либо в URL может быть видна важная информация (например пароль пользователя, в этом случает GET не используют).
 Допустим вы отправили скрипту, методом GET имя (name) и фамилию (surname), тогда чтобы вывести данные, нужно обращаться к элементам суперглобального массива $_GET; например
$name=$_GET['name']; $surname=$_GET['surname'];
Для передачи информации, даже не обязательно создавать форму, можно заранее сформировать ссылку с нужными параметрами и перейти по ней. Например: <a href="index.php?id=1&app=12">Ссылка</a>
 
  б)POST
В отличие от метода GET, POST передает значения переменных в теле URL запроса. Вы не можете увидеть их в URL. Доставать данные можно аналогичным способом:
$name=$_POST['name']; $surname=$_POST['surname'];&nbsp; При передачи сравнительно больших объемов информации следует использовать именно POST.
Примечание:
Передавая пароли следует их хешировать. Одним из популярнейших алгоритмов хеширования является md5, примените к паролю перед передачей функцию md5() и сравнивайте хеши паролей. В этом случае если злоумышленник сможет взломать вашу БД, то ему будет труднее узнать пароль, а если пароль еще и состоит из букв разного регистра, цифр и спецсимволов, то взломать его практически невозможно.
 
Примечание:
Желательно заменять все спецсимволы получаемые от пользователя на их html сущности, то есть их заменители. Иначе, у вас в скрипте будет дыра, называемая XSS. Сделать замену можно с помощью функции htmlspecialchars();

В следующем уроке мы рассмотрим, что такое cookies, сессии, научимся немного работать с файлами.
3)Домашняя работа (решенные задачи отправляйте на [email=Revival1002@gmail.com]Revival1002@gmail.com[/email] я проверю)
1)Есть форма, состоящая из однострочных полей ввода, имя и фамилия. Скрипт должен обработать полученные от формы данные, и написать "Привет имя фамилия". Не забывайте, что пользователь может ввести не имя и фамилию, а вредоносный код, поэтому проводите замену спецсимволов.
2)Вы вводите в однострочное поле ввода текст, скрипт получает этот текст и выводит его задом наперед.
Пример решения&nbsp;&nbsp;задачи:
Есть форма Логин и Пароль. В переменной $passS храниться хеш пароля, а в переменной $loginS  - логин пользователя . Если пользователь правильно вводит логин и пароль, надо вывести "Привет, $loginS", в противном случае, послать нафиг.
Форма:
[u][/u][link=http://december.com/html/4/element/html.html]&lt;html[/link] [link=http://december.com/html/4/element/head.html]&lt;head&gt;[/link][link=http://december.com/html/4/element/title.html]&lt;title&gt;[/link]Форма&lt;/title&gt;&lt;/head&gt; [link=http://december.com/html/4/element/body.html]&lt;body&gt;[/link] [link=http://december.com/html/4/element/form.html]&lt;form[/link] action="ex.php" method="POST"&gt; LOGIN:&amp;nbsp;[link=http://december.com/html/4/element/input.html]&lt;input[/link] name="login" value="Имя"&gt;[link=http://december.com/html/4/element/br.html]&lt;br&gt;[/link][link=http://december.com/html/4/element/br.html]&lt;br&gt;[/link] PASS:&amp;nbsp;[link=http://december.com/html/4/element/input.html]&lt;input[/link] type="password" name="pass"&gt;[link=http://december.com/html/4/element/br.html]&lt;br&gt;[/link] [link=http://december.com/html/4/element/input.html]&lt;input[/link] type="submit" value="Отправить"&gt; &lt;/form&gt; &lt;/body&gt; &lt;/html&gt;[/align] ex.php
&lt;?php $loginS="admin"; $passS="21232f297a57a5a743894a0e4a801fc3"; //хеш пароля 'admin' $login=$_POST['login']; //Получаем данные из формы $pass=$_POST['pass']; if (($loginS==$login) and ($passS==[link=http://www.php.net/md5]md5[/link]($pass)))&nbsp; //Сравниваем логин и хеш пароля { [link=http://www.php.net/echo]echo[/link] 'Привет, '.$loginS.'!'; //Привет, admin } else { [link=http://www.php.net/echo]echo[/link] 'Иди нафиг. Я тебя не знаю'; } ?&gt; 4)Завершение
Надеюсь в этот раз ДЗ будет выполнено. Успеха в изучении PHP.  В воскресенье-понедельник ждем следующий урок:)
Post #: 18
RE: Уроки по PHP для новичков. - 2009-12-08 14:22:21.603333   
mirand

Сообщений: 37
Оценки: 0
Присоединился: 2009-07-23 14:42:19.030000
Revival1002

Спасибо :) клевые уроки8|, книжки читать:@ лень че то, а так по чуть чуть интересно :D
Post #: 19
RE: Уроки по PHP для новичков. - 2009-12-08 15:28:03   
Smelo

Сообщений: 119
Оценки: 0
Присоединился: 2009-09-27 15:48:37.386666
http://www.php.ru/manual/introduction.html
Post #: 20
RE: Уроки по PHP для новичков. - 2009-12-08 17:18:56.993333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
Самый хороший учитель/самоучитель/наставник/преподаватель - это справочник!
Крайне-просто и максимально-информативно!
Зачем уроки!?!… Это же не танцы, где нужно показывать, как красивее попой двигать….))

…Единственное что нужно объяснить новичку, это как к Апачу прикрутить php и mysql, что бы было в чём работать.
Так что я думаю достаточно одного урока, а дальше лучше не мешать)
Post #: 21
RE: Уроки по PHP для новичков. - 2009-12-08 18:11:58.016666   
codeismy.name

Сообщений: 618
Оценки: 0
Присоединился: 2009-07-19 00:30:13.200000
интересно.
Орб, я насчёт твоих замечаний не совсем согласен.. новичку было бы понятнее именно так как написал Revival1002
Post #: 22
RE: Уроки по PHP для новичков. - 2009-12-08 19:18:04.776666   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
quote:

Спасибо :) клевые уроки8|, книжки читать:@ лень че то, а так по чуть чуть интересно :D

Спасибо

quote:

http://www.php.ru/manual/introduction.html

quote:

Самый хороший учитель/самоучитель/наставник/преподаватель - это справочник!
Крайне-просто и максимально-информативно!
Зачем уроки!?!… Это же не танцы, где нужно показывать, как красивее попой двигать….))

…Единственное что нужно объяснить новичку, это как к Апачу прикрутить php и mysql, что бы было в чём работать.
Так что я думаю достаточно одного урока, а дальше лучше не мешать)

Кому то удобнее читать справочник, кому то книгу, а кому то заниматься по урокам. ИМХО кому как.
p.s. Agent Smith, mr_Anderson - не топик, а матрица. (шучу)
quote:

интересно.
Орб, я насчёт твоих замечаний не совсем согласен.. новичку было бы понятнее именно так как написал Revival1002

Ну несколько ошибок действительно были, я исправил. Тем более, с течением времени, я исправляю и дополняю уроки. Но думаю те ошибки, которые были не сказались бы очень критично на знаниях человека. Вообще, лучше учится по нескольким учебникам\справочникам\сборникам уроков, чтобы узнать точки зрения нескольких авторов и уточнять некоторые моменты. Спасибо.
Post #: 23
RE: Уроки по PHP для новичков. - 2009-12-08 19:41:53.303333   
Pashkela

Сообщений: 3756
Оценки: 736
Присоединился: 2007-01-03 06:19:40.900000
quote:

Но думаю те ошибки, которые были не сказались бы очень критично на знаниях


Нельзя судить о последствиях, самому не осознавая параметров "кретичности" (ошибка в последнем слове сделана специально)
Post #: 24
RE: Уроки по PHP для новичков. - 2009-12-08 20:06:10.540000   
VaddeR

Сообщений: 3
Оценки: 0
Присоединился: 2009-12-06 14:24:39.590000
Revival1002 А у тя есть свой сайт?
Post #: 25
RE: Уроки по PHP для новичков. - 2009-12-08 20:29:17.773333   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
quote:

Кому то удобнее читать справочник, кому то книгу, а кому то заниматься по урокам. ИМХО кому как.

Конечно эти уроки обязательно окажутся кому то полезными, но больше всего пользы они принесут самому автору;) Ведь в процессе создания этих уроков он сам многому учится - работает над своими ошибками, узнаёт новое, в общем оттачивает своё мастерство.
Можно даже такой метод включить в программу этих уроков) Пусть будет такой урок - "Научился сам - поучи другого". Например каждый пятый. Вместо экзамена. По материалу пройденых уроков научить другого чела тому же, что сам освоил. А лучше двух человек - что бы пирамида получилась, типа финансовой, но только образовательная) Так очень-очень быстро все-все-все программистами PHP станут и матрица будет повсюду - когда мы смотрим телевизор, когда ходим в церковь…)))
Post #: 26
RE: Уроки по PHP для новичков. - 2009-12-08 20:37:59.723333   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
quote:

Revival1002 А у тя есть свой сайт?

Есть, я писал. Вернее это не совсем сайт, а так личный блог для близких друзей и знакомых. Да и записи я там делаю редко, последняя была 1-2 сентября. А так, эти же уроки, но в более приемлимом виде я публикую на сайте своего знакомого - http://www.sigel.ru/
quote:

Конечно эти уроки обязательно окажутся кому то полезными, но больше всего пользы они принесут самому автору;) Ведь в процессе создания этих уроков он сам многому учится - работает над своими ошибками, узнаёт новое, в общем оттачивает своё мастерство.
Можно даже такой метод включить в программу этих уроков) Пусть будет такой урок - "Научился сам - поучи другого". Например каждый пятый. Вместо экзамена. По материалу пройденых уроков научить другого чела тому же, что сам освоил. А лучше двух человек - что бы пирамида получилась, типа финансовой, но только образовательная) Так очень-очень быстро все-все-все программистами PHP станут и матрица будет повсюду - когда мы смотрим телевизор, когда ходим в церковь…)))

Вы меня раскололи:D Целями данных уроков является не только научить других чему-то, но и лучше, глубже разобраться самому. А насчет "Научился-сам, научи другого" интересная затея. Надо обязательно попробовать. Но главное вовремя исправлять ошибки в предыдущих уроках, чтобы они не переходили от одних людей к другим.
Post #: 27
RE: Уроки по PHP для новичков. - 2009-12-08 20:52:50.390000   
mr_Anderson

Сообщений: 140
Оценки: 0
Присоединился: 2008-11-29 19:52:02.186666
quote:

Но главное вовремя исправлять ошибки в предыдущих уроках, чтобы они не переходили от одних людей к другому

Ну чем больше людей будет пользоваться методами, содержащими ошибки, тем скорее эти ошибки будут обнаруживаться. Ученики будут одновременно и тестировщиками) Главное что бы обратная связь хорошо работала и все недоразумения оперативно всплывали)
Post #: 28
RE: Уроки по PHP для новичков. - 2009-12-08 22:05:48.356666   
oRb

Сообщений: 4044
Оценки: 597
Присоединился: 2007-03-28 18:45:06.630000

quote:

ORIGINAL: codeismy.name

интересно.
Орб, я насчёт твоих замечаний не совсем согласен.. новичку было бы понятнее именно так как написал Revival1002

Да. Новичок поймет, то что говорил ТС, но проблема заключается в том, что автор, объясняя, допускает ошибки.
Одно дело понять, что тебе говорят, а другое дело - является ли истиной, то что тебе говорят?
Post #: 29
RE: Уроки по PHP для новичков. - 2009-12-09 06:55:57.493333   
mirand

Сообщений: 37
Оценки: 0
Присоединился: 2009-07-23 14:42:19.030000
Revival1002

удобнее когда кто нибудь объясняет :)


quote:

ORIGINAL: Smelo

http://www.php.ru/manual/introduction.html


Спасибо:)
Post #: 30
RE: Уроки по PHP для новичков. - 2009-12-09 14:20:14.016666   
Samson007

Сообщений: 44
Оценки: 0
Присоединился: 2009-05-06 20:32:34.296666
За Денвер спасибо… Давно искал такой комплект.
Но всё же предпочту учиться по книженции)
Post #: 31
RE: Уроки по PHP для новичков. - 2009-12-09 16:17:09.510000   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
quote:

Да. Новичок поймет, то что говорил ТС, но проблема заключается в том, что автор, объясняя, допускает ошибки.
Одно дело понять, что тебе говорят, а другое дело - является ли истиной, то что тебе говорят?

Но ведь я исправляю ошибки, пусть и с помощью критики. Только плохо, когда она грубо выражена. Настроение портится.
quote:

За Денвер спасибо… Давно искал такой комплект.
&nbsp;

Странно, Денвер по моему один из часто используемых наборов дистрибутивов.
Post #: 32
RE: Уроки по PHP для новичков. - 2009-12-09 18:15:21.670000   
FriLL

Сообщений: 2539
Оценки: 335
Присоединился: 2007-08-11 17:14:26.703333
quote:

Странно, Денвер по моему один из часто используемых наборов дистрибутивов.

у меня TopServer 2.1
Post #: 33
RE: Уроки по PHP для новичков. - 2009-12-15 16:21:33.603333   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
Урок 4. Сессии и cookies
Так потихоньку,  мы добрались до 4 урока, посвященному сессиям и cookies.  Все замечания и неточности пишите в личку, я исправлю. Ну начнем
1)Что такое и с чем это едят?
   Допустим вы авторизовались на каком то сайте. Как же, когда вы переходите на другую страницу или вообще закрываете браузер, при возвращении на страницу вы остаетесь все равно авторизованным? Все дело в cookies. Cookies - это файлы хранимые на компьютере пользователя, и передаваемые серверу веб-браузером. Создает эти файлы сервер. Таким образом можно организовать аутентификацию на сайте, проверку не голосовал ли пользователь в опросе ранее (хотя тут применять cookies не желательно).
2)Как их использовать?
Для начала следует установить cookies, с помощью функции setcookie(имя, значение, время по истечении которого cookies станут не действительны, путь по которому доступен cookies, доступен ли cookies не по запросу https)
Самым простым примером, при изучении cookies обычно является скрипт, считающий сколько раз вы посетили страничку.
&lt;? $_COOKIE['i']++; setcookie("i",$_COOKIE['i']); echo $_COOKIE['i']; ?&gt; Как видите создать cookies очень просто. Вы можете хранить в них логин и хеш пароля пользователя (хотя лучше хранить другие данные, если хешем завладеет злоумышленник, он может расшифровать хеш, если пароль пользователя простой)  либо вы можете хранить другие данные позволяющие 100% определить пользователя и при следующем заходе на сайт считать эти данные и авторизовать пользователя автоматически. Но следует учитывать что cookies могут быть выключены в настройках браузера некоторых пользователей.
Теперь о сроке давности cookies.  Если вы пропускаете параметр, то время по умолчанию - 1 сеанс, то есть пока пользователь не закроет браузер. Для установки срока годности cookies применяют функции time() и mktime();
&lt;?php setcookie("i", $_COOKIE['I'], time() + 60); //Действие прекращается через минуту setcookie("i", $_COOKIE['I'], mktime(0,0,0,01,20,2010));&nbsp; //До 20 января 2010 года (мой ДР :)) ?&gt; Для удаления  cookies пишем setcookie(имя удаляемого cookies);
3)Сессии
Сессия это группа переменных, хранящиеся после выполнения скрипта. В отличие от кукис не хранятся на компьютере пользователя. Но вам выдается специальный идентификатор сессии (переменная PHPSESSID), он позволяет однозначно отличить вас от других пользователей. Идентификатор хранится либо у вас в кукис, либо передается через обычный GET/POST запрос, в зависимости от настроек вашего сервера. Чтобы работать  с сессиями, сначала нужно их открыть с помощью функции session_start(); А дальше проще чем с кукис. Передаем суперглобальному массиву $_SESSION  нужную нам информацию.
Например:
&lt;?php session_start(); $_SESSION['name']="Zhenya"; $_SESSION['surname']="Ivanov"; ?&gt; А потом можно достать так:
&lt;?php session_start(); Echo $_SESSION['name']; Echo $_SESSION['surname']; ?&gt; Чтобы завершить сессию, разрегистрируем все переменные с помощью функции unset(); и вызовем session_destroy();
&lt;?php session_start(); unset($_SESSION['name']); unset($_SESSION['surname']; session_destroy(); ?&gt; Как видите все просто.
4)Домашняя работа
1)Сделайте 3 страницы. На первой - форма, в которую надо ввести имя и фамилию. Эти данные передаются следующему скрипту, в котором регистрируется сессия и заносятся имя и фамилия. А в третьем, эти данные выводятся и сессия завершается.
2)Сделайте форму для опроса. Если человек уже вводил свои данные в течении 5 минут, то выдает - "Вы больше не можете поучаствовать в опросе", в другом случае, скрипт выводит эти данные.
5)Завершение
В общем планируется сделать примерно 20 уроков. Хотя это и будет далеко не все, но уже нормальная база для дальнейшего обучения. Но так как я не вижу, кому нужны уроки, занимается ли кто-нибудь по ним, то следующий урок выложу, когда мне на e-mail: [email=Revival1002@gmail.com]Revival1002@gmail.com[/email] придет хотя бы 3 домашних задания (не важно из каких уроков), от 3 человек (когда я написал статью, на ящике было уже 2 ДЗ ).
p.s. В этом уроке я хотел параллельно рассказать о работе с файлами, но из-за небольших проблем со здоровьем (уже все ок), выход урока отложился и написать получилось меньше.
Post #: 34
RE: Уроки по PHP для новичков. - 2009-12-15 22:55:48.513333   
horiz

Сообщений: 892
Оценки: 0
Присоединился: 2008-11-03 18:33:09.006666
Прочитал уроки по диагонали. Есть замечания:
Урок 3.
quote:

Передавая пароли следует их хешировать. Одним из популярнейших алгоритмов хеширования является md5, примените к паролю перед передачей функцию md5() и сравнивайте хеши паролей.

Что сие означает? Поясните мысль, когда и где и в каких случаях надо зашифровывать пароли через md5.

Урок 4.
quote:

Cookies - это файлы хранимые на компьютере пользователя, и передаваемые серверу веб-браузером. Создает эти файлы сервер.

Ну, строго говоря, создаются они браузером на основе заголовков, пришедших от сервера. И браузер передает на сервер не файлы, а заголовки, в которые помещены значения куков.

quote:

Сессия это группа переменных, хранящиеся после выполнения скрипта. В отличие от кукис не хранятся на компьютере пользователя.

Но надо указать, что идентификатор сессии хранится все-таки в куках пользователя.
Post #: 35
RE: Уроки по PHP для новичков. - 2009-12-16 07:34:10.466666   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
quote:

ORIGINAL: horiz

Прочитал уроки по диагонали. Есть замечания:
Урок 3.
quote:

Передавая пароли следует их хешировать. Одним из популярнейших алгоритмов хеширования является md5, примените к паролю перед передачей функцию md5() и сравнивайте хеши паролей.

Что сие означает? Поясните мысль, когда и где и в каких случаях надо зашифровывать пароли через md5.

Урок 4.
quote:

Cookies - это файлы хранимые на компьютере пользователя, и передаваемые серверу веб-браузером. Создает эти файлы сервер.

Ну, строго говоря, создаются они браузером на основе заголовков, пришедших от сервера. И браузер передает на сервер не файлы, а заголовки, в которые помещены значения куков.

quote:

Сессия это группа переменных, хранящиеся после выполнения скрипта. В отличие от кукис не хранятся на компьютере пользователя.

Но надо указать, что идентификатор сессии хранится все-таки в куках пользователя.

1)К этому еще вернемся, когда будем делать форму регистрации и авторизации (через пару уроков). На примере там будет понятнее.
2) Я старался объяснить попонятнее :)

Post #: 36
RE: Уроки по PHP для новичков. - 2009-12-21 19:06:09.156666   
Revival1002

Сообщений: 96
Оценки: 0
Присоединился: 2009-02-28 18:09:51.870000
Следующий урок готов. Жду третьего сделанного ДЗ и выкладываю урок.
Post #: 37
RE: Уроки по PHP для новичков. - 2010-01-23 22:12:43.106666   
Dmitry T.

Сообщений: 6
Оценки: 0
Присоединился: 2009-08-04 13:17:33.726666
Не плохо..
oRb 8|
Post #: 38
RE: Уроки по PHP для новичков. - 2010-01-24 19:38:03.916666   
Re.Spawn

Сообщений: 16
Оценки: 0
Присоединился: 2009-06-07 23:59:23.790000
Моё мнение,изучать языки программирования нужно по книжкам, а не по статьям форума,т.к. в книге может быть намного "понятней",чем на форуме +) Вы просто наверное не те книги читали … Намного продуктивней было бы создать список качественных учебников для новичков. От себя посоветую "Лаура Томсон,Люк Веллинг РНР и Муsql". Просто,доступно,со множеством примеров. Книга не претендует на полный курс,но какие то азы даёт. И желание продолжать не отобьёт… =)
Post #: 39
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Уроки по PHP для новичков.







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.