PHP-скрипті программалау тілі


Жоспары:
I. Кіріспе
PHP.дің пайда болуы және даму тарихы
II. Негізгі бөлім
1. PHP дегеніміз не?
a) Уеб.сайт жасаудың жолдары
b) Apache серверін windows.қа орнату
c) PHP.ді орнату жолы
d) PHP.дегі мәліметтерді жолдау тәсілдері
2. PHP операторлары, функциялары және циклдері
3. PHP тілінің типтері
III. Қорытынды
РНР дің тарихы 1995 жылы Расмус Лердорф (Rasmys Lerdorf) Perl тіліндегі қарапайым қосымшаны ойлап табуымен басталады. Ол қосымша вебсайтта пайдаланушылардың оның резюмесін сараптайды. Содан бұл қосымшамен бірнеше адам пайдаланғаннан кейін оны алғысы келетіндердің саны өсе түсті. Ледорф өзінің жаңалығын Personal Home Page Tools 1-нұсқа деп атайды және оны еркін таратуға жібереді. Осы кезеңнен бастап РНР-дің танымалдылығы арта түсті.Ылғи кездесетін жәйт сияқты оны өңдеу мен толықтыру қажет болды. Оны жүзеге асыру үшін Расмус С-ға жазылған пакеттің жаңа нұсқасын жасап шығаруға осылайша құрал жұмыстың атауға ие болады РНР /Fl /Personal Home Рage /Forms Interpreter/ ары қарай ол РНР 2 деген атаумен де белгілі болады. Бұл версия қазіргі уақытта осы күнгі РНР-ге ұқсас. Оның синтаксисі және Perl тілі стилінде ауыспалы атау алуы, болатын формаларды автоматты интерпетациялауға берілгендермен интеграциясына, және РНР операторларын html код беттерге орналастыруға мүмкіндігі болатын. Сонымен қоса бұның барлығы қате жылдам жұмыс жасайтын болды. Өйткені РНР Apаche серверіне компилирленген еді. 1997 жылы РНР 50,000 - дай доменде қолданылады. Дәл осы жылы - 1997 жылда РНР жобасына Зив Сураски мен Энди Гутманс (Andi Gytmans) қосылды. Олар Израил университеттерінің бірінде студент болып жүріп, РНР-ді коммерциялық университеттік жобаға пайдалануға тырысты. Осы жерде олар көптеген қиындықтармен, бұл технологияның шектеулі екеніне кездесуге тура келді. Яғни Энди мен Зив РНР 2-нің алғашқы кодын үйрене отырып оған өңдеудің, әсіресе тілдің синтаксисіне қайта өңдеу қажет деген тұжырымға келді. Бірнеше ай көлемінде олар бұл тапсырманы кереметтей орындай білді. Оның үстіне бұл жұмыс оларға университеттің оқу жүктемесі ретінде сыналды. Жұмысты бітірген Зив пен Энди Расмуспен байланысты. Ол РНР-дегі барлық өзгерістерді қуана қабылдады. Осы кезеңнен бастап РНР технологиясын дамытумен айналысатын РНР Group топтары пайда болды. Бірлескен әрекет нәтижесінде алынған өнім 1998 жылы РНР-3 деген атаумен жарық көрді. Бұл жердегі РНР 3-тің басты ерекшелігі ядролық кеңеюіне мүмкіндік туды. Бұл арнайыландырылған модульді тудыратын РНР-дің жан-жақты өңдеуіне әкелді. Олардың үлесі - РНР үлкен көлемдегі деректер қоры және хаттамалармен жұмыс жасауға мүмкіндік тудырды. 1998 жылы РНР-ді қолданушылардың саны 10000-ға жетті. Ал РНР интернет серверінің 10 пайыздай шамасына орнатылды. РНР жайында баспаларда 20–дан астам мақала мен 2 кітап жарияланды. РНР-3 жарық көргеннен соң Энди Тутамано және Зив Сурaски РНР-дің ядросын өңдеуге кірісті.
www.w3.com Интернет-ұйымының арнайы сайты.
"Программирование серверных приложений для Windows" Дж. Рихтер, Дж. Кларк. Питер 2001
Г. Миллер. “Коммутация пакетов и каналов”. Пособие для системных администраторов. Издательство “Ноллидж”, 2003 г.

Пән: Информатика
Жұмыс түрі: Материал
Көлемі: 34 бет
Бұл жұмыстың бағасы: 500 теңге




РЕФЕРАТ

Тақырыбы: PHP-скрипті программалау тілі

Орындаған:
Тексерген:

Орал-2011ж.

Жоспары:

I. Кіріспе

PHP-дің пайда болуы және даму тарихы

II. Негізгі бөлім

1. PHP дегеніміз не?

a) Уеб-сайт жасаудың жолдары

b) Apache серверін windows-қа орнату

c) PHP-ді орнату жолы

d) PHP-дегі мәліметтерді жолдау тәсілдері

2. PHP операторлары, функциялары және циклдері

3. PHP тілінің типтері

III. Қорытынды

РНР дің тарихы 1995 жылы Расмус Лердорф (Rasmys Lerdorf) Perl тіліндегі
қарапайым қосымшаны ойлап табуымен басталады. Ол қосымша вебсайтта
пайдаланушылардың оның резюмесін сараптайды. Содан бұл қосымшамен бірнеше
адам пайдаланғаннан кейін оны алғысы келетіндердің саны өсе түсті. Ледорф
өзінің жаңалығын Personal Home Page Tools 1-нұсқа деп атайды және оны еркін
таратуға жібереді. Осы кезеңнен бастап РНР-дің танымалдылығы арта
түсті.Ылғи кездесетін жәйт сияқты оны өңдеу мен толықтыру қажет болды. Оны
жүзеге асыру үшін Расмус С-ға жазылған пакеттің жаңа нұсқасын жасап
шығаруға осылайша құрал жұмыстың атауға ие болады РНР Fl Personal Home
Рage Forms Interpreter ары қарай ол РНР 2 деген атаумен де белгілі
болады. Бұл версия қазіргі уақытта осы күнгі РНР-ге ұқсас. Оның синтаксисі
және Perl тілі стилінде ауыспалы атау алуы, болатын формаларды автоматты
интерпетациялауға берілгендермен интеграциясына, және РНР операторларын
html код беттерге орналастыруға мүмкіндігі болатын. Сонымен қоса бұның
барлығы қате жылдам жұмыс жасайтын болды. Өйткені РНР Apаche серверіне
компилирленген еді. 1997 жылы РНР 50,000 - дай доменде қолданылады. Дәл осы
жылы - 1997 жылда РНР жобасына Зив Сураски мен Энди Гутманс (Andi Gytmans)
қосылды. Олар Израил университеттерінің бірінде студент болып жүріп, РНР-ді
коммерциялық университеттік жобаға пайдалануға тырысты. Осы жерде олар
көптеген қиындықтармен, бұл технологияның шектеулі екеніне кездесуге тура
келді. Яғни Энди мен Зив РНР 2-нің алғашқы кодын үйрене отырып оған
өңдеудің, әсіресе тілдің синтаксисіне қайта өңдеу қажет деген тұжырымға
келді. Бірнеше ай көлемінде олар бұл тапсырманы кереметтей орындай білді.
Оның үстіне бұл жұмыс оларға университеттің оқу жүктемесі ретінде сыналды.
Жұмысты бітірген Зив пен Энди Расмуспен байланысты. Ол РНР-дегі барлық
өзгерістерді қуана қабылдады. Осы кезеңнен бастап РНР технологиясын
дамытумен айналысатын РНР Group топтары пайда болды. Бірлескен әрекет
нәтижесінде алынған өнім 1998 жылы РНР-3 деген атаумен жарық көрді. Бұл
жердегі РНР 3-тің басты ерекшелігі ядролық кеңеюіне мүмкіндік туды. Бұл
арнайыландырылған модульді тудыратын РНР-дің жан-жақты өңдеуіне әкелді.
Олардың үлесі - РНР үлкен көлемдегі деректер қоры және хаттамалармен жұмыс
жасауға мүмкіндік тудырды. 1998 жылы РНР-ді қолданушылардың саны 10000-ға
жетті. Ал РНР интернет серверінің 10 пайыздай шамасына орнатылды. РНР
жайында баспаларда 20–дан астам мақала мен 2 кітап жарияланды. РНР-3 жарық
көргеннен соң Энди Тутамано және Зив Сурaски РНР-дің ядросын өңдеуге
кірісті. Ең бірінші кезектегі мәселе өндірісті жоғарылатуды шешу керек еді.
Zend Engine деп аталатын жақ қозғалыс бұл тапсырманы нәтижелі орындады және
1999 жылы пайда болды. РНР-4 бұл қозғалыста жұмыс жасаушы ретінде 2000 жылы
жарыққа шықты. Өндірісті жоғарылатуда қосымша ретінде РНР 4-тің
мүмкіндіктері зор еді. РНР 4-тің шығуымен ол интернет доменінің 20 пайыздан
көбінде қолданыла бастады. 2000-2004 жылдар арасында 4-ші нұсқаны жұмсарту
үшін белсенді жұмыстар жалғасты. Шамамен сол кезден бастап-ақ РНР Group
жаңа версияның мүмкіндігін ойластыруға кірісті. Бірінші кезекте тілдің
объектілік мүмкіндіктерін күшейту шешілді. Бұл оның жүзеге асыру үшін ірі
жобаларды пайдалануға мүмкіндік берді. 5-ші нұсқаны жарыққа шығару үшін
қосымша уақыт бөлінді. Оған көптеген мамандар қатысты, олардың ішінен
Стерлинг Хьюза және Маркус Бергерді атап өткен жөн болар. Ақыры 2004 жылдың
шілдесінде РНР-5 ресми түрде жарыққа шықты. Бірінші кезекте жоспарланғандай
өңдеуде объектілермен жұмыста барлық механизм жұмылдырылды. Егер алдыңғы
нұсқаларда РНР–дегі объектіге бағытталған бағдарламалау минимальды деңгейде
мүмкін болатын болса, ал РНР-5 объектілік бағдарламалауды жүзеге асыруда
көптеген потенциалдарға ие. Онымен қоса РНР ХМL мен жұмыс жасауда бағалы
кеңейтулермен, берілгендердің әртүрлі қайнар көзіне байыды. РНР 4-дегі ХМL
мен жұмыс жасауға арналған барлық негізгі кітапханалар күрделі өңдеуге
ұшырады. Мынадай танымал кеңйтулер SAX, DOM, және XSLT қазір libxml2-нің
құрал-сайманын пайдаланады. Сонымен қатар тағы да жаңа екі кеңейтулер
қосылды - SimpleXML және SOAP.

SimpleXML XML - берілгендермен жұмысты айтарлықтай оңайлатады. Бұдан алдын
РНР-да ХМL мен жұмыс мұншалықты қарапайым болмаған еді.SOAP -тың кеңеюі РНР-
да ХМL – хабарламаның көмегімен басқа қосымшалармен ақпарат ауысатын
сценарий құрға мүмкіндік береді. Мысалы: НТТР. РНР қосымшалы қазіргі
таңдағы танымал уеб-сервистермен интеграциялауға мүмкіндік туындайды. РНР-5
MySQL (MySQL Improved) жаңа кеңeйтулер МуSQL – сервер версиясымен 4.1.2
және жоғарылармен жұмыс жасауға арналған. МуSQL - ға тек қана процедуралық
емес, сонымен қатар объекті жобалаушылық интерфейс жүзеге асады. Бұл
модульдің қосымша мүмкіндіктері SSL-ді, транзакцияны бақылауды қосады.
SQLite–тің кеңеюі мәліметтерді кәдімгі файлдарда сақтайтын қоcымшаны
құрастыруға мүмкіндік береді. Ол SQL интерфейсін пайдалануға мүмкіншілік
тудырады. SQLite–тың маңызды ыңғайлылығы – пайдаланылу қарапайымдылығы.
SQLite процедуралықпен қатар мәлiметтермен жұмыс жаcау үшін мықты
объектілік - жобалаушылық мүмкіндіктері бар. SQLite-тың басқа ерекшеліктері
– жоғары жылдамдық, басқарудағы күрделі механизмдердің жоқ болуы және оңай
тізгіштік. Көптеген эксперттер РНР-дің бұл кеңейуінің үлкен танымалдылыққа
ие болатындығын жоспарлап отыр.РНР 5-тің басқа кеңейтілуі өзінде
төмендегілерді қамтиды:

• Tidy – HTML-құжаттарды сараптау және түзету үшін.
• Perl - Perl сценарийлерді пайдалану.
• SPL – класстармен интерфейстердің стандарты жиынтығын анықтайтын
ZE2–нің кеңеюі.
• РDО - PHP-дің мәліметтеріне әмбебап интерфейс ұсынады.
• PІMP - GD модульінің орнына келген, графикамен жұмыс жасауға арналған
жаңа кітапхана.
• Бұдан басқа РНР 5-те есте сақтаудың әлдеқайда жылдам диспетчері
пайдаланылады.
• РНР 5 REAR құрылымын нақты жүзеге асыруға керекті қасиеттермен
толықтырылған.

PHP (ағылш. PHP: Hypertext Preprocessor — PHP: еренмәтінді алдын-ала
үдірістегіш) — Веб-серверде HTML беттерін құру және дерекқормен жұмыс
істеуге арналған скрипті программалау тілі. Қазіргі күндерде хостинг
қызметін ұсынатындардың көпшілігімен қолданады. LAMP веб-торап жасауға
арналған стандартты жинақталымына енеді. Тілдің оңайлығы, орындалу
жылдамдығы, функциялық байлығы және PHP негізіндеге әуелгі кодтардың кеңге
таралуының арқасында PHP тілі Торда программалау саласында ең белгілі
тілдердің бірі боп есептелінеді (JSP мен ASP-де қолданылатын тілдермен
қатар). Бұл тілдің айрықшылығы ядро мен соған қосылатын модульдарында.
Соңғылары дерекқор, сокет, динамикалық графика, криптографиялық
кітапханалар, PDF форматты құжаттармен және т.б. жұмыс істеуге арналған.
Бұндай модульды қалаған адам дамытып қоса алады. Модульдардың саны бір неше
жүз болғанымен, стандарттық жабдықтауға тек жақсы нәтиже көрсеткен бір неше
оны ғана кіреді. PHP интерпретаторы веб-серверге не арнайы сол сервер үшін
жасалған модуль арқылы (мысалы, Apache әлде IIS), не CGI-қосымшасы ретінде
қосылады.Бұған қоса, UNIX, Linux, Windows және Max OS X амалдық жүйелерінде
әкімшілік тапсырыстарын атқаруға пайдаланылуы мүмкін. Бірақ PHP тілі бұл
салада кең өріс алмаған, бұған қарағанда Perl, Python және VBScript тілдері
айтарлықтай нәтиже көрсетіп отыр.Тілдің синтаксисі Си тәріздес.
Ассоциаттивтік массивтар мен foreach циклі секілді кейбір элементтері Perl
тілінен алынған.Қазіргі заманда PHP жүздеген мың дамытушылармен
пайдалануда. Интернет желісі сайттарының 5-тен бірі осы тілде жазылған.PHP
дамытушылар тобы тідің ядросы, қосымшаларымен жұмыс істейтін, соған қатар
PEAR не тілдің құжаттамасы сияқты байланысты жобалармен айналысатын
көптеген адамдардан тұрады.

Уеб-сайтты нөлден бастап өз қолыңмен жазып шығу қиын жұмыс. Әдетте
кітаптарда оп-оңай сияқты етіп көрсетеді, мысалы кітаптың атының өзі 30
күнде php немесе  21 күнде хтмл деген сияқты. Бұлар әрмне бастамаға
жақсы. Ал шын мәнінде бұл біраз басты қинайтын жұмыс.Php-да формадағы
мәліметтермен жұмыс істеудің өзін елестетіп көрелік. Формамен жіберліген
мәндерді өңдеу үшін мынадай әрекеттер жасауымыз керек:
- жіберілген мәліметтің типін тексеруіміз керек.
- жіберілген мәліметтердің форматын тексеру керек.
- жіберілген мәліметтерді зиянды тегтерден тазалау (XSS-тен қорғану).
- SQL Injection-нен қорғану.
тағы басқа...Бұл кодтарды жазумен қатар әрине тесттен өткізіп, жұмыс істеу
қабілетіне көз жеткізуіміз де керек. Бұл тек бір формадағы мәліметті өңдеу
ғана. Ал енді қолданушыларды тіркеу, оларға рөл беру тағысын тағы...

Қазір уеб-сайт жасаудың негізгі үш жолы бар:

1) Тек, таза php-ді қолдану арқылы, қосымша кітапханаларын пайдаланып
әрине. Бұл жолмен сайт жасау көп жұмысты керек етеді. Есесіне көп нәрсе
үйренуге және біраз тәжірибе жинап алуға болады. Кішкентай сайт жасалатын
болса, визитка сияқты, сол кезде осы жолмен жасаймыз. Уеб-сайтты тек php-ді
қолдана отырып жасағанда кез-келген функцияны, қалаған түрімізде жаза
аламыз.

2) Дайын дүниені қолдану. Қазіргі таңда CMS-терді қолданып уеб-сайтты 2-3
сағатта зырылдатып жасап шығуға болады. Мұндағы CMS дегеніміз Content
Management System - (Контентті Басқару Жүйесі). Бұл жүйелерді қолдану үшін
php-ді білудің аса қажеті жоқ. Бұл жасалатын сайтқа да байланысты әрине.
CMS-ті қолданғанда ең қиын нәрсе, қиын емес, уақытты алатын нәрсе аударма
жасау. CMS-терді қазақтар жазбағандықтан, ағылшын немесе орыс тілдерінде
жазылған нұсқаларын қолдануға тура келеді. Аударып болғаннан кейін толық
аударылды ма, аударылмаған сөз қалып кеткен жоқ па соны да дұрыстап
тексеріп шығу керек. Осы тұсқа мән бермегендіктен ба, әйтеуір қазақ
сайттарында қазір ана жерінде ағылшынның бір сөзі, мына жерінде орыстың бір
сөзі кезігіп жатады.

Әрине, CMS-ті қолданып сайт жасау уақыт жағынан, басты ауыртпау жағынан
тиімді, бірақ php-дің ләззатынан құр қаласыз. Өйткені CMS-ті қолданғанда
мандытып ешқандай код жазудың керегі жоқ. Барлығы дайын. Қазіргі таңда кең
тараған CMS-тер: wordpress, joomla, drupal... Бұл тізімдегінің біріншісі
қазақ интернетінде көп кездеседі.

3) Фреймворк қолдану арқылы: Фреймворктың жұмысы MVC моделіне негізделген.
Бұл жердегі MVC (Model-View-Controller)-(Модель-Көр ініс-Контроллер).
Фреймворкта жасағалы жатқан сайтымыз логикалық үш бөлікке бөлінеді:
Модель (Model) – мәліметтермен жұмыс істейді. Мысалы, жазбаларды деректер
қорына енгізу, өшіру сияқты.
Контроллер (Controller) – бұл басқару орталығы сияқты. Шолғыштан келген
сұраныстарға жауап береді. (қай бетті ашу керек деген сияқты)
Көрініс (View) – Шолғышқа жіберілетін html бетті жасайды.

Бұл жерде бір бөлікке жасалынған өзгеріс екінші бөлікке минималды
әсерін тигізеді, әсер етпейді дерліктей. Мысалы, моделге енгізілген
өзгеріс, көрініске тигізетін әсері минималды болады.Фреймворк жоғарыда
көрсетілген тізімдегі бірінші мен екінші пункттің ортасында десек болады.
Фреймворк қолданғанда функцияларды еркін, өз бетіңше жаза алмайсың. Бұл
жерде әр фреймворктың өзіне тән қағидалары болады, функциялар сол қағида
бойынша жазылады. Сосын бұл жерде көптеген функциялар дайын, жазылып,
тестіленіп қойған. Фреймворктың артықшылығы да осы. Көптеген функциялар
жазылып, тесттен өткізілген.
Қазіргі таңда кең тараған фреймворктарға келетін болсақ, олар:
ZendFramework, Yii, Cakephp, CodeIgniter тағысын тағылары.PHP-дің
икемділігі, қарапайымдылығы жағынан ең танымал скриптті программалау тілі
екендігіне ешкімнің дауы жоқ шығар. Десек те, сайт жасау барысында, PHP-ді
ұзақ уақыт қолданғанда бірдей кодтарды, сценарилерді қайта-қайта көп
қолдануға тура келеді. Мысалмен айтсақ, PHP қолданып бір сайт жасап
жатырмыз делік. Әр сайтта болатыны сияқты бұл сайтымызда да форма жасайық.
Бұл формаға қолданушылар мәлімет енгізеді. Ол мәліметтерді деректер қорына
енгіземі. Енгізбестен бұрын, бұл мәліметтерді сүзгіден (фильтрден) өткізіп
алуымыз керек. Нені сүземіз? Қолданушылар тарапынан жіберілуі мүмкін болған
қауіпті мәліметтерді (Validate, Sanitize т.б тәсілдермен) сүзіп аламыз.
Сүзгіден өткізуіміз үшін біршама код жазамыз. Бұл кодымызды қателіктері бар-
жоғына тексереміз. Бұл нәрсе барлық сайтта болады. Келесі сайт
жасағанымызда да осы процессті қайталауға мәжбүр боламыз. Әрине, PHP-ді
енді үйреніп келе жатқанда, бұлай қайталай беру PHP-ді тереңірек түсінуге
септігін тигізеді. Бірақ, ұзақ уақыт өткенде, адам бұдан жалығады. Бәлкім,
қайталана беретін бұл кодтарды сақтап, копипаст жасай берсек болатын шығар.
Жоқ, одан да мықты Фреймворк деген дүние бар.Фреймворк ағылшыншадан
тікелей аударғанда қаңқа деген мағынаны береді. Аты айтып тұрғандай,
фреймворктар біздің жасайтын сайтымыздың қаңқасы. Көрініс жағынан емес,
функционалды жағынан. Кез-келген сайтта болуы керек болған функциялар, әлгі
сүзгілер фреймворктардың ішінде жазылып, қателіктерге сан мәрте тексеріліп
қойған. Фреймворктарда біздің уақытымызды үнемдейтін біраз сұрақтарға
дайын шешімдер бар. Фреймворктар MVC қалыбына негізделген. Қазіргі таңда
фреймворктардың түрлері өте көп. Олардың біразы: CodeIgniter, CakePHP, Zend
Framework, Kohana, Yiiframework.Әрине, PHP-ді жетік білетіндер
фреймворктарды қолданбайды. Олар, фреймворкты өздері-ақ жазуы да мүмкін.
Бірақ, уақыт үнемдеу үшін, PHP-мен жұмыс істеу тәжірибесі аз адамдардың,
фреймворкпен жұмыс істеуі ұтымды шешім. Ал енді, фреймворк қолдану керек
пе, CMS қолдану керек пе немес таза PHP-дің өзін қолдану керек пе деген
заңды сұрақ туындайды. Бұл, сайт жасайтын адамға, жасалатын сайтқа
байланысты. Бұл туралы кейінірек жазармыз... MVC – Model, View, Controller
сөздерінің басқы әріптері. MVC – бұл өзінше бір қалып (шаблон). Бұл қалып
сайт жасау саласында көп қолданылады. Келесі жазбаларымыздың тақырыбы
болатын PHP фреймворктар осы MVC қалыбына негізделген. MVC тақырыбын түсіне
білу үшін php тілін білумен қатар OOP (Object Oriented Programming) -
Объектіге Бағытталған Бағдарламалауды да білу керек.

MVC өзі үш компоненттен тұрады. Олар:Модель, Көрініс және
Контроллер. Бұл айтылғандар қалай жұмыс істейді. Соны жалпақ тілмен айта
кетейік. Бұл жердегі көрініс деп отырған компонентіміздің міндеті –
көрсету, мәліметтерді көрсету. Моделдің міндеті – деректер қорымен
байланыс, деректер қорына мәліметтерді енгізу, өшіру, өңдеу. Ал контроллер
болса осы екі компонентті байланыстыратын түйін десек болатын шығар. Бұл
дүние қалай жұмыс істейді? Айталық қолданушы бір сұраныс жасады – біздің
MVC қалыбына негізделіп жасаған сайтымыздағы бір мақаланы ашты делік. Яғни,
шолғышына былай жазды mysal.kzindex.php?id=1. Мұндағы mysal.kz біздің
сайтымыз. Контроллер бұл сұранысты алады да, ішіндегі мәліметті Моделге
береді. Мұндағы мәлімет – 1 саны. Бұл сан қолданушы оқымақшы болып отырған
мақаланың деректер қорындағы id-і (нөмірі). Модел деректер қорынан 1-ші
нөмірлі мақаланы алып, контроллерге береді. Контроллер ол мақаланы
Көрініске береді. Көрініс оны қолданушыға береді, яғни қолданушының
шолғышында көрсетеді. Осы айтқандарымызды қарапайым бір мысалмен
көрсетелік:Алдымен деректер қорын құрып алайық. Деректер қорымыздың аты
jazbalar болады. Бұл деректер қорына төмендегі код арқылы мәліметтер
кестесін құямыз.

view source

print?

1.CREATE TABLE IF NOT EXISTS `makala` (

2.`id` int(2) NOT NULL AUTO_INCREMENT,

3.`title` varchar(200) DEFAULT NULL,

4.`text` text,

5.PRIMARY KEY (`id`)

6.) ENGINE=InnoDB DEFAULT CHARSET=utf_unicode AUTO_INCREMENT=3 ;

Кодтан көргеніміздей мәліметтер кестеміздің аты makalа. Енді локалды
серверімізге mvc деп аталатын сайт жасаймыз. Сайтымыздың бумалары
(папкалары) мен файлдары төмендегі суреттегідей болады:Мұндағы model.php
файлының ішінде төмендегідей код болады.

view source

print?

01.class Model{

02.private $host="localhost";

03.private $user='root';

04.private $password='';

05.private $db='jazbalar';

06.private $table='makala';

07.

08.

09.function getMakala($id)

10.{

11.$this-_connectDB();

12.$query="SELECT * FROM ".$this-table." WHERE id=$id";

13.$query_result=mysql_query($query );

14.$row=mysql_fetch_assoc($query_re sult);

15.return $row;

16.

17.}

18.

19.private function _connectDB()

20.{

21.$connect=mysql_connect($this-ho st,$this-user,$this-password) or
die('Деректер қорымен байланыс жоқ');

22.$db=mysql_select_db($this-db,$c onnect) or die('Деректер қоры
табылмады');

23.

24.}

25.}

model.php файлындағы кодтарды айта кетсек. Біз бұл жерде Model деген класс
жасадық. Бұл класстың айнымалылары және функциялары (методтары) бар.
_connectDB() функциясы бізді деректер қорымен жалғайды. getMakala()
функциясы болса, сол деректер қорынан нөмірі $id мәніне тең болған мақаланы
шығарады. Бұл мән модельге контроллерден беріледі (төменде).

Ал controller.php файлында мынандай код болады:

view source

print?

01.require_once".modelmodel.php";

02.class Controller{

03.

04.function showMakala($id)

05.{

06.$obj=new Model();

07.$makala=$obj-getMakala($id);

08.require_once".viewview.php";

09.}

10.

11.}

controller.php файлында бірінші require_once функциясы арқылы мұның алдында
жазған model.php файлын жалғаймыз. Сосын Controller деп аталатын класс
құрамыз. Бұл класстың showMakala() деп аталатын жалғыз функциясы бар. Бұл
функцияға $id параметрі қолданушы тарапынан беріледі. Бұл ол параметрді
алып, модельдің getMakala() функциясына береді. Сонымен қатар require_once
функциясы арқылы view.php файлын жалғайды.

Енді view.php файлының ішіне былай жазамыз:

view source

print?

01.!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.0 TransitionalEN"
"http:www.w3.orgTRxhtml1DTDxh tml1-transitional.dtd"

02.html xmlns="http:www.w3.org1999xhtml "

03.head

04.meta http-equiv="Content-Type" content="texthtml; charset=utf-8"

05.titleMVCtitle

06.head

07.body

08.h2?php echo $makala['title'];?h2

09.p

10.?php echo $makala['title'];?

11.p

12.body

13.html

Бұл кодтан көретініміздей view.php файлында хтмл кодтар жазылған, яғни
көрініс. Бұл жердегі $makala массиві контроллер тарапынан келді.

Ал index.php файлының ішіне былай жазамыз:

view source

print?

1.require_once"controllercontrolle r.php";

2.$show=new Controller();

3.$show-showMakala($_GET['id']);

index.php файлы шолғыш тарапынан болған сұранысты қабылдайды. require_once
функциясы арқылы controller.php файлын қосады. Сосын controller.php
файлындағы Controller класының showMakala() функциясын іске қосады.
showMakala() функциясының қызметі жоғарыда айтылды.Енді деректер қорына
мақала енгізіп, бұл мысалды локалды серверде жасап жатқандықтан, шолғышқа
былай жазсақ: http:localhostmvcindex.php?id=1 . Енгізген мақаламызды
көре аламыз. id=2 немесе id=3 деп әр мақаланы көруге болады.Әрине, біз бұл
жерде MVC қалыбын қарапайым тілмен, қарапайым кодтармен түсіндіруге
тырыстық. Шын мәнінде, ол күрделілеу болады. Және объектіге бағытталған php-
ді білуді талап етеді.

Біздің білетініміздей PHP - сервер тілі. Бұл дегеніміз уеб-сервер
болмаса PHP-мен жұмыс істей алмаймыз. Ал сатып алған хостингпен жұмыс
істейтін болсақ, жағдай былай болады:PHP скрипт (код) жазамыз. Бұл жазған
кодымыздың нәтижесін көру үшін, оны серверге файл-менеджер арқылы
көшіреміз. Ол үшін әрине интернет қосулы болу керек. Кодтың әр қатарын
жазған сайын, қателігін көру үшін қайта-қайта уеб-серверге көшіре беру -
адамның ығырын шығарары ақиқат. Әр жаңа код жазған сайын, оның нәтижесін
көру үшін серверге көшіре бергенше, бұл нәрсені басқа жолмен істеуге
болады. Оның жолы - сол уеб-серверді өзіміздің компьютерімізге орнату. Бұл
жағдайда жазған кодымыздың нәтижесін ешқайда көшірмей-ақ, өз
компьютерімізде көре аламыз. Бұл - өте ыңғайлы болады.

Неге Apache?

Apache бұл біздің компьютерімізге орнатайын деп отырған уеб-серверіміздің
аты. Неге Apache-ты орнатамыз? Өйткені - дәл қазіргі уақытта Apache ең
танымал және кең қолдау тапқан серверлердің бірден бірегейі. Көптеген
хостинг-провайдерлер осы Apache-ты қолданады. Компьютерімізге орнатуымыз
үшін алдымен Apache-ты жүктеп алуымыз керек. Apache-тың ресми сайты -
apache.org. Біз бұл мысалымызда Apache-ты Windows XP ОЖ-ге орнатамыз.
Apache-тың уиндоус-қа арналған бинарлы нұсқасын мына жерден жүктеп алуға
болады: http:httpd.apache.orgdownload.cg i . Бинарлы нұсқасы дегеніміз -
өздігінен орнатылатын файл. Біздің тек моуспен next батырмасын басып
отыруымыз жеткілікті. Біз бұл мысалымызда Apache-тың 2.2 нұсқасын жүктедік
(httpd-2.2.20-win32-x86-no_ssl.msi) . Жүктеп алынған Apache файлының үстіне
екі рет басамыз. Төмендегі суреттегідей терезе ашылады:

Бұл терезеде үңіліп қарайтындай маңызды ешнәрсе жоқ. Апачтың нұсқасы,
хұқығы жазылған. Көзді жұмып Next батырмасын баса беруге болады. Next
батырмасын басқаннан кейін көретін келесі тереземіз - төмендегідей:

Бұл терезеде Апачтың шарттары жазылған. I accept the terms in the license
agreement дегенді белгілеп, яғни Апачтың шарттарын қабылдап, Next
батырмасын басып келесі терезеге өте беруге болады. Келесі тереземіз
төмендегідей болады:

Бұл терезеде үш ұяшық бар: Network domain (e.g. somenet.com), Server Name
(e.g. www.somenet.com), Administrator's email address (e.g.
webmaster@somenet.com).
Network domain (e.g. somenet.com) - localhost деп жазуға болады.
Server Name (e.g. www.somenet.com) - localhost деп жазуға болады.
Administrator's email address (e.g. webmaster@somenet.com) - кез-келген e-
mail, мысалы webmaster@localhost
Жазып болғаннан кейін, (таңдаушаны for All Users, on Port 80, as a Service
-- Recommended дегенде қалдырып), Next батырмасын басып, келесі терезеге
өтеміз:

Бұл терезеде таңдаушаны Typical дегенде қалдырып, Next батырмасын басамыз.
Келесі көретін тереземіз:

Бұл терезеде Апачтың файлдарын тастайтын жолын көрсетеді. Ол өздігінен
файлдарын мына жерге тастайды: C:\Program Files\Apache Software Foundation\
Apache2.2\ . (windows 7 немесе vista қолданушыларына С:\Users\Public
бумасына орнатуға кеңес беріледі) Осылай қалдырып келесі терезеге өте
беруге болады:

Install батырмасын басып, Апачты орнатуды бастаймыз. Ол әрине автоматты
түрде өзі орнатылады. Апач орнатылғаннан кейін, компьютеріміздің оң жақ
төменгі бұрышында Апачтың белгісі пайда болу керек. Сол белгі арқылы Апачты
қосып, өшіріп немесе рестарт жасауға болады. Апачты орнатқаннан кейін,
шолғышты ашып, адрес енгізетін ұяшыққа localhost адресін енгізсек, It works
(Apache 2.2 нұсқасында) жазуы шығу керек. Бұл - Апач орнатылып, өз қызметін
атқарып тұр деген сөз.

Мына жерде Апач уеб-серверін қалай орнату керектігі айтылды.
Орындалатын файлдар, яғни жазылатын php сценарийлер апачтың ішінде htdocs
деп аталатын буманың ішінде орналасуы тиіс. Шолғышта http:localhost деп
жазғанда шығатын It works! сөзі жазылған html файл да осы htdocs бумасының
ішінде жатыр. Әдетте (апач файлдары қай жерде орналасқанға байланысты
әрине) htdocs бумасы мына жерде: C:\Program Files\Apache Software
Foundation\Apache2.2. Енді бізге апачтың ішінде кішкене өзгеріс жасау
керек. Апачта бізге қатысты өзгерістерді httpd.conf файлында жасаймыз. Бұл
файл әдетте мына жерде: C:\Program Files\Apache Software
Foundation\Apache2.2\conf. httpd.conf файлында жасалған әрбір өзгеріс
апачты рестарт жасағаннан кейін ғана іске қосылады. conf бумасының ішінде
орналасқан httpd.conf файлын ашып, кәдімгі блокнотпен ашуға болады,
Directory "C:Program FilesApache Software FoundationApache2.2htdocs"
деген жазуы бар қатарды тауып аламыз. Осы қатардан кейін келетін
AllowOverride None деген жазуды AllowOverride All деп өзгерту керек. Бұл
өзгеріс бізге htdocs бумасының ішіне .htaccess деп аталатын файлды
қолдануға рұқсат береді. Осы өзгерістен кейін апач әр қосылғанында
AllowOverride All жазуын көргеннен кейін, яғни .htaccess файлына рұқсат
берілгенін көргеннен кейін, сол .htaccess файлын орындайды. Яғни біз htdocs
бумасына қатысты кейбір баптауларды .htaccess файлына жаза аламыз. Бұл
айтылған баптауға бір мысал келтіре кетейік: Блокнотты ашып, ішіне мына екі
қатарды жазамыз:

Options Indexes FollowSymLinks
DirectoryIndex index.php

Сөйтіп, бұл файлды .htaccess деген атаумен htdocs бумасының ішіне
сақтаймыз. Файлдың атауы нүктеден басталатынына мән беріңіз. Енді,
 шолғышқа http:localhost деп жазып ENTER бассақ, It works! жазуы
шықпайды, төмендегідей жазу шығады:

Index of
index.html
Неге? Өйткені біз .htaccess файлындағы DirectoryIndex мәніне index.php
деп бердік. Апач .htaccess файлын оқып, ең бірінші ашылу керек болған
index.php файлын іздейді, оны таппағаннан кейін htdocs бумасындағы файлдар
мен бумалардың барлығын көрсетеді. Бізде htdocs бумасында index.html
файлынан басқа ешнәрсе болмағаннан кейін тек осыны ғана көрсетті. Апач әлі
php файлдарды танымайды. Сіз қазір, htdocs бумасына index.php файлын жасап,
ішіне кез-келген бір php код жазсаңыз, ол код орындалмайды. Шолғышта тек
сол жазған кодыңызды ғана көресіз. Апачтың php-ді тани алуы үшін, біз енді
php-ді жүктеп алып, апач-қа модуль ретінде орнатамыз (қосамыз).Php-дің
орналасқан сайты http:www.php.net. Ал біз php-дің уиндоусқа арналған
нұсқасын мына жерден жүктеп ала аламыз: http:windows.php.netdownload .
Біздің php-дің installer нұсқасын емес zip нұсқасын жүктеу іміз керек.
Біздің жүктеген нұсқамыз мынандай болды: php-5.2.17-Win32-VC6-x86.zip.
C:\Program Files-тың ішіне жаңа php деген атаумен бума жасап, соның ішіне
жүктеген zip нұсқаны архивтен шығарамыз. Сосын шығарылған файлдар мен
бумалардың арасынан php.ini-recommended деген файлды тауып, атауын php.ini
деп өзгертеміз. Php-ге кеңейтулер осы php.ini файлы арқылы енгізіледі. Php-
дің функциялар саны негізі төрт мыңнан асады. Бірақ, ол функциялардың
барлығы қосулы емес. Шамамен көп қолданылатын 1200-1300 данасы ғана
қосылған. Ал қалған функцияларды осы php.ini файлы арқылы қосылады. Қалай
қосу керектігін уақыты келгенде жазармыз. Қосымша функцияларды php
бумасының ішіндегі ext бумасынан табуға болады. Енды C:\Program
Files\Apache Software Foundation\Apache2.2\conf жолымен барып, httpd.conf
файлын ашамыз. Ашқаннан кейін файлдың соңғы қатарына мына үш қатар жазуды
енгіземіз:LoadModule php5_module "C:Program
Filesphpphp5apache2_2.dll"AddType applicationx-httpd-php .phpPHPInidir
"C:Program Filesphp" Бұл үш қатар жазудың бірінші қатары апачқа  php
модулін жүктеу керектігін айтады және сол модулдің орналасқан жолын
көрсетеді. Екінші қатар болса, php файлдарды қандай кеңейтумен (extension)
ашу керектігін, яғни .php кеңейтуімен ашу керектігін айтады. Үшінші қатары
php.ini файлының орналасқан жерін көрсетеді. Сосын, php-дің өзінің php.ini
файлын таба алуы үшін (қызық, иә) php.ini файлдың көшірмесін мына жерге
тастаймыз: C:\WINDOWS. Енді, блокнотты ашып, ішіне мына кодты жазамыз:

view source

print?
1.echo phpinfo();
Жазғаннан кейін файлды htdocs бумасының ішіне info.php деген атаумен
сақтаймыз. Енді, шолғыштан http:localhostinfo.php адресін терсек, php
туралы мәліметтер жазылған бет ашылады. Бұл жерде php-дің ядросы, қандай
параметрлер қосылғанын, мәндерін көруге болады. Кішігірім анықтама. Яғни,
біздің жазған phpinfo() функциямыз орындалады. Бұл - апач php-ді таныды
деген сөз. Яғни, біз php-ді апач-қа модуль ретінде орнаттық. Apache локалды
сервері мен PHP-ді орнатқаннан кейін, ендігі кезек - php-де скрипт жазу.
PHP кодтарын жазу үшін бізге алдымен бір редактор керек. PHP тілін енді
үйреніп жатқандарға мен Notepad++ редакторын қолдануға кеңес берер едім.
Салмағы да жеңіл (~5MB). Функциялар мен операторлар басқа түспен
көрсетіліп, ажыралып тұрады. Төмендегі суретте php код жазылған Notepad++
редакторының көрінісін көре аласыз:

Notepad++ редакторын мына жерден тегін жүктеп ала аласыз: http:notepad-
plus-plus.orgdownloadv5.9.3.html. Installer нұсқасын жүктеп алып, оңай
орнатуға болады.

Енді php тіліне оралсақ. php тілінде кодтардың барлығы ?php және ?
тегтерінің арасына жазылуы тиіс. Жазылу тәсілі былай болады:

view source

print?
1.?php
2 ... php код...
3.?
Негізі php кодтарын ? және ? тегтерінің арасына да жазуға болады. Ол үшін
php-дің php.ini конфигурациялық файлында short_open_tag мәнін On деп қою
керек (short_open_tag = On). Ең дұрысы ?php және ? деп жазу әрине. Біздің
білетініміздей php кодтарын HTML құжатының кез-келген жеріне жаза береміз.
Кез-келген программадағыдай, біз де бірінші php кодымызды Сәлем әлем!
сөзінен бастайық. Біз бірінші кодымызды HTML құжатына жазамыз. Енді
редакторымызды ашып, ішіне мына кодты жазамыз:

view source

print?
01.html
02.head
03.title
04.?php
05.echo "Бірінші код";
06.?  
07.title
08.head
09.body
10.?php
11.echo "Сәлем әлем!";
12.?
13.body
14.html
Жазып болғаннан кейін файлға кез-келген атау, .php кеңейуімен беріп, мысалы
firstscript.php, Apache-тың ішіндегі htdocs бумасының ішіне сақтаймыз. Егер
Апачты C: дискісіне орнатқан болсаңыз, бұл жол былай болады: C:Program
FilesApache Software FoundationApache2.2htdocs. Жоғарыда жазған кодтағы
Сәлем әлем! сөзін шолғышқа шығаратын функция - echo функциясы. Мұны кейде,
функция емес, конструкция деп те жатады. Шолғышқа шығаратын сөзімізді,
тырнақшаға (") алуымыз міндетті. Тырнақша қос (") болуы да мүмкін, жалғыз,
тек (') болуы да мүмкін. Әрине бұлардың арасында айырмашылық бар.
Функцияның соңына нүктелі үтірді (;) міндетті түрде қою керек. php тілінде
кез-келген кодты аяқтаған кезде, соңына нүктелі үтірді қою керек, әйтпесе
шолғышта қателік көретін боласыз. Енді шолғышта
http:localhostfirstscript.php адресін терсек, Сәлем әлем! сөзі шығуы
керек. Сонымен қатар біз title және title тегтерінің арасына да php
код жаздық. Мұны да шолғышта құжаттың тақырыбы жазылатын жерден көреміз.
Көріп тұрғанымыздай php кодтарын HTML құжатының кез-келген жеріне жаза
аламыз.Біз бұл сайтта php кодтарын ?php және ? тегтерінсіз жаздық. Сіздер
өздеріңізде жазғанда осы тегтерді ұмытып кетпеуіңізді ескертеміз.Кейде
кейбір айнымалылардың мәнін еш өзгертуге тура келмейтін, өзгертілмейтін
кездер болады. Сол кезде php-дағы константаларды қолдануға болады. Мысалы,
айталық сайттың атауы, яғни бұл атауды ешқашан өзгертпейміз, міне осыны
константа етіп алуға болады. Константалар define функциясы арқылы беріледі.
Төмендегі кодта:

view source

print?
1.define('SITENAME','www.webteacher .kz');
Бұл кодта бірінші жазылғаны константаның атауы, екіншісі мәні. SITENAME
атауына www.webteacher.kz  мәнін меншіктедік. Енді скриптымызда SITENAME
деп қолданатын болсақ, www.webteacher.kz мәні шығады.

Негізі константаларды үлкен әріппен жазу шарт емес. Бірақ, "жазылмаған заң"
бойынша үлкен әріппен жазған дұрыс. Айқындалып, ерекшеленіп тұруы үшін
үлкен әріппен жазған дұрыс. Сонымен қатар константалардың алдына
айнымалыларға қойылатын $ белгісі қойылмайды. Біз жоғарыдағы константаны
шолғышта шығару үшін былай жазамыз:

view source

print?
1.echo SITENAME;
Шолғыштан бұл константаның мәнін көреміз. Константа бір рет анықталып
бекітілгеннен кейін, екінші рет мәнін өзгертуге болмайды, яғни  жоғарыдағы
константаны define('SITENAME','www.kazakh.kz'); сияқты басқа мәнге өзгерте
алмаймыз. Константаларды бекіткенде бекітілетін мән жол болса ғана жақшада
жазу керек, егер бекітілетін мән сан болса жақшада жазу міндетті емес.
Мысал:

view source

print?
1.define('PI',3.14);
php-дің алдын ала бекітілген константалары бар. Бұл константаларды скрипт
жазғанда қолдануға болады. Олар мыналар:

__LINE__ - скрипттің ағымдағы қатары (осы константа жазылған қатар)
__FILE__ - ағымдағы скрипт жазылған файлдың орналасқан жері (мысалы:
C:\sites\site.kz\www\index.php)
__FUNCTION__ - ағымдағы орындалып жатқан функцияның аты
__CLASS__ - ағымдағы класстың аты
__METHOD__ - ағымдағы класстың тәсілінің (қасиетінің) аты
PHP_VERSION - PHP нұсқасы
PHP_OS - PHP жұмыс істеп жатқан ОЖ-ның аты

PHP тілінде мезгілмен (date) жұмыс істейтін функция бар. Бұл тіл ағылшын
тілінде жазылғандықтан бұл функциялардың барлығының нәтижесі ағылшын
тілінде болады. Мысалы бүгінгі күннің мезгілін шығарып көрейік:

view source

print?

1.echo date("d F Y");

Нәтижесі мынандай болады: 05 October 2011 .

Енді date() функциясымен мезгілдің тағы бір түрін жазып көрелік. Яғни, айды
атаумен емес, санмен шығарайық:

view source

print?

1.echo date("d n Y");

Мұның нәтиежсі 05 10 2011 болады. Ал енді, мұның барлығын қазақшаға қалай
аударамыз. Ол үшін мынандай код жазамыз:

view source

print?

01.$aylar=array(

02.1='Қаңтар',

03.2='Ақпан',

04.3='Наурыз',

05.4='Сәуір',

06.5='Мамыр',

07.6='Маусым',

08.7='Шілде',

09.8='Тамыз',

10.9='Қыркүйек',

11.10='Қазан',

12.11='Қараша',

13.12='Желтоқсан'

14.);

15.$index=date('n');

16.echo date('d').' '.$aylar[$index].' '.date('Y');

Біз бұл жерде $aylar массивіне айлардың қазаша атауын нөмірлерімен
индекстеп меншіктедік. Сосын $index айнымалысына date('n'), яғни ағымдағы
айдың нөмірін меншіктедік. Сосын echo операторы бүгінгі күннің қазақша
атауын шолғышқа шығардық. Мысалдың нәтижесі бүгінгі күн, яғни 05 Қазан 2011
болады.

Қарастырылайын деп отырған мәселе - php-дегі мәліметтерді жолдау
тәсілдері. php-де мәліметтерді жолдаудың екі тәсілі бар: POST және GET.
Мәліметтерді жолдау дегеніміз, әдетте сайттардағы формаларға енгізілетін
мәліметтер. Логинімізді, құпия сөзімізді, немесе белгілі бір файлды формаға
енгізіп, "жолда" батырмасын басқанымызда, бұл мәліметтер көбінесе аталмыш
екі тәсілдің бірімен кетеді. Көп жағдайда мәліметтер POST тәсілімен
жіберіледі. Өйткені GET тәсілімен жіберілетін мәліметтер шолғыштағы адрес
арқылы жіберіледі де, жасырын емес, яғни ашық күйде қалады. Бұл өз
кезегінде қауіпті, мысалы құпиясөз немесе құнды мәлімет жіберетін болсақ.
Ал, енді бұл екі тәсілдің айырмашылығын нақтырақ үсіндіру үшін, кестемен
көрсетейік:

Сипаттамасы POST GET
Жолдау тәсілі Стандартты Адреcпен қосып
ағын жәберу
Жолданатын мәлімет 8 М 255 символ
көлемі
Кэштеу Жоқ Иә

Кестеге қарап қай тәсілді қай уақытта қолдану керек екенін жобалауға
болады. Көлемі аз, құпия емес мәліметтерді GET тәсілімен жолдай беруге
болады. GET тәсілі мәліметтерді адреспен қосып жолдайды. Мысалмен
көрсетейік. Жаңа бір файл ашып, ішіне төмендегі кодты жазамыз:

view source

print?
1.form method="get" action="index2.php"
2.input type="text" name="name"

3.input type="password" name="password"

4.input type="submit" value="Жолда"
5.form
Кодты жазып болған соң, файлды index.php ... жалғасы
Ұқсас жұмыстар
PHP тілі
PHP тілі туралы
PHP бағдарламалау тілі
PHP
PHP тілі. PHP-мен бірге жұмыс істейтін құралдар
Web программалау тілі
Паскаль программалау тілі. Программалау тілі командаларының ортасы
JSP, PHP, ASP Web программалау тілдеріне шолу. Сайт құру кезеңдері
Турбо паскаль программалау тілі
Turbo Pascal программалау тілі
Пәндер

Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор №1 болып табылады.

Байланыс

Qazaqstan
Phone: 777 614 50 20
WhatsApp: 777 614 50 20
Email: info@stud.kz
Көмек / Помощь
Арайлым
Біз міндетті түрде жауап береміз!
Мы обязательно ответим!
Жіберу / Отправить

Рахмет!
Хабарлама жіберілді. / Сообщение отправлено.

Email: info@stud.kz

Phone: 777 614 50 20
Жабу / Закрыть

Көмек / Помощь