PHP - от новичка до любителя
Дисклеймер или отказ от ответственности
Автор не несет ответственности за возможно причинённый моральный, оральный, или иной ущерб. Также вся информация и все рассуждения в данной книге не претендуют на истинность, на ложь, на всемирное наследие ЮНЕСКО и вообще ни на что не претендуют. Все упражнения вы делаете на свой страх и риск. Также автор не любит зануд и клоунов, клоунов в смысле тех, что с красными носами. Автор советует читать данную книгу людям от 16 лет во избежание разрыва мозга. Также автору будет очень приятно получать от вас критику или похвалу. Все лингвистические обороты, используемые в данной книге, являются лишь примером мышления автора и ничем более.
Вступление
Я долго думал, стоит ли мне делиться своим опытом и знаниями в веб - программировании с другими людьми и, поразмышляв, пришел к выводу, что всё - же стоит. Хотя бы потому, что мне нравится писать. Правда эта книга не такая уж и обширная. И она первая о программировании. Но в этой книге я попытался собрать именно те свои знания и навыки, которые помогут вам в будущем не набивать такого количества шишек, которое набил себе я. Всё - же, что ни говори, дорогой читатель, а с наставником, учителем и сенсеем всегда проще. Ну, хотя бы потому, что есть, кому пнуть. Жаль, что технологии не дошли до той поры, когда можно уже передавать физические действия различного характера через книгу, интернет, телекинез и WiFi, но это нам и не нужно.
Для того, чтобы реально чему - то научиться - придётся работать. Странно, правда? В России люди не привыкли работать. По себе знаю, потому и пишу книгу. Сразу скажу, чтобы вы поняли, я учусь ни истфаке, пишу время от времени, и не только книги, играю на гитаре, играю в футбол, недавно увлекался паркуром, пишу сайты и прочее. И все это чистая ложь. То есть я не совсем типичный программист. Весь материал я попробую изложить как можно понятнее и доступнее, чтобы было понятно новичку и чтобы "гуру" могли меня поругать слегка.
Немного о себе. Много - много тысяч лет назад, примерно в 2009м году я заинтересовался, причем абсолютно случайно, темой программирования на PHP. Точнее даже не так. Мне стало интересно, а как это вообще - делать сайты? Эти размышления привели меня ко многим известному конструктору сайтов - wen.ru, живучее сайта я не видел еще, он до сих пор функционирует. Так вот, из - за отличительных черт веника мне пришлось самостоятельно изучать HTML. Он мне показался поначалу сложным, загадочным и не понятным языком. Но потом как - то все встало на свои места.
Потренировавшись на HTML, я перешёл к изучению более сложного для меня тогда языка - PHP. Наряду с ним я заинтересовался темой программирования в целом, и это привело меня к изучению Pascal, Basic, Mobile Basic и т.д. Но с этими языками у меня как - то вот не срослось. Хотя еще в сети гуляют мои приложения для мобильника, написанные на Бейсике - скринсейвер, пинг понг и калькулятор.
Далее пошло углубление в сайтостроение и примерно через пол года я написал свою Какашку - CMS. Хотя тогда она мне показалась мега - крутой и я был горд за то, что её скачали более 500 раз. Но чисто внешне она была и правда ничего, а все потому, что ко мне в напарники записался чувак какой - то, якобы дизайнер, которому захотелось поработать со мной.
И вот у нас была уже какая - никакая, а команда. Потом я ее забросил, как и вообще программирование, примерно на полгода. По прошествии половины года, я вернулся к теме и начал разбираться с премудростями сайтостроения.
Далее шли различные мазохистские эксперименты с PHP и MySQL. Хотя я набил огромное количество шишек, я кое - чему научился. И этим опытом я и хочу поделиться с вами. Честно говоря, я без понятия, будет ли кто-нибудь читать эту книгу, но если мне будут поступать письма на почту, сообщения на сайте - мне это будет очень и очень приятно. Хотя я начинал с сайтостроения в стиле wap, я таки решился и перешел на web - разработку, хотя еще ни разу и не использовал всякие Javascriptы и прочие чудо - навороты в своих проектах. Как - то вот обхожусь. Также, на этом этапе я начал изучать CSS, хотя поздновато, никто не предупредил, что нужно было сразу. Ну да ладно.
Я искренне считаю и верю всей душой и всем сердцем, что книги нужно писать живые, со здравой долей юмора, чтобы читать их было интересно и исключительно на одном дыхании. Также я считаю, что у каждого должно быть свое собственное мнение, но, во избежание душевных и прочих расстройств, советую держать свое мнение при себе. Безусловно, многие не дойдут и до этого места, многие вообще не начнут ее читать, да что уж там, большинство вообще ее не найдут. А пишу я ее исключительно лишь для развития своих навыков письма и для всеобщего признания моего литературного гения и не запрещаю копировать, не запрещаю передавать третьим лицам, продавать и прочее, прочее. Ах да, присваивать себе только, вот это нехорошо.
Я немного затянул со вступлением, но я надеюсь, что ты любишь читать, читатель, и раз каким-то не понятным мне образом ты ее скачал, то вероятно, это судьба. Вероятно, ты интересуешься программированием и ты в поиске информации. Информации простой, но в тоже время обширной и стоящей. И знаешь что? Я попробую тебе её дать. Приступим.
Необходимый софт
Программы
Для начала хочу посоветовать несколько программ, которыми я сам пользуюсь. Они очень удобны, какие - то даже бесплатны, но в любом случае, вы найдете то, что вам больше всего понравится.
Notepad ++
Мне кажется всем известный редактор. Он очень прост и легок, но с огромными возможностями. Ну, например, существует просто огромное количество кодировок (до хрена). Подсветка синтаксиса почти всех известных языков программирования и так далее и тому подобное. Классная альтернатива блокноту.
PHP Expert Editor
Хороший текстовый редактор с подсветкой синтаксиса. Я с ним дружил долгое время, пока не с толкнулся с тем, что он сохраняет документы с BOM - пометкой, что вызывает жуткие неприятные ощущения в области таза при отладке скриптов, потому как возникают ошибки в заголовках.
Macromedia Dream Weaver
Вроде даже правильно написал. Это самый профессиональный редактор для многих языков программирования, содержащий шаблоны, подсветку и платные услуги. Я им пользуюсь, больно он уж мне нравится. Хотя и весит всего - ничего 600 - 700 МБ.
Локальный сервер
Вот мы плавно и приплыли к одному интересному вопросу - установке локального сервера Apache под Windows. Каюсь, никогда не устанавливал вручную ни сервер Апач, ни Мускул, ни ПХП. И вообще, меня нужно сжечь на костре святой инквизиции. Но! У меня всегда возникал в голове один интересный вопрос - а нахуа? Если можно установить дистрибутив (классное слово, мне нравится) от команды Denwer не парить себе мозг настройкой httpd файла.
Сейчас, вероятнее всего, различные "гуру" PHP начнут сыпать на меня кучей различных нелепых обвинений, говорить, что я ничего не знаю, и вообще, что они самые - самые в программировании и знают все и лучше всех. Ребята, закрывайте книгу красным крестиком вверху экрана и гуляйте в школу. Да, вы все знаете, вы лучшие, вы молодцы, я утешил ваше самолюбие?
Итак, что нам вообще нужно? А нам нужно открыть браузер, зайти по адресу DENWER.RU и скачать дистрибутив, установить его двойным нажатием левой кнопки мыши, узнать ,как поменять стандартную кодировку на UTF - 8 из книги, и радоваться своей гениальности.
Как и для чего устанавливать UTF - 8? А вот для чего - многие хостинги имеют стандартную кодировку именно UTF - 8, и когда вы заливаете свои страницы в другой кодировке, скажем, в ANSI, то появляются кракозябрики вместо нормальных буковок. Чтобы избежать подвоха, сохраняйте свои страницы в UTF - 8, найдите файл httpd в папке /usr/local/apache/conf в и найдите строчку AddDefaultCharset и измените значение на UTF - 8. И будет счастье. Правда в localhost будут кракозябрики, но это не беда.
В принципе, все готово. Теперь можно начинать творить. Тяжело? Еще нет.
Основы PHP
Я искренне надеюсь и надеюсь, что не ошибаюсь, если предположу, что ты уже имеешь некий запас знаний по HTML. И поэтому, рассматривать HTML в рамках этой книги я не вижу смысла. Так что перейдем сразу к "жести и мясу".
Немного истории
А вот хрен, погуглишь...
PHP программы
Что такое и как работает?
PHP программы, они же скрипты - сценарное веб приложение, работающее на стороне сервера. Браузер запрашивает адрес, видит расширение ".php", пропускает документ через PHP - интерпретатор, и он возвращает браузеру код в виде HTML. Затем браузер выводит информацию.
Инструкции обработки
А как вот мне сделать так, чтобы браузер понял, что перед ним именно PHP - страница? Для того, чтобы написать код PHP, нам потребуется его заключить в специальные теги и сохранить в расширении ".php".
1. Инструкция обработки XML
2. Инструкция обработки ASP
<%
Code
%>
3. ИнструкцияSGML
Code
?>
4. Инструкция HTML
Данные инструкции эквивалентны и их использование строго преследуется законом и карается самыми жестокими Российскими карательными органами.
Переменные
Переменная - это некий контейнер для любого рода информации - текст, ссылки, картинки и т.д. В переменную можно засунуть содержимое всего сайта. Ну это, конечно, никому не нужно, но я встречал.
Объявляются переменные в PHP при помощи такого волшебного знака, как доллар($). А далее следует любой набор буквенно - цифровых значений и знаков подчеркивания.
Чтобы присвоить какое - либо значение переменной используется знак равенства.
Пример номер раз.
$a = "Я переменная!";
$A = "И я!";
$PeReM = 10;//даже это переменная, а это комментарий
/*и это комментарий*/
Регистр при объявлении переменной имеет значение. То есть $a и $A - это абсолютно разные переменные и даже могут иметь различные значения. Имена для переменных старайтесь выбирать короткие и понятные. То есть, если вам нужно указать логин пользователя, то переменную следует назвать $login или $name, но никак не $sdfsdg. Для объявления переменной не нужно явно указывать тип переменной (текст, число и т.д). Медитируйте над этой информацией долго и упорно, пригодится.
Можете даже поэкспериментировать немного и вывести командой ECHO значение переменных в браузер.
Пример номер два.
$a = "текст";
$b = 10;
$c = "5";
Echo $a.$b.$c;//точка - это сложение строк, выведет "текст105"
Вот так вот ребята, все предельно просто, понятно и доступно.
Комментарии
Бывает такое, и довольно часто, нужно сказать, что необходимо вернуться к старому коду и посмотреть что - либо, и бывает не совсем понятно что, как, зачем и почему мы тут делали. Для этого необходимо прокомментировать код. В этом нам помогут комментарии, странно, правда? Как же нам осуществить комментарии?
Да очень просто, смотрите.
Пример номер три.
$a = "текст";//это однострочный комментарий
$A = $a;
/*
Это вот многострочный комментарий
*/
#И это однострочный комментарий
Все, как всегда просто. Довольно часто использую комментарии в коде просто для логического разделения страницы. И вам советую.
Кавычки ""vs""
Да, не могу не задеть эту тему, хотя бы потому, что порой бывает с кавычками геморрой. Так все же чем отличаются двойные кавычки от одинарных?
А тем, что переменные в двойных кавычках отображают именно свое значение, а переменные, заключенные в одинарные кавычки, отображаются как текст.
Пример номер четыре.
$a = "текст";
Echo "$a";
Echo "$a";
А теперь скопируйте код и посмотрите что получилось. Первая команда выведет в браузер текст, а вторая команда выведет $a. Это вот различие бывает действительно проблемой в обширных кодах, где - то случайно удалил кавычку, где - то лишнюю добавил и т.д. Имейте это в виду.
Ваша первая программа
А вот мы и подошли к вашей дефлорации в PHP. Шутка, конечно, хотя...
Давайте, ребята, напрягите извилины в вашем гениальном мозгу и напишите мне, не подглядывая дальше, программу, которая бы выводила Привет, Руслан., используя при этом переменные. Прямо вот так, с пробелом и точкой в конце. Ну, чего ждете?
Существует просто дох...много способов, чтобы это нехитрое действо провернуть.
Рассмотрим простейшую реализацию.
Пример номер четыре.
$name = "Руслан";
Echo "Привет $name.";
Или типа вот так...
$meet = "Привет";
$name = "Руслан";
Echo $meet." ".$name.".";//говнокодJ
Echo "$meet $name.";//можно даже так
Легко? Сложно? И да и нет.
Что там у нас далее по списку? Ах да...
Константы
Для чего нам константы? Ну, начнем с того, что константы - это неизменяемые значения. По правилам хорошего тона программисты объявляют константы буквами верхнего регистра. Так уж тут заведено. Если вдруг заядлый программист увидит у вас константу с маленькой буквы, он посчитает вас говном. Да, суровая правда жизни.
Чтобы объявить константу используется встроенная функция define().
Пример номер пять.
Define(NAME, "value");
Echo NAME;//выведет value
Все просто. Пока. Как и для чего мне нужны константы - спросите вы? Ну как, например, для неизменяемых настроек вашего скрипта. Или вообще как пожелает ваша душа, так и используйте. Я уже давно не использую константы, хотя это и удобно.
Типы данных
Хотя и не требуется явно объявлять типы переменных, несмотря на это в PHP существуют различные типы данных. Вот они:
integer;
string;
boolean;
array;
object;
Я не буду подробно останавливаться на типах. Не хочу.
Для того, чтобы определить тип данных, в PHP даже существует встроенная функция gettype(). Она возвращает тип данных, как ни странно. Тавтология какая - то. Ну, в общем экспериментируйте.
Пример номер шесть, вроде.
$a = "5";
$a1 = 5;
Echo gettype($a);//вернет string
Echo gettype($a1);//вернет integer
Не знаю, как у вас сложится судьба, но я ни разу не применял эту безумно полезную функцию. Может вам станет очень интересна эта тема, ну, в путь, тогда...
Операторы
Перейдем к операторам. Очень полезная тема, нужно заметить. Я тут даже поискал в интернете, дабы сыскать таблицу с операторами языка PHP. И знаете что? Таки нашел!
+ Сложение
- Вычитание
* Умножение
/ Деление
% Вычисление остатка по модулю (к примеру: 5 % 2=1)
Думаю, тут пояснять нечего даже.
& Поразрядная конъюнкция (AND)
| Поразрядная дизъюнкция (OR)
! Отрицание НЕ
!= Не равно
Это все логические операторы. Работают с булевыми значениями(с логическими).
Пример номер семь.
$a = 5;
$b = 5;
Echo $a + $b;//Выведет 10
Echo $a - $b;//Выведет 0
/* И так далее и тому подобное*/
Условный оператор IF...ELSE
Что такое условия в PHP?
Представим ситуацию из жизни - если я пойду в паб(в пивнушку, в бар, в клуб и т.д.), то напьюсь. Вот вам условие в действии.
А теперь немного кода. Пример восемь, кажется.
$a = 1;
$b = 2;
If($a < $b){
Echo "$a меньше $b";//1 меньше 2
}
Тут все просто, условие соблюдается, то есть явно 1 меньше 2, и из этого следует, что 1 меньше 2. Теперь Пример с ELSE - иначе.
Пример девять.
$a = 1;
$b = 2;
If($a < $b){
Echo "$a меньше $b";//1 меньше 2
}ELSE{
Echo "$a больше $b";
}
Результатом выполнения станет 1 меньше 2, так как, условие ИНАЧЕ не соблюдается. Немного изменим код.
Пример десять.
$a = 1;
$b = 2;
If($a > $b){
Echo "$a больше $b";//1 больше 2
}ELSE{
Echo "$a меньше $b";
}
Выведет тот код, что после ELSE, то есть 1 меньше 2.
Просто? Да, просто. Кстати, ветвление может быть сколько угодно вложенным. То есть хоть до посинения можно писать условия.
Переключатель SWITCH
Переключатель SWITCH предназначен для переключения между разными выражениями. Синтаксис очень простой:
Switch(то, что переключаем){
Case "1":
Выражения
Break;
Case "2":
Выражения
Break;
И так далее
Default:
Break;
}
Например, смотрите.
Switch($name){
Case "name1":
$name = "Вася";
Break;
Case "name2":
$name = "Ваня";
Break;
Case "name3":
$name = "Дмитрий";
Break;
Default:
$name = "Руслан";
Break;
}
Вот и все, ребята. Использовать данную конструкцию можно как угодно на самом деле. Например, использовать как переключатель актов на своей странице. Так, можно создавать множество подстраниц в одной странице. Поясню, пример нумер десять, вроде:
Swtich($_GET["act"]){
Default:
Defaultное содержимое.
Break;
Case "one":
Содержимое
Break;
Case "two":
Содержимое
Break;
}
Вот как-то так. Ничего сложного нет, но очень полезный пример на самом деле. Я такое ветвление частенько использую в своих работах. Это удобно и просто. Правда за счет этого страдает немного скорость работы скриптов.
Операторы цикла
Циклы задают многократное исполнение одного и того же оператора или действия.
Оператор цикла While
Цикл while называют еще циклом с предусловием. При входе в цикл вычисляется его значение, и если оно истинно, то выполняется тело цикла.
Пример номер одиннадцать и страница тоже:
$c = 5;
$i = 0;
While(++$i <= $c){
Echo $i." ";
}//выведет от 0 до 5
Можно также прервать цикл, для этого используется оператор break.
Пример номер двенадцать:
$c = 5;
$i = 0;
While(++$i <= $c){
Echo $i." ";
If($i==3){
Break;
}
}
Оператор цикла do...while
Цикл называется с постусловием. То есть тело цикла выполнится в любом случае хотя бы один раз, и если значение условия истинно, то тело цикла выполнится снова.
Пример нумеро тринадцать:
$c = 5;
$i = 0;
do
{
Echo $i." ";
}
while(++$i <= $c)
Этот пример также выведет цифры от одного до пяти.
И следующий цикл у нас...правильно, for.
Оператор цикла for
Данный цикл во имя придания крутости и гламура именуют итерационным. И вот вам пример номер четырнадцать:
$c = 5;
$i = 0;
for ($i = 0; $i <= $c; $i++)
{
Echo $i." ";
}
Данный пример также выводит диапазон цифр от нуля до пяти.
Должен заметить, что первый и последний циклы используются чаще всего, особенно первый, для вывода данных из базы данных MySQL.
Массивы
Что же такое массивы и куда их, собственно, пихать?
Массивы, на самом деле, очень удобная штука, особенно для хранения большого количества информации. Ну, не буду голословным и приведу вам пятнадцатый пример:
$fruits = array("apple","orange", "morkov");
echo($fruits[1]);//выведет orange
Нумерация индексов массива идет с нуля, а не с единицы. Если указать индекс "нуль", то выведется первый параметр, то есть яблоко.
Для явного указания индексов применяется оператор =>.
Пример шестнадцать:
$f = array(0 => "apple", 1 => "orange", "mor" => "morkov");
Echo $f[0];
Echo $f[1];
Echo $f["mor"];//индексом может быть и строка
Вот такие вот простые примеры. Появились вопросы? Задавай!
Многомерные массивы
Многомерные массивы - это массивы, вложенные друг в друга. Вот пример семнадцать это хорошо демонстрирует:
$ship = array(
"Passenger ship" => array("Yacht","Liner","Ferry"),
"War ship" => array("Battle-wagon","Submarine","Cruiser"),
"Freight ship" => array("Tank vessel","Dry-cargo ship","Container
cargo ship")
);
Echo $ship["Passanger ship"][0];//выведет Yacht, вроде
И так далее
Я не проверяю скрипты, пишу вживую, так сказать. Поэтому возможны ошибки.
Функции
Для чего нам могут понадобиться функции? Да для чего угодно. Существуют встроенные и пользовательские функции.
Пользовательские функции
Чтобы определить свою функцию нужно воспользоваться зарезервированным словом function. Создадим свою функцию, скажем, сложения.
Пример восемнадцать:
Function summa(){
$a = 5;
$b = 5;
Echo $a + $b;
}//выведет 10
Echo summa();
Вот такая вот простая функция. Думаю, принцип понятен? Можем пойти далее.
Пример девятнадцать:
Function summa($a,$b){
Echo $a + $b;
}
Echo summa(1,4);//выведет 5
Вот так вот просто создавать свои собственные функции. Правда, я первое время не мог понять, куда бы их использовать, но практика расставила все по своим местам.
Строковые функции
Htmlspecialchars()
Эта функция гарантирует, что если вдруг вы захотите где-нибудь написать код на php, html, javascript, то он выполняться не будет, а просто будет выведен как обычный текст. Полезная функция в плане безопасности.
Пример двадцать:
$msg = htmlspecialchars($msg);
Примерно так вот можно использовать данную функцию.
Stripslashes()
Также удобная функция для удаления обратных слешей языка PERL, кажется.
Пример двадцать один:
$msg = htmlspecialchars(stripslashes($msg));
Вот, видите, все гениальное просто. Использование сразу двух функций.
Работа с файлами
Для работы с любым файлом требуется для начала его открыть. Для этого используется функция fopen(filename, mode).
• r (Открыть файл только для чтения; после открытия указатель файла устанавливается в начало файла);
• r+ (Открыть файл для чтения и записи; после открытия указатель файла устанавливается в начало файла);
• w (Создать новый пустой файл только для записи; если файл с таким именем уже есть вся информация в нем уничтожается);
• w+ (Создать новый пустой файл для чтения записи; если файл с таким именем уже есть вся информация в нем уничтожается);
• a (Открыть файл для дозаписи; данные будут записываться в конец файла);
• a+ (Открыть файл для дозаписи и чтения данных; данные будут записываться в конец файла);
• b (Флаг, указывающий на работу (чтение и запись) с двоичным файлом; указывается только в Windows).
Пример двадцать два:
$file = fopen("file.txt","r");
if(!file)
{
echo("Ошибка открытия файла");
}
Чтобы, скажем, показать в браузере содержимое текстового файла, можно использовать функцию readfile(filename).
Пример номер двадцать три:
$file = fopen("file.txt", "r");
$text = readfile($file);
Echo $text;
Fclose($file);
Вот так вот просто можно использовать данные функции. А теперь записываем в файл.
Пример двадцать четыре:
$file = fopen ("file.txt","r+");
$str = "Hello, world!";
if ( !$file )
{
echo("Ошибка открытия файла");
}
else
{
fputs ( $file, $str);//записываем в файл
}
fclose ($file);
Я принципиально отказываюсь разбирать здесь сессии и куки, так как считаю, что каждый должен изучать этот вопрос самостоятельно, и, если у вас все - же возникнут вопросы по данному вопросу, я могу вам поспособствовать. В конце я приведу контакты, и вы сможете проконсультироваться по данному вопросу у меня лично.
Проверка данных
Для того, что проверить, заполнено ли поле и так далее.
Функции isset(), empty()
Это проверка на пустоту поля, т.е. введено ли сообщение, имя, и так далее и тому подобное.
Пример двадцать пять:
$name = $_POST["name"];
If(isset($name)){
Echo "Не введено имя!";
}
Функция empty() идентична функции isset().
Вот мы и подошли к теме MySQL.
MySQL
Вообще, базы данных и PHP весьма просто взаимодействуют друг с другом. Я обойдусь без долгих прелюдий и приступлю сразу к делу, но все подробно прокомментирую. Создадим таблицу для гостевой книги.
Пример двадцать шесть:
CREATE TABLE IF NOT EXISTS `guest`(
`id` int(10) NOT NULL auto_increment ,//тип числовой, автоматически умножается
`name` varchar(15),//тип буквенный, длина 15 максимум
`text` varchar(300),
`date` text,//дата, тип текстовый
PRIMARY KEY(`id`)//первичный ключ, необходим
)ENGINE=MyISAM DEFAULT CHARSET=utf-8;//Engine не трогать, и кодировка UTF-8
Ну вот мы и создали таблицу для гостевой книги.
Вставка данных
Чтобы вставить данные в таблицу базы данных используется следующая конструкция.
INSERT INTO `guest` SET `name` = "Имя", `text` = "Текст сообщения", `date` = "22/02/2014";
Попробуйте вбить это в MySQL строку, ради интереса.
Выборка данных
SELECT * FROM `guest` WHERE `id` = "1";//выведет строку, id которой 1
Можете тут экспериментировать, мне сейчас не хочется все расписывать.
Удаление данных
Чтобы удалить данные из таблицы необходимо прописать примерно следующую команду.
DELETE FROM `guest` WHERE `id` = "1";
Удалит запись с идентификатором номер один.
А теперь разберем пример простой гостевой книги с использованием базы данных MySQL.
Пишем гостевую книгу
Создаем файл index.php со следующим кодом.
Пример номер двадцать семь:
$host = "localhost";//хост базы данных
$dblog = "login";//имя пользователя
$dbpass = "pass";//пароль базы данных
$dbname = "base";//имя базы данных
mysql_connect($host, $dblog, $dbpass) or die(mysql_error());
Mysql_select_db($dbname) or die(mysql_error());
/*Установили соединение с базой данных*/
Switch($_GET["act"]){
Default:
Echo "
Гостевая книга
";
Echo "<ххх8>
Введите ваше имя:
Введите сообщение:
";
$all = mysql_query("SELECT * FROM `guest`");
While($r=mysql_fetch_array($all)){
Echo "".$r["name"]."(".$r["date"].") ";
Echo $r["text"];
}
/*Это вот наша форма отправления*/
Break;
Case "add":
$name = htmlspecialchars(stripslashes($_POST["name"));
$text = htmlspecialchars(stripslashes($_POST["text"));
If(empty($name) or empty($text)){
Echo "Вы не ввели имя или сообщение!";
Break;
}
If(mysql_query("INSERT INTO `guest` SET `name` = $name, `text` = $text, `date` = ""date(d.m.y)..""")){
Echo "Сообщение успешно добавлено!";
}else{
Echo "Ошибка при добавлении сообщения!";
}
Break;
}
Вот, в общем и целом и всё. Без наворота, простенько и со вкусом. Все в одном файле.
Немного об инертности мышления
Я искренне надеюсь, что ты любишь думать. Не в смысле напрягать свои многочисленные извилины, как умеют все, а именно ДУМАТЬ.
Влияние школы
Я думал еще со школы, точнее даже не так, меня все пытались уверить, и даже наш историк и родители, что у меня "гуманитарное" мышление. В итоге я так и думал и поэтому даже считал, что неспособен решать математические задачи. Но оказалось, однако, все не совсем так. Хотя, с другой стороны, это и так и не так одновременно.
Ведь что происходит в школе? Допустим, есть у нас задача математическая, и учитель пытается нам навязать свой способ мышления, или тот, что прочитал в книге и так далее. В классе 10 я осознал, что меня уже дико стало это напрягать, и на бессознательном уровне я понимал, что не хочу быть как все. То есть - серым веществом, говномассой. И пытался всеми доступными школьнику средствами противостоять системе.
И что получалось в школе? В старших классах, а я имею в виду десятый и одиннадцатый классы, не готовил домашние задания по предметам, ну кроме русского, к счастью. И всегда, скажем, на устном экзамене я научился ездить по ушам учителям, а теперь еще и преподавателям в ВУЗе. Точнее не так даже, я научился беседовать с ними. Именно просто вести беседу и получать заслуженные четверки, иногда пятерки. Причем, не уча практически. Я не люблю зубрилок, ну так скажем совсем прям. Хотя они бывают периодически полезны. Так к чему я веду?
В школе нас не учат думать, я больше скажу, нас не учат думать НИГДЕ. Из обычных людей готовят безголовый механизм для осуществления разных "важных" функций в нашем обществе. Например, работать учителем/врачом/слесарем/проституткой(опционально)/менеджерёнком и так далее и тому подобное. Ну его на хер.
Я, недавно, наткнулся на эту тему в интернете - инертность мышления и развитие нестандартного мышления. Мышления творческого, более глобального. Я скачал одну интересную книгу, которая содержит 170 задач на нестандартность мышления, типа тех, что задают при собеседовании в корпорации Google. Ведь эта тема более глубокая, это не просто нестандартность мышления, а это также и творческий потенциал.
Как это связано с программированием? А очень просто. Вы думаете, просто так в Google задают такие задачки? Отнюдь. Они ищут творческих людей с потенциалом, им нужны не просто штатские программисты, а поистине именно те люди, которых другие называют гениями. И я считаю, что нестандартность мышления можно развить в себе. Чего и вам желаю.
Также хочу заметить, что эту книгу я написал за два дня. По 3-4 часа работы в день, с перерывами. Быстро? Медленно? Кому как. И вот что самое интересное - у меня получается решать эти задачи. Правда, какие-то быстро, какие-то пару дней. По-разному.
Пример вот вам - привяжем к хвосту собаки сковородку, с какой скоростью должна бежать собака, чтобы сковородка не стучала? Подумайте. Без Google и Яндекса.
Также советую вам читать регулярно книги. Как можно больше. Я, бывает, параллельно легко читаю 3-4 книги, и они не путаются, а все совершенно замечательно укладывается в голове и т.д. и т.п.
Ребят, что я хочу сказать, не будьте серыми и неинтересными людьми. В наше время модно быть умными и начитанными. Знаете, какой главный орган мужчины? Это отнюдь не член - это мозг. А у женщин грудь, шутка, конечно.
Я думал, нужно ли вставлять эту информацию в книгу и решил, что все же нужно.
Способы развития нестандартного мышления
1. Решать задачи на нестандартное мышление
2. Делать привычные вещи, но совершенно по-другому
3. Медитировать
4. Познавать нирвану
5. Третий и четвертый пункт это шутка
6. Подумайте, как вы можете по-другому добраться до дома/вуза/школы/борделя/бара/сестры/тети/брата/будды и так далее. И постарайтесь найти как можно больше вариантов.
7. Читайте книги, особенно юмористическое фэнтези Терри Пратчетта, да и вообще любые
8. Пейте водку
9. Пункт 8 также является шуткой, так как автор не употребляет алкоголь, в каком-бы то ни было виде
10. Решайте математические, геометрические, фаллосометрические и просто метрические задачи, полезно.
Это вот, дорогой читатель, необходимый минимум для вашего развития. Удачи, и спасибо за внимание.
P.S. пожелания, примечания, маты, ругательства в мой адрес, и прочие чудеса, можете присылать по адресу [email protected]|[email protected]
Также на сайте http://kurs42.tk
Вся информация в данной книге является лишь художественным вымыслом и никак не относится к реальной жизни, кроме, конечно, личности автора.
Информация выше является сарказмом. Кто этого не понял, может вывести свои гены из генофонда человечества найдя, далее по списку:
1. Обрыв
2. Стену
3. Каток асфальтовый
4. И прочие веселые штуки
Заключение
Как и в любой ненормальной книге, в этой книге будет и заключение.
Что я хочу сказать, ребята? Все программисты - неординарные и необычные люди. Или просто долбанутые. Тут как посмотреть, ну а вот мой друг лично и классный необычный чувак и также немного долбанутый, в хорошем, естественно, смысле. Программист, что сказать.
Если вы считаете, что у меня есть способности к литературному труду, прошу писать мне комментарии и отзывы, пожалуйста. Жду.
В этой мини - книге я попытался собрать обширные знания в минимальной упаковке. Как там писалось? Краткость - сестра таланта? Я тоже так считаю, хотя это не всегда актуально. Например, для того, чтобы написать книгу, нужно писать от десяти авторских листов. Один авторский лист - 40000 тысяч знаков. То есть нужно написать 400000 знаков.
Не много и не мало. На месяц работы. В среднем. Ну да ладно, это уже не входит в рамки этой мини - книги.
Спасибо вам, если вы дочитали до этого места.
Каримов Руслан, 2014.