PHP. Изучение языков и web-технологий PHP. Изучение языков и web-технологий

Конспект изучения языков и web-технологий : PHP

 
Мистический роман
БЛИЗКАЯ ДАЛЬ
Татьяны Катушонок

Купить в магазинах:
Близкая даль
Близкая даль
Близкая даль
Близкая даль
Близкая дальБлизкая даль
Озарение души
Сборник стихов Татьяны Катушонок
Осознание красоты спасет мир
Web technologies and programming languages
Web технологии и языки
XML - XSLT
Изучаем XML
Преобразования
HTML
Изучаем HTML
Теги
Javascript и AJAX
Три кита
Листенеры
Каталог
Список литературы
Основы языка
Publishing MySQL Data on the Web
Структурное программирование
Простая CMS
Особенности коннекта к Oracle
Cookies, Sessions, Access Control, Binaty Data

Publishing MySQL Data on the Web
четверг
Просто рабочий конспект
Коннект к MySQL:


$link = mysqli_connect('localhost', 'root', 'password'); //  база на локальном компьютере
mysqli_set_charset($link, 'utf8');                                 //   установка кодировки
mysqli_select_db($link, 'ijdb');                                   //   выбираем базу jdb
 

Когда скрипт завершён, PHP will automatically close any open database connections.

SQL-запрос:
 
mysqli_query(link, query);
 


Создаём таблицу:
 
$sql = 'CREATE TABLE joke (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
             joketext TEXT,jokedate DATE NOT NULL) DEFAULT CHARACTER SET utf8';
if (!mysqli_query($link, $sql)) {
     $output = 'Error creating joke table: ' . mysqli_error($link);
      include 'output.html.php';
      exit();
}

Функция mysqli_error($link) выводит подробную расшифровку ошибки.

Функция mysqli_query возвращает true в случае успеха или false.
Для DELETE, INSERT, и UPDATE запросов  MySQL also keeps track of the number of table rows (entries) that were affected by the query.
Для этого используется mysqli_affected_rows($link).

Обработка  результатов SQL-запроса. Массив полученных данных обрабатывается в цикле while или чаще с помощью foreach :

 
<?php foreach ($jokes as $joke): ?>
<p>
<?php echo htmlspecialchars($joke, ENT_QUOTES, 'UTF-8'); ?>
</p>
<?php endforeach; ?>
 

Если запрос возвращает несколько полей:
 
$result = mysqli_query($link, 'SELECT id, joketext FROM joke');
...
while ($row = mysqli_fetch_array($result))
{
$jokes[] = array('id' => $row['id'], 'text' => $row['joketext']);
}
..
include 'jokes.html.php';
 

Вся обработка действий юзера ведётся в одном контроллере index.php, из которого вызываются нужные блоки кода .

Возврат в контроллер:
 
header('Location: .');
exit();
 

Для удаления записей - кнопка "delete" в форме :


 
<?php foreach ($jokes as $joke): ?>
   <form action="?deletejoke" method="post">
       <p>
        <?php echo htmlspecialchars($joke['text'], ENT_QUOTES,'UTF-8'); ?>
          <input type="hidden" name="id" value="<?php echo $joke['id']; ?>"/>
           <input type="submit" value="Delete"/>
          </p>
      </form>
 <?php endforeach; ?>
 

Интересный вариант - через линк:

 
<a href="?deletejoke&amp;id=<?php echo $joke['id']; ?>">Delete</a>
 

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

Ярлыки:

Подпишись на новости PHP по e-mail
posted by Sergey @ 00:12   0 comments
Основы языка
понедельник
Просто рабочий конспект
PHP - серверно-ориентированный язык. Код выполняется на стороне сервера.

Простой пример:

<?php
  echo "Simple text";
?>

Переменные:


$var1 = 1;
$testvariable = 'Three';
$testvariable = 'Hi ' . 'there!'; // конкатенация
$var1 = 'PHP'; // Assigns a value of 'PHP' to $var1

Интерполяция. В одинарных кавычках значение переменной НЕ подставляется.


echo "$var1 rules!"; // выводит 'PHP rules!'
echo '$var1 rules!'; // выводит '$var1 rules!' 


Массив:

$myarray = array('one', 2, '3');
echo $myarray[0]; // Outputs 'one'
echo $myarray[1]; // Outputs '2'
echo $myarray[2]; // Outputs '3'

Добавление элемента:

$myarray[] = 'the fifth element';
echo $myarray[4]; // Outputs 'the fifth element'

Ассоциативный массив:

$birthdays['Kevin'] = '1978-04-12';
$birthdays['Stephanie'] = '1980-05-16';
$birthdays['David'] = '1983-09-09';

Или через функцию:

$birthdays = array('Kevin' => '1978-04-12', 'Stephanie' => '1980-05-16', 'David' => '1983-09-09');
echo 'My birthday is: ' . $birthdays['Kevin'];

PHP используется для генерации динамического контента html-страниц.
Код PHP активируется , когда запрос посылается к серверу.

Ключом в создании интерактивности на PHP является понимание того, как можно вместе с запросом к серверу на генерацию новой страницы отправить информацию о том, что сделал юзер на странице.

Самый простой способ передачи параметров серверу - это в строке URL:
В тексте html- странички пишем:


 <a href="welcome1.php?name=Max&amp;lastname=Petrovich">Hi, I&rsquo;m Max!</a>

Вот что в файле на сервере welcome1.php:

<?php
$name = $_GET['name'];
$lastname = $_GET['lastname'];
echo 'Welcome to our web site, ' . $name . $lastname '!';
?>

Ответ сервера замещает весь контент страницы. Т.е., сервер возвращает новую страницу.
PHP автоматически создаёт массив $_GET[], при получении запроса от браузера.
Однако, здесь налицо дыра в безопасности!  В тексте параметра можно передать коды html и сервер обработает их. Например:

welcome1.php?name=<a href='http://localhost'>Newlink</a>
Всё, что угодно...
Дыра закрывается функцией htmlspecialchars($name, ENT_QUOTES, 'UTF-8')
Html-теги преобразуются в специальные символы. (&lt; &gt; ....)

Другой способ передачи параметров php - скрипту - с помощью метода POST через форму:

<form action="welcome5.php" method="post">
    <div><label for="firstname">First name:
                 <input type="text" name="firstname" id="firstname"/></label>
    </div>
    <div><label for="lastname">Last name:
                  <input type="text" name="lastname" id="lastname"/></label></div>
   <div><input type="submit" value="GO"/></div>
</form>


Скрипт сервера:

<?php
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
echo 'Welcome to our web site, ' .
htmlspecialchars($firstname, ENT_QUOTES, 'UTF-8') . ' ' .
htmlspecialchars($lastname, ENT_QUOTES, 'UTF-8') . '!';
?>

Вместо массивов $_GET[] или  $_POST[] можно использовать $_REQUEST[]. Тогда на сервере можно не задумываться, каким методом передаются параметры.


Управляющие структуры.

if(condition){...}else{...}

while (condition) {...}

for (declare counter; condition; increment counter) {...}


Один  контроллер - несколько шаблонов.

Примерная схема построения :
контроллер - в модуле index.php
В контроллере выполняется обработка условий, при которых генерится разный контент, возвращаемый браузеру.

С помощью include подключаются разные фрагменты php-кода.
Подпишись на новости PHP по e-mail
posted by Sergey @ 11:00   0 comments
Близкая даль
Подпишись на новости Javascript и AJAX письмом:

Напишите ваш e-mail :

Delivered by FeedBurner

Предыдущий пост
Архив
Линки
Статистика

Subscribe in a reader

Powered by FeedBurner

BLOGGER

© PHP. Изучение языков и web-технологий