Вниз

Последние записи

19
Янв

Первое знакомство с PHP

PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста», англ. Personal Home Page Tools (устар.) — «Инструменты для создания персональных веб-страниц») — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг-провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов.

Область применения

В области программирования для сети Интернет PHP — один из популярных скриптовых языков (наряду с JSP, Perl и языками, используемыми в ASP.NET) благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений. Основные из них:

  • автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;
  • взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);
  • автоматизированная отправка HTTP-заголовков;
  • работа с HTTP-авторизацией;
  • работа с cookies и сессиями;
  • работа с локальными и удалёнными файлами, сокетами.
  • обработка файлов, загружаемых на сервер;
  • работа с XForms;

В настоящее время PHP используется сотнями тысяч разработчиков. Согласно рейтингу корпорации TIOBE, базирующемся на данных поисковых систем, в апреле 2011 года PHP находился на 5 месте среди языков программирования. К крупнейшим сайтам, использующим PHP, относятся Facebook, ВКонтакте, Wikipedia и др.

Входит в LAMP — распространённый набор программного обеспечения для создания и хостинга веб-сайтов (Linux, Apache, MySQL, PHP).

Синтаксис

Синтаксис PHP подобен синтаксису языка Си. Некоторые элементы, такие как ассоциативные массивы и цикл foreach, заимствованы из Perl.

Для работы программы не требуется описывать какие-либо переменные, используемые модули и т. п. Любая программа может начинаться непосредственно с оператора PHP.

Простейшая программа Hello world на PHP выглядит следующим образом:

<?php
  echo 'Hello, world!';
?>

PHP исполняет код, находящийся внутри ограничителей, таких как. Всё, что находится вне ограничителей, выводится без изменений. В основном это используется для вставки PHP-кода в HTML-документ, например, так:

<html>
 <head>
  <title>Тестируем PHP</title>
 </head>
 <body>
  <?php echo 'Hello, world!'; ?>
 </body>
</html>

Помимо ограничителей , допускается использование дополнительных вариантов. Кроме того, до версии 6.0 допускается использование ограничителей языка программирования ASP <% %> (конструкции и <% %> могут быть выключены в конфигурационном файле php.ini).

Имена переменных начинаются с символа $, тип переменной объявлять не нужно. Имена переменных, функций и классов чувствительны к регистру. Константы также чувствительны к регистру. Переменные обрабатываются в строках, заключённых в апострофы или двойные кавычки, и heredoc-строках (строках, созданных при помощи оператора <<<).

PHP рассматривает переход на новую строку как пробел, так же как HTML и другие языки со свободным форматом. Инструкции разделяются с помощью точки с запятой (;), за исключением некоторых случаев, после объявления конструкции if/else и циклов.

PHP поддерживает три типа комментариев: в стиле языка Си (ограниченные /* */), C++ (начинающиеся с // и идущие до конца строки) и оболочки UNIX (с # до конца строки).

Обращение к переменным и функциям

Обращение к переменным осуществляется с помощью символа $, за которым следует имя переменной. Данная конструкция может быть применена также для создания динамических переменных и функций. Например:

$a = 'I am a';        // Запись значения в переменную $a
echo $a;              // Вывод переменной $а

$b = 'a';
echo $$b;             // Вывод переменной $а (дополнительный $ перед переменной $b)

echo ${'a'};      // Вывод переменной $a

function_name();      // Вызов функции function_name
$c = 'function_name';
$c();                 // Вызов функции function_name,

$d = 'Class_name';
$obj = new Class_name; // Создание объекта класса Class_name
$obj = new $d();      // Создание объекта класса Class_name

$obj->b;     // Обращение к полю b объекта
$obj->c();   // Вызов метода c() объекта

$obj->$b;    // Обращение к полю a объекта, так как $b = 'a'
$obj->$c();  // Вызов метода function_name() объекта, так как $c = 'function_name'

В PHP echo и print не являются функциями (хотя print имеет возвращаемое значение), а являются синтаксическими единицами. При их использовании можно опустить скобки.

Источник: Википедия

25
Дек

Знакомтесь: Дэн Седерхольм

Дэн Седерхольм – дизайнер, писатель, оратор, муж и отец, живущий в Салеме, штат Массачусетс. Дэн является основателем SimpleBits, небольшой студии веб-дизайна. Признанный эксперт в области стандартах веб-дизайна, Дэн работал с YouTube, Microsoft, Google, MTV, ESPN, Electronic Arts, Blogger, Fast Company, Inc Magazine, и другими. С каждым новым проектом, приходит возможность минимизировать разметку и принять гибкость CSS. Дэн является соучредителем и дизайнером Dribbble, динамичного сообщества для обмена скриншотами. В настоящее время он носит бейсболку.

Он является автором четырех книг:

20 декабря 2011 года Дэн Седерхольм опубликовал радостную новость на своем блоге он сообщил своим читателям о выходе 3-го издания книги «Пуленепробиваемый веб-дизайн», книга уже появилась на Amazon.com. Подробнее об этой новости читайте на странице.

21
Дек

Дэн Седерхольм: Пуленепробиваемый Веб-дизайн, 3-е издание

Дэн Седерхольм веб-дизайнер и автор книги «Пуленепробиваемый Веб-дизайн» вчера поделился прекрасной новостью, он сообщил на своем блоге о выходе 3-го издания великой книги, которая потрясла многих веб – мастеров и научила создавать пуленепробиваемый веб-дизайн.

Я уверен Дэн прекрасно потрудился переписывая книгу, можно сказать заново, потому, что с того времени, когда на свет появилось первое издание книги в 2005 году, многое изменилось…

Дэн цитирует для тех, кто читал второе издание книг: «Если у вас есть 2-е издание, новая версия, скорее всего, не является необходимым обновлением.» Дэн Седерхольм так же процитировал: «Я больше всего рад, что книга была обновлена для тех, кто не читал ее раньше. И, как всегда, я думаю, что это великая книга для тех, кто по началу работы в строительстве гибких веб-сайтов с семантической разметкой.»

Если вы не читали предыдущие издания, я надеюсь, вам понравится. Читая книги Дэна я могу с уверенностью сказать, что книга будет увлекательная, в ней будут обсуждаться технологии HTML5, CSS3, кто немного работал, уже знает как это упрощает жизнь и делает ее фанатом веб-технологий.

Полную статью можно увидеть и прочитать на личном блоге Дэна – SimpleBits.com

19
Дек

Как подключиться к MySQL используя ADO.NET

Когда я начал свое знакомство с технологией ADO.NET меня сразу заинтересовал вопрос: «Как можно подключиться к MySQL, используя технологию ADO.NET» .  Я начал искать решения. Сейчас, когда я реализовал у себя на компьютере все это, хочу с вами поделиться своим опытом и навыками. Давайте для начала разберем, что нам понадобится для реализации этой затеи.

  1. Сервер баз данных MySQL
  2. Visual Studio (В моем примере это Visual Studio 2010)
  3. Библиотека для работы с MySQL

Надеюсь, что у вас уже установлен сервер баз данных MySQL и программа Visual Studio. Если нет, тогда сделайте установку до того, как приступите к работе. Все готово. Visual Studio установлена, сервер баз данных MySQL установлен. Первым делом нам понадобится dll библиотека MySQL, которая будет помогать работать с ADO.NET в среде .NET Framework. Скачать библиотеку можно на официальном сайте MySQL по адресу: dev.mysql.com.

Для скачивания на сайте доступны два варианта: первый – установщик, второй – архив, в примере будет рассматриваться первый вариант. И так, Скачали? Установили? Прекрасно, идем дальше, дальше нам нужно обратиться к папке, в которую мы установили dll библиотеку MySQL, у меня путь к библиотеке выглядит так  – C:\Program Files\MySQL\MySQL Connector Net 6.4.4\Assemblies\v2.0 в этой папке находим и копируем файл MySql.Date.dll в буфер.

Создаем консольное приложение в Visual Studio  через Файл -> Создать -> Проект (File -> New -> Project) или Ctrl + Shift + N. Выбираем язык Visual C# консольное приложение нажимает ОК.  Обращаемся к папке проекта где лежать все файлы, только что созданного консольного приложения {название проекта}/bin/Debug/ копируем суда файл MySql.Date.dll. В обозревателе решения(solution Explorer) в меню «Ссылки(references)» необходимо «Добавить ссылку(add a link)».

В результате в обозревателе решения(solution Explorer) в меню «Ссылки(references)» появиться ссылка на dll библиотеку MySql.Data. Очень хорошо, теперь остается подключить эту самую библиотеку в наш проект это делается очень просто:

// Используем пространство имен MySql.Date
using MySql.Data.MySqlClient;

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

 string host = "localhost"; // Имя хоста
 string database = "mysql"; // Имя базы данных
 string user = "root"; // Имя пользователя
 string password = "password"; // Пароль пользователя

 string Connect = "Database=" + database + ";Datasource=" + host + ";User=" + user + ";Password=" + password;

Мы создали 5 строковых переменных в 4 из которых прописали настройки для соединения с базой данных – имя локального компьютера, имя база данных, имя пользователя и пароль пользователя все эти настройки присвоили строковой переменной Connect в ней храниться полное подключение к базе данных. Создаем объект MySqlConnection с именем mysql_connection и передаем ей строку для подключения Connect:

MySqlConnection mysql_connection = new MySqlConnection(Connect);

Объект MySqlConnection – соединение с базой данных. Следующим шагом мы создаем объект MySqlCommand с именем mysql_query используя текущее подключение создаем SQL запрос, который будет храниться в mysql_query. Объект MySqlCommand – выполняет SQL команд.

MySqlCommand mysql_query = mysql_connection.CreateCommand();
mysql_query.CommandText = "SELECT user FROM user;";

Дальше для подключение и соединения с базой данных нужно вызвать метод .Open():

mysql_connection.Open();

Теперь, чтобы увидеть обработанный запрос нужно создать объект MySqlDataReader:

MySqlDataReader mysql_result;

Для выполнения SQL запроса на консольное окно нам понадобится метод ExecuteReader(), Read(), GetString() и цикл while. Метод ExecuteReader() выполняет запрос и возвращает 0 и более строк результата. Метод Read() – переходит от одной строки к другой пока конец данных не будет достигнут. Метод GetString() извлекает конкретное значение, которое нужно вернуть.


mysql_result = mysql_query.ExecuteReader();

while (mysql_result.Read())
{
    Console.WriteLine("{0}", mysql_result.GetString(0));
}

В конце, когда выполнился запрос, обязательно нужно закрыть соединение с базой данных используя метод .Close():

mysql_connection.Close();

В результате нам программа должна показать список пользователей, которые существуют в базе данных. В моем случае это один пользователь root у вас может быть их несколько. Для закрепления данной темы давайте реализуем функционал, который будет выводить нам небольшую информацию о пользователе, а именно – имя пользователя, пароль пользователя и имя локального подключения. Полный код программы и ссылку где можно скачать проект представлен ниже.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
// Используем пространство имен MySql.Date
using MySql.Data.MySqlClient;

namespace MySQLConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            string host = "localhost"; // Имя локального компьютера
            string database = "mysql"; // Имя базы данных
            string user = "root"; // Имя пользователя
            string password = "password"; // Пароль пользователя

            string Connect = "Database=" + database + ";Datasource=" + host + ";User=" + user + ";Password=" + password;

            // Создаем соединение с базой данных
            MySqlConnection mysql_connection = new MySqlConnection(Connect);

            // Создание SQL команды
            MySqlCommand mysql_query = mysql_connection.CreateCommand();
            mysql_query.CommandText = "SELECT user FROM user;";

            try
            {
                mysql_connection.Open();
                MySqlDataReader mysql_result;
                mysql_result = mysql_query.ExecuteReader();
                while (mysql_result.Read())
                {
                    Console.WriteLine("{0}", mysql_result.GetString(0));
                }

                mysql_connection.Close();

                string command;
                do
                {
                    command = Console.ReadLine();
                    if (command != "quit")
                    {
                        mysql_query = new MySqlCommand("SELECT host, user, password FROM user WHERE user =\"" + command + "\";", mysql_connection);
                        mysql_connection.Open();
                        mysql_result = mysql_query.ExecuteReader();
                        if (mysql_result.Read())
                        {
                            Console.WriteLine("\nИнформация о пользователе: {0}", command);
                            Console.WriteLine("HOST: {0}", mysql_result.GetString(0));
                            Console.WriteLine("USER: {0}", mysql_result.GetString(1));
                            Console.WriteLine("PASSWORD: {0}", mysql_result.GetString(2));
                        }
                        else
                        {
                            Console.WriteLine("Пользователя {0} в базе не существует!", command);
                        }
                        mysql_connection.Close();
                    }
                }
                while (command != "quit");

            }
            catch
            {
               Console.WriteLine("Ошибка MySQL");
            }

        }
    }

Если возникнут какие-то сложности с проектом пишите в комментариях. Помогу и отвечу на все возникшие вопросы. Скачать исходник проекта здесь.

9
Дек

MySQL: Если потерялся пароль пользователя root

Если вдруг потерялся пароль пользователя root? Или может что-то еще с ним приключилось. Как исправить ситуацию и восстановить его? При этом не стирая базу данных и не переустанавливая сервер MySQL. Покажу вам стандартный способ, как сбросить пароль. Для этого вы должны иметь физический доступ к командной строке. Давайте начнем наш экскурс…

1) Нужно остановить службу MySQL. Как это сделать?! Очень просто! В этом не должно возникать сложностей. Мы будем делать это через командную строку используя команду:

net stop mysql

Открыть командную строку можно через комбинацию Win+R или через меню Пуск -> Выполнить.
2) Запускаем сервер с ключем –skip-grant-tables, в командной строке выполните команду:

mysqld --skip-grant-tables

3) Откройте новое окно командной строки, войдите на сервер использую

mysql

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

USE mysql; -- Выбираем базу данных mysql
SELECT user, password FROM user; -- Убеждаемся, что наш пользователь root существует в базе данных

Убедились, что пользователь root существует в базе?! Хорошо, возвращаемся к запросу. Наш запрос вернул список пользователей, которые существуют в базе данных. Перейдем к восстановлению пароля пользователя root. Выполните следующий запрос:

UPDATE user SET
password = PASSWORD('password')
WHERE user = 'root';

Этот запрос говорит нам: Обнови поле password где user равен имени root в таблице user. Где (‘password’) – новый пароль, который мы присвоили root-у. Главная цель достигнута, думаю вы справились с этим не сложным заданием, можно завершать нашу работу.

4) Финальный штрих будет заключаться в выполнением одной командой и запуска службы MySQL, все действия выполняем в консольном окне

exit -- Завершение работы из консоли
mysqladmin shutdown -- Выполнение команды mysqladmin shutdown
net start mysql -- Старт службы MySQL

В результате, мы с вами без вреда изменили пароль пользователя root. Все это сделано в несколько этапов и занимает минимальное время выполнения, теперь вы знаете как вести себя, в случае, когда забудете или потеряете пароль пользователя к базе данных MySQL.