- •Алматы, 2012
- •5В070300 - «Ақпараттық жүйелер»(бакалавриат) мамандығы бойынша «Windows-та бағдарламалау және hci» пәнінен жұмыс оқулық жоспар бойынша құрастырылған.
- •Алматы, 2012
- •5В070300 - «Ақпараттық жүйелер»(бакалавриат) мамандығы бойынша «Windows-та бағдарламалау және hci» пәнінен жұмыс оқулық жоспар бойынша құрастырылған.
- •Оқылатын пәннiң сипаттамасы (түсiнiктеме )
- •Жұмыстық оқу бағдарламасына жалпы сипаттама
- •Пәннің қысқа сипаттамасы
- •Дәріс тақырыптарының жіктелімі
- •Тәжірибелік (семинарлық) сабақтардың тақырыбы
- •Зертханалық сабақтар тақырыбы
- •Соөж тақырыптары
- •Сөж тақырыптары
- •Ұсынылған әдебиеттер тізімі:
- •«ТҰран» университеті мекемесі»
- •«Акпараттық технологиялар» кафедрасы силлабус (sillabus) «программирование в windows и hci» пәні бойынша
- •5B070300 «Ақпараттық жүйелер» (бакалавриат) мамандығы үшін
- •5В070300 - «Ақпараттық жүйелер»(бакалавриат) мамандығы бойынша «Windows-та бағдарламалау және hci» пәнінен жұмыс оқулық жоспар бойынша құрастырылған.
- •Түсіндірме жазбахат
- •Жұмыстық оқу бағдарламасына жалпы сипаттама
- •Пәннің қысқа сипаттамасы
- •Тәжірибелік (семинарлық) сабақтардың тақырыбы
- •Зертханалық сабақтар тақырыбы
- •Соөж тақырыптары
- •Сөж тақырыптары
- •Темы и продолжительность их изучения
- •Өзіндік жұмыс тапсырмасы:
- •Сөж берілу графигі және консультация уақыты.
- •Сөж өткізу графигі
- •Бақылауға арналған сұрақтар
- •Информация по оценке знаний
- •Білімгердің білімін бағалау критериі (жалпыланған)
- •Вск бойынша қорытындыны анықтау
- •Қорытынды баға
- •График выполнения и сдачи заданий по дисциплине
- •Сөж тапсыру графигі және консультация уақыты.
- •Перечень срс по курсу
- •Дәрістік кешен –контент (дәрістер тезисы, иллюстративті және үлестірмелі материал, ұсынылған әдебиеттер тізімі)
- •Алматы, 2012
- •If операторы
- •План лабораторных занятий
- •Лабораторная работа 1 - Создание и вывод переменных
- •Лабораторная работа 2 – Арифметические, логические операторы
- •Лабораторная работа 3 - Конструкции if, else и elseif
- •Лабораторная работа 4 - Цикл for
- •Лабораторная работа 5 - Таблица умножения
- •Лабораторная работа 6 - Массивы
- •Лабораторная работа 7 - Навигационное меню.
- •Лабораторная работа 8 - Практическое использование функций
- •Лабораторная работа 9 - Работа с функциями. Область видимости переменных.
- •План семинарских (практических) занятий
- •Практическая работа № 2 Использование основных операторов
- •Практическая работа № 3 Использование функций
- •Практическая работа № 4 Работа с формами
- •Лабораторная работа № 5 Работа со строками и заголовком html документа
- •Практическая работа № 6 Принципы Объектно-ориентированного программирования
- •Практическая работа № 7 Работа с датой Основы работы с базами данных на примере MySql
- •Практическая работа № 8 Работа с изображениями. Работа с регулярными выражениями. Работа с cookies Работа с сессиями
- •План лабораторных занятий
- •Лабораторная работа 1 - Создание и вывод переменных
- •Основы php Лабораторная работа 7 - Практическое использование функций
- •Лабораторная работа 7 - Работа с функциями. Область видимости переменных.
- •План семинарских (практических) занятий
- •Методические рекомендации по изучению дисциплины
- •(По работе с учебно-методическим комплексом) Основания, целевая аудитория и ориентированность учебно-методического комплекса
- •Рекомендуемый порядок работы с учебно-методическим комплексом
- •Программное и мультимедийное сопровождение учебных занятий по дисциплине «Алгоритмы, структуры данных и программирование»
- •Программные средства обеспечения дисциплины:
- •Электронные учебники:
- •Перечень специализированных аудиторий, кабинетов и лабораторий
- •Карта обеспеченности дисциплины учебной и учебно-методической литературой
If операторы
Бұл көптеген тілдерде қолданылатын, сонымен қатар PHP де, маңызды оператордың бірі болып табылады.Ол код фрагменттерін шартқа бағыныңқы т.рде орындауға рұқсат береді. If операторының структурасы келесі түрде болады:
if (выражение) блок_орындау
Логикалық типтің қайта құру заңдылығы:
FALSE келесі түрде болады:
False логикалық тип
Бүтін нөл (0)
Жарамды нөл (0.0)
Бос жол және жол "0"
Элементсіз массив
Айнымалыларсыз массив
NULL арнайы типі
Қалғандарының барлығы TRUE-да орындалады.
Мысал 2.1. if шартты операторы
<?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
echo "Привет, Ваня!";
$num = 1;
$account = 2000;
}
if ($num) echo "Иван первый в списке!";
$bax = 30;
if ($account > 100*$bax+3)
echo "Бұл жол экранда пайда болмайды, себебі шарт орындалмаған";
?>
Else операторы
Біз if операторының негізгі бір бөлігін қарастырдық. Бұүл оператордың бірнеше кеңейтілімі бар. else операторы if жағдайына кеңейтіледі.
If операторының структурасын else операторының кеңейтілген формасымен көрсетуге болады:
if (выражение) блок_орындау
else блок_орындау1
Бұл конструкцияны if...else келесідей жазуға болады: егер шарт орындалса, онда блок_орындау әрекетін орындаймыз. else операторын қолдану міндетті емес.
Алдындағы мысалды қалай өзгертуге болатынын көрейік:.
Мысал 2.2. else операторы
<?
$names = array("Иван","Петр","Семен");
if ($names[0]=="Иван") {
echo "Привет, Ваня!";
$num = 1;
$account = 2000;
} else {
echo "Привет, $names[0].
А мы ждали Ваню :(";
}
if ($num) echo "Иван первый в списке!";
else echo "Иван НЕ первый в списке?!";
$bax = 30;
if ($account > 100*$bax+3)
echo "Бұл жол экранда пайда болмайды, себебі шарт орындалмаған";
else echo "Зато появится эта строка!";
?>
7-дәріс. Массивтер.
PHP тілінің массивтермен жұмыс істеу үшін көптеген функциялары бар.Бұл дәрісте біз сол функциялардың кейбіреулерін қарастырып, бірнеше есептерді шешеміз. Көбінесе массивте элементтерді іздеу үшін қолданылатын функциялар, массив элементтерін сұрыптау үшін қолданылатын функциялар қарастырылған.
Массивтер
Массивті екі тәсілмен құруға болады:
array конструкциясының көмегімен
$array_name = array("key1"=>"value1",
"key2"=>"value2");
Массив элементінің мәнін беріп
$array_name["key1"] = value1;
Мысалы, бізге деректер қорынан жойылатын құжаттар тізімін сақтау керек. Ол үшін, массив түрінде сақтаймыз. Бұл массивті мынадай түрде сақтауға болады.
<?
$del_items = array("10"=>"Наука и жизнь",
"12"=>"Информатика");
$del_items["13"] = "Программирование на Php";
// Массивке элемент қосамыз
?>
Массивтермен операциялар
Массив – бұл деректер типі, бұл типтің деректерімен операциялар анықталады. Массив көмегімен қандай операциялар құруға болады? Масссивті жинақтауға және салыстыруға болады.
Массивті жинақтау «+» стандартты операторының көмегімен жүзеге асады.Жалпы бұл массивті қатынасына байланысты бірігу деп атаса да болады.Егер бізде $a және $b массиві болса, оның бірігу нәтижесі $c массиві болады. Сонымен, егер PHP тілінде массивтер жинақталатын болса, айнымалы қосындысы өзгереді.
Мысал 6.1. Массив.
<?
$a = array("и"=>"Информатика",
"м"=>"Математика");
$b = array("и"=>"История","м"=>"Биология",
"ф"=>"Физика");
$c = $a + $b;
$d = $b +$a;
print_r($c);
/* получим: Array([и]=>Информатика
[м]=>Математика [ф]=>Физика) */
print_r($d);
/* получим: Array([и]=>История
[м]=>Биология [ф]=>Физика) */
?>
Массивтердің тең, тең еместігін, немесе эквивалентті, эквивалентті еместігін тексеріп массивтерді салыстыруға болады. Массивтердің теңдігі- бұл барлық массив элементтерінің жұптардың кілт/мәні сәйкес келуі. Эквиваленттілік-мәндердің теңдігінен басқа мән мен кілт элементтерінің массивте бір ретпен жазылуы.PHP-де теңдік «==» символымен, ал эквиваленттілік – «===»символымен көрсетіледі.
Мысал 6.2. Массивтерді салыстыру
<?
$a = array("и"=>"Информатика",
"м"=>"Математика");
$b = array("м"=>"Математика",
"и"=>"Информатика");
if ($a == $b) echo "Массивттер тең және";
else echo "Массивтер тең емес жіне ";
if ($a === $b) echo " эквивалентті";
else echo " Эквивалентті емес";
// echo аламыз "Массив тең және эквивалентті емес"
?>
8-дәріс. Үздіксіз мән.
Үздіксіз мән
Үздіксіз мән заманауи технологияда шаблондарды іздеу негізінде жатады. Ол қарапайым және қызметтік символдарды ұсынады. Кейде үздіксіз мән қарапйым және түсінікті болады, бірақ көбінесе қызметтік символдар жиі болады, мысалы, <(?)>.*<\/.?>. РНР-да функцияның екі жіктелімі болады, олардың әрқайсысы белгілі типке үздіксіз мәндік қатынаста болады: POSIX немесе Perl стилінде..
(POSIX) үздіксіз мәнінің синтаксисі
Структура регулярных выражений POSIX үздіксіз мәнінің структурасы математикалық мәннің әртүрлі элементтерін бір-бірімен біріктіреді.Литеральді текстті іздеу барысында мүмкіндіктер шектелмейді.
Қарапайым үздіксіз мән бір литеральді символмен сәйкес келеді. Мысалы, g мәні g, haggle және bag жолдарына сәйкес келеді.
Квадрат жақшалар
Квадратты жақшалар ([ ])үздіксіз мәннің контекстінде ерекше мағынаға ие- олар « есептелінген жақшалардың ішінен кез келген символ»деген мағына береді. Квадратты жақшалар үздіксіз мәнмен жұмыс істеген кезде маңызды рөл ойнайды. Төменде жиі қолданылатын интервалдар көрсетілген:
[0-9] —0-ден 9-ға дейінгі кез келген ондық санмен сәйкес келеді;
[a-z] — а-дан z-қа дейінгі кез келген төменгі регистрлі символға сәйкес келеді;
[A-Z] — А-дан Z-қа дейінгі кез келген жоғарғы регистрлі символға сәйкес келеді;
[a-Z] —а –дан Z-қа дейінгі кез келген төменгі және жоғарғы регистрлі символға сәйкес келеді.
Лекция 9. Функция құру
Қолданушымен анықталған функциялар
Функциялар не үшін керек? Бұл сұраққа жауап табу үшін функция жалпы нені ұсынады соны білуіміз қажет. Программалауда математикадағы сияқты аргументтің көптігін бейнелеу функциясы бар.Функция не үшін керек оны келесі мысалда қарастырамыз. Проргаммалауда классикалық мысал функциясы- бұл сандардың факториал мәнін есептейтін функция болып табылады.Біз алғымыз келген факториалды әр сандар үшін емес, тек керекті санға бір кодты қайталағанымыз жеткілікті.
Натурал санның факториалын есептеу функциясы
<?php
function fact($n){
if ($n==0) return 1;
else return $fact = $n * fact($n-1);
}
echo fact(3);
// echo (3*2) деп жазуға болады;
// егер сан үлкен болса,
echo fact(50);
// онда функциямен жұмыс істеу ыңғайлырақ,
// echo (50*99*98*...*3*2);
?>
Функция жалпы жағдайда қалай көрінетінін қарастырайық. Функция келесі синтаксистің көмегімен анықталуы мүмкін:
function Функцияның аты (параметр1, параметр2,
... параметрN){
Әрекет _блогы
return "Қайталанатын функция мәні";
}
Функцияны шақыру қалай жүзеге асады? Функцияның аты дөңгелек жақшамен көрсетіледі.
<?php
функция_аты ("значение_для_параметра1",
"значение_для_параметра2",...);
// функцияны шақыру мысалы – функцияны шақыру
// жоғарыда көрсетілген факториалдарды есептеу
// 3 санының факториалын есептеу
// fact(3) деп жаздық;
// fact – функцияны шақыру аты,
// а 3 –$n атаулы параметр мәні
?>
Функцияны қашан шақыруға болады? Функцияны оны анықтап болғаннан соң шақырады. PHP9-да ондай талап жоқ.
Мысал 9.1. Шартты оператордың ішкі функциясын анықтау
<?
$make = true;
/* Make_event() шақыруға болмайды;
Өйткені ондай жоқ, бірақ
Save_info() */ шақыруға болады
Save_info("Вася","Иванов",
"Я выбрал курс по PHP");
if ($make){
// Make_event()функциясын анықтау
function Make_event(){
echo "<p>Хочу изучать Python<br>";
}
}
// енді Make_event() шақыруға болады
Make_event();
// Save_info функциясын анықтау
function Save_info($first, $last, $message){
echo "<br>$message<br>";
echo "Имя: ". $first . " ". $last . "<br>";
}
Save_info("Федя","Федоров",
"А я выбрал Lisp");
// Save_info мұнда да шақыруға болады
?>
10-дәріс. Файлдар мен каталогтар
Fopen функциясы
Жалпы айтқанда, PHP-де файл құруға арналған функция жоқ. Файлдардың көбісі сервердің файлдық жүйесінде бар файлдармен жұмыс істейді.Уақытша фвйлдарды құратын бірнеше функциялар болады. Мысалы, ең қарапайым файлды құру үшін жергілікті немесе жойылған файлды ашатын файлды қолдану керек. Бұл функция fopen() деп аталады. «Файлды ашу» дегеніміз не? Бұл дегеніміз fopen функциясы файлды программаның басқару ағынымен байланыстыру дегені. Сонымен, байланыс әртүрлі болады. Бұл функцияның синтаксисі мынадай:
resource fopen ( имя_файла, тип_доступа
[, use_include_path])
Жұмыс нәтижесінде көрсеткіш ашылып тұрған файлға қайтады.Бұл функция параметрлерінде: файл атауы беріледі. Файл атауы параметрі жол болуы керек. Жергілікті файлды ашу үшін PHP бұл файлға толықтай рұқсат алуы керек.
Файлды құру үшін жазылмаған файлды ашуымыз керек.
Мысал 10.1. fopen() функциясының қолданылуы.
<?php
$h = fopen(“my_file.html”,”w”);
/* my_file.html, файлын ашады
Егер ол файл бар болса, онда бос түрде құрады*/
$h = fopen(“dir/another_file.txt”,”w+”);
/* файлды ашады және оқиды
файл another_file.txt в директории dir */
$h = fopen(
“http://www.server.ru/dir/file.php”,”r”);
/* көрсетілген адресте табылған файлды ашады және оқиды*/
?>
Функция параметрінде оның ұзындығы- міндетті. Барлық файлды жолда есептеу үшін оның ұзындығын білу керек. Бұл үшін filesize(файл атауы) функциясы қолданылады Қате болған жағдайда бұл функция false қайтады.Оны тек жергілікті файлдың размерін алу үшін ғана қолданылады.
Пример 10.4. fread() функциясының қолданылуы
<?php
$h = fopen("my_file.html","r+");
// файлды жазу және оқу үшін ашамыз
$content = fread($h,
filesize(“my_file.html”));
fclose($h); // файлмен байланысты жабамыз
echo $content;
?>
11-дәріс. Деректер базасы
Бұл дәрісте біз деректер базасының, соның ішінде MySql-ді басқару және ол туралы негізгі түсініктерді қарастырамыз..
Деректер базасы: негізгі түсініктер
Өмірде бізге қандай да бір ақпаратты сақтауға тура келеді, сол үшін деректер базасымен жұмыс істейміз. Мысалы, телефон кітапшасы кестеде көрсетіледі (кес. 11.1).
Бұл деректер кестесінде телефон номерлері, адресі, аты-жөні жазылады.
Кесте 11.1. Деректер базасына мысал:телефон кітапшасы |
||
Аты-жөні |
Телефон нөмірі |
Адресі |
Иванов Иван Иванович |
32-43-12 |
ул. Ленина, 12, 43 |
Ильин Федор Иванович |
32-32-34 |
пр. Маркса, 32, 45 |
Деректер базасы– белгілі бір ережемен ұйымдастырылған, сипаттаудың жалпы принципін қарастыратын деректер байланысының жиынтығы. Деректер базасы пәндік аймақтың ақпараттық үлгісі болып табылады.
Реляциялық үлгінің авторы Э. Кодд деп есептелінеді, ол деректерді өңдеуге арналған аппаратты бірінші болып ұсынды, сонымен қатар кез келген деректер екіөлшемді кестенің көмегімен жүзеге асатынын көрсетті.
Сонымен, реляциялық деректер базасы бір-бірімен байланысатын кестелер жиынтығынан тұрады. Кестедегі жолдар бір-бірімен байланысты болады.
Кілттер
Бірлік кілт (primary key, PK) – өрістердің минимальді жиынтығы. Бірлік кілт- біріншіден, кестенің өріс жиынтығы, екіншіден, мәннің әрбір жиынтығы кестедегі жалғыз жазуды табуы керек. Сыртқы кілттер деректер базасының кестесінбір-бірімен байланысын ұйымдастыру үшін қолданылады.
Сур.
11.1. Бірлік
кілттің басқа кестелермен байлынысын
ұйымдастыру мысалы
Индексирование
12-дәріс. Cookie қолданылуы
Cookie дегеніміз не?
Cookie ақпараттың веб-сервер арқылы жіберілген жәнк клиент компьютерінде сақталған кішігірім пакет. Сookie-де қолданушының сеансының жағдайы сипатталған пайдалы деректерді сақтауға болады. Cookie Интернет сайттарының көбісінде қолданылады.
Cookie компоненті
Сookie-дің әртүрлі компоненттерінің сипаттамалары төменде көрсетілген:
Атауы —cookie атауы міндетті параметр болып табылады. Cookie атауы мен айнымалы атауының арасына талдау жүргізуге болады.
Мәні —cookie атауымен байланысты деректер фрагменті. Бұл деректе кез келген мәлімет сақталуы мүмкін-пайдаланушы идентификаторы, фонның түсі, күні т.б.
Әрекет мерзімі —cookie-дің жалғасуын анықтайтын күні. РНР-де cookie-мен жұмыс істеу үшін әрекет мерзімі орнатылуы керек.
Домен —cookie-де құрылған және оның мәнін оқи алатын домен. Егер домен бірнеше серверден тұратын болса, онда cookie барлық серверге рұқсат етілген болуы керек.
Жол —cookie-ге кіруге рұқсат беретін URL. Кез келген ұрыныстар cookie-ді алуға мүмкіндік береді, және жолдары қиылысады.
Қауіпсіздік— қауіпті ортада cookie-ді көрсететін, оқитын параметр. Қалыпты жағдайда FALSE мәні қолданылады.
Хотя при создании cookie используются одни и те же синтаксические правила, формат хранения cookie зависит от браузера. Например, Netscape Communicator хранит cookie в формате следующего вида:
.phprecipes.com FALSE / FALSE 97728956 bgcolor blue |
В Internet Explorer то же самое cookie выглядело бы иначе:
bgcolor blue localhost/php4/php.exe/book/12/ 0 2154887040 29374385 522625408 29374377 * |
Чтобы просмотреть cookie, сохраненные браузером Internet Explorer, достаточно открыть их в любом текстовом редакторе. Помните, что некоторые редакторы не обрабатывают завершающие символы новой строки и на месте этих символов в документе могут выводиться квадратики.
Internet Explorer сохраняет свои cookie в папке с именем «Cookies», a Netscape Communicator использует для этой цели один файл с именем cookies.
Cookie и PHP
Хватит теории. Конечно, вам не терпится поскорее узнать, как задать значение cookie в РНР. Оказывается, очень просто — для этой цели используется стандартная функция setcookie().
Функция setcookie() сохраняет cookie на компьютере пользователя. Синтаксис функции setcookie():
int setcookie (string имя [string значение [, int дата [, string путь [, string домен [, int безопасность]]]]])
Если вы прочитали общие сведения о cookie, то смысл параметров setcookie() вам уже известен. Если вы пропустили этот раздел и не знакомы с компонентами cookie, я рекомендую вернуться к началу главы и перечитать его, поскольку все параметры setcookie() были описаны выше.
Прежде чем следовать дальше, я попрошу вас перечитать следующую фразу не один и не два, а целых три раза. Значение cookie должно устанавливаться до передачи в браузер любой другой информации, относящейся к странице. Напишите эту фразу 500 раз в тетрадке, сделайте татуировку, научите своего попугая произносить эти слова — короче, проявите фантазию. Другими словами, значение cookie не может устанавливаться в произвольном месте web-страницы. Оно должно быть задано до отправки любых данных в браузер; в противном случае cookie не будет работать.
Есть еще одно важное ограничение, о котором также необходимо помнить, — вы не сможете создать cookie и использовать его на той же странице. Либо пользователь должен вручную обновить страницу (хотя рассчитывать на это нельзя), либо вам придется подождать следующего запроса этой страницы — и только после этого можно будет использовать cookie.
В следующем примере функция setcookie() используется для создания cookie с идентификатором пользователя:
$userid = "4129b31b7bab052"; $cookie_set = setcookie ("uid", $userid, time()+3600, "/", ".phprecipes.com", 0); |
Последствия создания cookie:
После перезагрузки или перехода на другую страницу становится доступной переменная $userid, содержащая идентификатор 4129b31b7bab052.
Срок действия cookie истекает ровно через один час (3600 секунд) после отправки. После истечения этого срока cookie становится недействительным.
Доступ к cookie разрешен только из домена phprecipes.com.
Разрешен доступ к cookie через небезопасный протокол.
В следующем примере (листинг 12.1) cookie используется для хранения параметров форматирования страницы (в данном случае — цвета фона). Обратите внимание: значение cookie задается лишь в результате выполнения действия, установленного для формы.
Листинг 12.1. Сохранение цвета фона, выбранного пользователем.
<? // Если переменная $bgcolor существует if (isset($bgcolor)) : setcookie("bgcolor",$bgcolor, time()+3600); ?> <html> <body bgcolor="<?=$bgcolor;?>"> <? // Значение $bgcolor не задано, отобразить форму else : ?> <body bgcolor="white"> <form action="<? print $PHP_SELF; ?>" method="post"> What's your favorite background color? <select name="bgcolor"> <option value="red">red <option value="blue">blue <option value="green">green <option value="b1ack">black </select> <input type="submit" value="Set background color"> </form> <? endif; ?> </body> </html> |
При загрузке в браузер сценарий проверяет, было ли задано значение переменной $bgcolor. Если переменная существует, для страницы выбирается цвет фона, определяемый переменной $bgcolor. В противном случае в браузере выводится форма HTML с предложением выбрать цвет фона. После выбора цвета значение $bgcolor будет распознаваться при последующей перезагрузке той же страницы или при переходе к другой странице.
Кстати говоря, имена cookie могут выглядеть как элементы массива. Вы можете использовать имена вида uid[1], uid[2], uid[3] и т. д., а затем работать с ними, как с элементами обычного массива. Пример приведен в листинге 12.2.
Листинг 12.2.
<? setcookie("phprecipes[uid]", "4129b31b7bab052", time()+3600); setcookie("phprecipes[color]", "black", time()+3600); setcookie("phprecipes[preference]", "english", time()+3600); if (isset($phprecipes)) : while (list ($name, $value) = each ($phprecipes)) : echo "$name = $value<br>\n"; endwhile; endif; ?> |
В результате выполнения этого фрагмента будет выведен следующий результат (а на клиентском компьютере будут созданы три cookie):
uid = 4129b31b7bab052
color = black
preference = english
Хотя массивы cookie очень удобны для хранения всевозможной информации, следует помнить, что некоторые браузеры ограничивают количество создаваемых cookie (например, Netscape Communicator разрешает создавать до 20 cookie на домен).
Cookie чаще всего применяются для хранения числовых идентификаторов (UIN), по которым в дальнейшем на сервере производится выборка информации, относящейся к данному пользователю. Этот процесс продемонстрирован в листинге 12.3, где UIN сохраняется в базе данных MySQL. Сохраненные данные впоследствии используются для настройки параметров форматирования страницы.
Допустим, у нас имеется таблица user_info в базе данных с именем user. В ней хранятся следующие атрибуты пользователя: идентификатор, имя и адрес электронной почты пользователя. Определение таблицы выглядит так:
mysql>create table user_info ( user_id char (18), fname char(15), email char(35)); |
По сравнению с полноценными сценариями регистрации пользователя, работа листинга 12.3 начинается «на половине пути»: предполагается, что данные пользователя (идентификатор, имя и адрес электронной почты) уже хранятся в базе данных. Чтобы пользователю не приходилось вводить всю информацию заново, идентификатор (в листинге 12.3 для простоты он равен 15) загружается из cookie на клиентском компьютере.
Листинг 12.3. Загрузка информации пользователя из базы данных.
<? if (! isset($userid)) : $id = 15; setcookie ("userid", $id, time()+3600); print "A cookie containing your userID has been set on your machine. Please refresh the page to retrieve your user information"; else: @mysql_connect("localhost", "web", "4tf9zzzf") or die("Could not connect to MySQL server!"); @mysql_select_db("user") or die("Could not select user database!"); // Объявить запрос $query = "SELECT * FROM user_info WHERE user_id = '$userid'"; // Выполнить запрос $result = mysql_query($query); // Если совпадение будет найдено, вывести данные пользователя. if (mysql_num_rows($result) == 1) : $row = mysql_fetch_array($result); print "Hi ".$row["fname"].",<br>"; print "Your email address is ".$row[ "email"]; else: print "Invalid User ID!"; endif; mysql_close(); endif; ?> |
Листинг 12.3 показывает, как удобно использовать cookie для идентификации пользователей. Этот прием может использоваться в разнообразных ситуациях, от автоматической регистрации пользователя на сайте до отслеживания пользовательских параметров настройки.
УТВЕРЖДЕНЫ
на заседании кафедры
«Информационные системы»
учреждения «Университет «Туран»
Протокол № __ от «____»________ 2011 г.
Заведующая кафедрой
___________________С.А.Тусупова
