Translate

Поиск по этому блогу

среда, 9 августа 2017 г.

Laravel Начало работы (1)

Установка фреймворка Laravel на OpenServer

Идем на сайт - laravel.com.Перед началом работы стоит проверить версию рнр (должна быть PHP >= 5.6.4). Для проверки версии зайдите в Настройки - > Модули OpenServer.
После этого, скопируйте ссылку на официальном сайте и откройте командную строку, как показано на картинке ниже. Можно использовать КС вашей операционной системы, но я пользуюсь от OpenServer. Для того, чтобы убедиться, что у вас установлен composer, нужно ввести composer в КС и нажать Enter. Если он не установлен, то его следует установить самостоятельно.
Далее нам нужно перейти в диреторию domains.Для этого используем команду cd c:\OpenServer\domains (путь к папке - c:\OpenServer\domains - измените, если он у вас отличается).
Далее введите скопированную команду в КС. Можно изменить название конечной папки установки (blog) на любое другое.
composer create-project --prefer-dist laravel/laravel blog

Нажмите Enter и дождитесь окончания установки.
Из всей структуры файлов, нас сейчас интересует .env На картинке он обведен красным. Открываем его в вашем текстовом редакторе.

Вверху второй абзац :-) Это то, что нам следует изменить, введя свои данные:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=minilaravel
- здесь имя вашей Базы Данных
DB_USERNAME=root - ваше имя пользователя
DB_PASSWORD= - ваш пароль (если нет, то оставить пустое место)
Теперь, если зайти на ваш сайт по адресу, то мы попадем не на главную страницу, а увидим список файлов. Чтобы это исправить, можно создать специальные настройки для OpenServer или в корневой директории вашего сайта создать отдельный файл .htaccess (подчеркнут красным на картинке выше). В него нужно прописать следующее:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$l [L]
Для настроек на локальном сервере - перейдите в Настройки -> Домены и Укажите имя вашего доена в первой графе, а во второй выберете папку public, как показано на картинке ниже.
Нажмете кнопку Добавить
Теперь при переходе на сайт посетители будут попадать на главную страницу сайта
                                                                                                                                                             

вторник, 8 августа 2017 г.

Создание Базы Данных на OpenServer

При изучении PHP по книгам и руководствам часто возникают проблемы с созданием базы данных (далее - БД) при работе с OpenSrver. Я решил рассмотреть этот вопрос по шагам. И так, приступаем!
  1. Открываем КС - командную строку и переходим в директорию БД OpenServer
    cd C:\OpenServer\modules\database\MariaDB-5.5\bin
    Соединяемся с БД - mysql -u root
    Получаем подтверждение об установленном соединении или повторяем все с начала.

  2. Для просмотра уже существующих БД набираем SHOW DATABASES;

  3. Для работы и перехода к существующей БД - набираемuse name_database;name_database - имя уже существующей БД.ИЛИ создаем новую БД с помощью команды CREATE DATABASE name_database;
    набираемuse name_database; для работы с вновь созданной базой данных

  4. Создаем таблицу в нашей БД, следующей командой:
    CREATE TABLE `aliens_abduction` (
    `first_name` VARCHAR(30) ,
    `last_name` VARCHAR(30) ,
    `whеп_it_hаррепеd` varchar(30) ,
    `hоw_lопg` VARCHAR(30) ,
    `how_many` VARCHAR(30) ,
    `alien_description` VARCHAR(lOO) ,
    `what_they_did` VARCHAR(lOO) ,
    `fang_spotted` VARCHAR(lO) ,
    `other` VARCHAR(lOO) ,
    `email` VАRСНАR(50)
    ) ;
    При наборе использовал Гравис - одинарная кавычка (буква Ё в англ раскладке)

  5. Для того, чтобы добавить данные в новую таблицу:
    INSERT INTO alien_abduction (first_name, last_name, when_it_happened, how_long, how_many, alien_description, what_they_did, fang_spotted, other, email)
    VALUES ('Салли', 'Джонс', '3 дня назад', '1 день' ,'четыре', 'зеленые с шестью щупальцами', 'мы просто разговаривали и играли с со6акой' , ' да', ' возможно, я видела вашу собаку, свяжитесь со мной','sally@mail.com');

  6. Для того, чтобы посмотреть все данные в таблице набираем:
    SELECT * FROM aliens_abduction



Теперь нам осталось сделать так, чтобы данные в таблицу добавлялись автоматически рнр-сценарием


  1. На OpenServer в папке domains у нас есть папка с нашим сайтом mysite. Внутри нее есть два файла report.html и report.php.

    report.html


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Aliens Abducted Me - Report an Abduction</title>
      <link rel="stylesheet" type="text/css" href="style.css" />
    </head>
    <body>
      <h2>Aliens Abducted Me - Report an Abduction</h2>
    
      <p>Share your story of alien abduction:</p>
      <form method="post" action="report.php">
        <label for="firstname">First name:</label>
        <input type="text" name="firstname" /><br />
        <label for="lastname">Last name:</label>
        <input type="text" name="lastname" /><br />
        <label for="email">What is your email address?</label>
        <input type="text" name="email" /><br />
        <label for="whenithappened">When did it happen?</label>
        <input type="text" name="whenithappened" /><br />
        <label for="howlong">How long were you gone?</label>
        <input type="text" name="howlong" /><br />
        <label for="howmany">How many did you see?</label>
        <input type="text" name="howmany" /><br />
        <label for="aliendescription">Describe them:</label>
        <input type="text" name="aliendescription" size="32" /><br />
        <label for="whattheydid">What did they do to you?</label>
        <input type="text" name="whattheydid" size="32" /><br />
        <label for="fangspotted">Have you seen my dog Fang?</label>
        Yes <input name="fangspotted" type="radio" value="yes" />
        No <input name="fangspotted" type="radio" value="no" /><br />
        <img src="fang.jpg" width="100" height="175"
          alt="My abducted dog Fang." /><br />
        <label for="other">Anything else you want to add?</label>
        <textarea name="other"></textarea><br />
        <input type="submit" value="Report Abduction" name="submit" />
      </form>
    </body>
    </html>
    
    


    report.php


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>Aliens Abducted Me - Report an Abduction</title>
    </head>
    <body>
      <h2>Aliens Abducted Me - Report an Abduction</h2>
    
    <?php
      $first_name = $_POST['firstname'];
      $last_name = $_POST['lastname'];
      $when_it_happened = $_POST['whenithappened'];
      $how_long = $_POST['howlong'];
      $how_many = $_POST['howmany'];
      $alien_description = $_POST['aliendescription'];
      $what_they_did = $_POST['whattheydid'];
      $fang_spotted = $_POST['fangspotted'];
      $email = $_POST['email'];
      $other = $_POST['other'];
    
      $dbc = mysqli_connect('localhost', 'root', '', 'aliendatabase')
        or die('Error connecting to MySQL server.');
    
      $query = "INSERT INTO alien_abduction (first_name, last_name, when_it_happened, how_long, " .
        "how_many, alien_description, what_they_did, fang_spotted, other, email) " .
        "VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many', " .
        "'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')";
    
      $result = mysqli_query($dbc, $query)
        or die('Error querying database.');
    
      mysqli_close($dbc);
    
      echo 'Thanks for submitting the form.<br />';
      echo 'You were abducted ' . $when_it_happened;
      echo ' and were gone for ' . $how_long . '<br />';
      echo 'Number of aliens: ' . $how_many . '<br />';
      echo 'Describe them: ' . $alien_description . '<br />';
      echo 'The aliens did this: ' . $what_they_did . '<br />';
      echo 'Was Fang there? ' . $fang_spotted . '<br />';
      echo 'Other comments: ' . $other . '<br />';
      echo 'Your email address is ' . $email;
    ?>
    
    </body>
    </html>
    
    

  2. Для соединения с уже созданной базой данных мы создали переменную с запросом:
    $dbc = mysqli_connect('localhost', 'root', '', 'aliendatabase') or die('Error connecting to MySQL server.');
    Первый параметр -localhost остается без изменений, затем идет имя пользователя (в моем случае - root), пароля нет - '' и имя БД - aliendatabase

  3. В следующей перменной мы поместили все действия с данными (куда попадет тот или иной параметр введенный пользователем)
    $query = "INSERT INTO alien_abduction (first_name, last_name, when_it_happened, how_long, " . "how_many, alien_description, what_they_did, fang_spotted, other, email) " . "VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many', " . "'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')";
  4. Запрос к БД - $result = mysqli_query($dbc, $query) or die('Error querying database.');

  5. РНР-функция die () прерывает ход выполнения сценария и выводит сообщение о коде, который выполнить не удалось. Хотя это и не раскрывает всех причин неудачи в подробностях, функция die () все же сообщает нам: что-то случилось и необходимо принимать меры по решению проблемы. Если что-то не так с одним из четырех аргументов, необходимых для соединения функции mysqli_connect ( ) , или сервер баз данных не может быть найден, функция die () останавливает ход выполнения сценария и выводит сообщение об ошибке, которое передается ей в качестве аргумента в скобках.

  6. Функции mysqli_query () необходимо передать в качестве аргумента SQL-запрос в виде РНР-строки (значения переменной $query), для того чтобы произвести добавление данных о похищении космическими пришельцами.

  7. После всего закрываем БД - mysqli_close($dbc);

Более подробно о работе с базой данных смотрите мой пост —Введение в MySQL
                                                                                                                                                             


Хотите освоить самые современные методы написания React приложений? Надоели простые проекты? Нужны курсы, книги, руководства, индивидуальные занятия по React и не только? Хотите стать разработчиком полного цикла, освоить стек MERN, или вы только начинаете свой путь в программировании, и не знаете с чего начать, то пишите через форму связи, подписывайтесь на мой канал в Телеге, вступайте в группу на Facebook.Пишите мне - kolesnikovy70 почта gmail.com