NetLizard
PHP Functions(funksiyalar).
Funksiyalarga murojaat qilinganda biror shart bajariladi.
Phpda siz ozingizning funksiyalaringizni ham qoshishingiz mumkin.
SINTAKSIS: function functionName() {
    code to be executed;
}
*- yani bu yerda function- bu funksiyaga murojaat, functionName()- bu siz yaratadigan funksiya. {}- bu yerga kod yoziladi.
Eslatma: funksiya nomi yuqori yoki quyi harflardan boshlanadi(raqam emas!)
  1. <?php
  2. function writeMsg() {
  3.     echo "Salom, Dunyo!";
  4. }
  5.  
  6. writeMsg(); // funksiyaga murojaat
  7. ?>

*- funksiya nomi case-sensitive emas, unda katta va kichik harfni ahamiyati yo'q.
PHP Function Arguments.
Argumentlar bu funksiya ichiga yoziladi, ular xuddi massivdek korinishga ega.
  1. <?php
  2. function familyName($fname) {
  3.     echo "$fname Refsnes.<br>";
  4. }
  5.  
  6. familyName("Jani");
  7. familyName("Hege");
  8. familyName("Stale");
  9. familyName("Kai Jim");
  10. familyName("Borge");
  11. ?>

*- nima boldi bu yerda? Bu yerda function familyName() orqali funksiya tuzdik.Qavs ichidagi $fname- bu argument.
Php Default Argument value.
Bu orqali siz ozingiz xohlagan argumentlar sonini belgilaysiz.
  1. <?php
  2. function setHeight($minheight = 50) {
  3.     echo "The height is : $minheight <br>";
  4. }
  5.  
  6. setHeight(350);
  7. setHeight(); // xohlasangiz 50 qiling
  8. setHeight(135);
  9. setHeight(80);
  10. ?>

*- bu yerda setHeight() orqali argumentlarni aniqladik, u minimal 50 boldi.
Php Functions-Returning values.
Bu orqali siz kerakli shartga qaytasiz.
  1. <?php
  2. function sum($x, $y) {
  3.     $z = $x + $y;
  4.     return $z;
  5. }
  6.  
  7. echo "5 + 10 = " . sum(5, 10) . "<br>";
  8. echo "7 + 13 = " . sum(7, 13) . "<br>";
  9. echo "2 + 4 = " . sum(2, 4);
  10. ?>

*- bu yerda return $z; yani $x + $y ga qaytiladi.
PHP Superglobals.
$GLOBALS
$_SERVER
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
*******
$GLOBALS- bu orqali siz global ozgaruvchilarga php kodni qayerida bolishidan qatiy nazar ulana olasiz.
Global ozgaruvchiga php kodda $GLOBALS[index] orqali ulanasiz.
-----------
$_REQUEST.
Bu orqali siz formlarda foydalanishingiz mumkin.
  1. <html>
  2. <body>
  3.  
  4. <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
  5.   Nomi: <input type="text" name="fname">
  6.   <input type="submit">
  7. </form>
  8.  
  9. <?php
  10. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  11.     // inputdagi malumotlarni jamlash
  12.     $name = $_REQUEST['fname'];
  13.     if (empty($name)) {
  14.         echo "Nomi bosh bolmasligi kerak";
  15.     } else {
  16.         echo $name;
  17.     }
  18. }
  19. ?>

*- bu yerda inputga nomini yozasiz va submit bosilgach u post method orqali kerakli malumotni uzatadi.Yuqorida koryapmizki nomini kiritmasangiz echo "Nomi bosh bolmasligi kerak"; yozuvi chiqadi, kiritgan bolsangiz echo $name chiqadi.
------
$_GET
Bu ham yuqoridagi kabi formlarda qollaniladi.$_GET malumotlarni toplab uni URLga uzatadi.
  1. <html>
  2. <body>
  3.  
  4. <a href="test_get.php?subject=PHP&web=sever.ru">Test $GET</a>
  5.  
  6. </body>
  7. </html>

*- bu xuddi konfetkaga oxshagan.Yani bu yerda Test $GET bosilsa siz test_get.php?subject=PHP&web=sever.ruga get sorov yuborasiz.
Eslatma: Php $_GET va $_POST bu supergloballar formdagi malumotni jamlab jonatish va qabul qilish uchun ishlatiladi.
Php Simple Form
  1. <html>
  2. <body>
  3.  
  4. <form action="welcome.php" method="post">
  5. Nomi: <input type="text" name="name"><br>
  6. E-mail: <input type="text" name="email"><br>
  7. <input type="submit">
  8. </form>
  9.  
  10. </body>
  11. </html>

*- yani bu yerda forma toldirilib submit bosilgach u welcome.phpga HTTP POST metod jonatadi.
WELCOME.PHP
  1. <html>
  2. <body>
  3.  
  4. Salom <?php echo $_POST["name"]; ?><br>
  5. Sizning email: <?php echo $_POST["email"]; ?>
  6.  
  7. </body>
  8. </html>

*- nima boldi bu yerda? bu yerda avvalgi formda yozgan nomimiz va emailimiz $_POST orqali aniqlanib welcome.phpda chiqarildi.
Bu xuddi siz biror saytga kirganda login va parol yozsangiz, keyin "Assalom, User" kabiga oxshagan.
GET vs. POST
$_GET- bu massiv ozgaruvchilarini ushbu URLga yuborish uchun.
$_POST- bu esa massiv ozgaruvchilarini HTTP POST metodda jonatishga.
NIMA UCHUN GET?
GET- bu barchaga korinuvchi(visible to everyone) yani unda ozgaruvchilar malumotini jonatish limitlangan.U orqali 2000 ga yaqin harakterli malumot jonatish mumkin.
Eslatma: Get bu parol, login, email va boshqalarni jonatish uchun.
NIMA UCHUN POST?
POST- bu esa boshqalarga korinmaydi(invisible to others) yani unda cheklanmagan miqdorda malumot yuborish mumkin.
---------
PHP Form Validation.
Bu sizning saytingizni hacker va spamerlardan saqlash uchun.Unda standard quyidagicha:
Name- Faqat harflar va taqiqlanmagan simvollar mumkin.
E-mail- Faqat @(kuchukcha) dan iborat va email adres mumkin.Masalan: example@hello.ru
Website- Faqat togri yozilgan sayt mumkin.Masalan: www.hello.com yoki http://hello.com
Comment- Multi matn yozish, komment.Masalan ozi haqida, qiziqishi va hokazo.
Gender- Erkak yoki Ayolni tanlash.Bittasi tanlanadi.
Endi shu yuqoridagini HTML kodida koramiz:
  1. Name: <input type="text" name="name">
  2. E-mail: <input type="text" name="email">
  3. Website: <input type="text" name="website">
  4. Comment: <textarea name="comment" rows="5" cols="40"></textarea>
  5. <input type="radio" name="gender" value="female">Female
  6. <input type="radio" name="gender" value="male">Male

Endi bunga qarang:
  1. <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

*- $_SERVER["PHP_SELF"] qayerdan keldi deyapsizmi? Bu funksiya form malumotini kerakli sahifaga jonatishga kerak.
Unda htmlspecialchars nima? Bu HTML maxsus harakterlarini kerakli talqin qilish uchun.Yani unda "<" ni &lt ga ">" ni &gt ga almashtiradi.Bu esa XSSni oldini oladi.
Eslatma: Kopchilik hostinglar shu usulni qollaydi, unda ",'.!?+-*(){} kabilarni maxsus HTML harakterga almashtiradi.
PHP Required Fielda.
Bu toldirilishi shart bolgan va xato toldirilsa xato xabari chiqadigan qilish uchun.
Kelong kodni koramiz:
  1. <?php
  2. // massivlarni qoshish va ularni bosh qoldirish
  3. $nameErr = $emailErr = $genderErr = $websiteErr = "";
  4. $name = $email = $gender = $comment = $website = "";
  5.  
  6. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  7.   if (empty($_POST["name"])) {
  8.     $nameErr = "Nom yozing!";
  9.   } else {
  10.     $name = test_input($_POST["name"]);
  11.   }
  12.  
  13.   if (empty($_POST["email"])) {
  14.     $emailErr = "Email yozmading";
  15.   } else {
  16.     $email = test_input($_POST["email"]);
  17.   }
  18.  
  19.   if (empty($_POST["website"])) {
  20.     $website = "";
  21.   } else {
  22.     $website = test_input($_POST["website"]);
  23.   }
  24.  
  25.   if (empty($_POST["comment"])) {
  26.     $comment = "";
  27.   } else {
  28.     $comment = test_input($_POST["comment"]);
  29.   }
  30.  
  31.   if (empty($_POST["gender"])) {
  32.     $genderErr = "Jinsni tanlang!";
  33.   } else {
  34.     $gender = test_input($_POST["gender"]);
  35.   }
  36. }
  37. ?>

PHP Display the error messages.
Xato xabarini ekranda aks ettirish.
  1. <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
  2.  
  3. Name: <input type="text" name="name">
  4. <span class="error">* <?php echo $nameErr;?></span>
  5. <br><br>
  6. E-mail:
  7. <input type="text" name="email">
  8. <span class="error">* <?php echo $emailErr;?></span>
  9. <br><br>
  10. Website:
  11. <input type="text" name="website">
  12. <span class="error"><?php echo $websiteErr;?></span>
  13. <br><br>
  14. Comment: <textarea name="comment" rows="5" cols="40"></textarea>
  15. <br><br>
  16. Gender:
  17. <input type="radio" name="gender" value="female">Female
  18. <input type="radio" name="gender" value="male">Male
  19. <span class="error">* <?php echo $genderErr;?></span>
  20. <br><br>
  21. <input type="submit" name="submit" value="Submit">
  22.  
  23. </form>

PHP Name validation.
Bu orqali yozilgan ism togri ekanligini aniqlaymiz.
  1. $name = test_input($_POST["name"]);
  2. if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
  3.   $nameErr = "Faqat harflar va belgilangan simvollar mumkin!";
  4. }

*- nima boldi bu yerda? Bu yerda preg_match() orqali belgilangan harflarga ruhsat berdik.Agar belgilanganlari bolmasa ekranda xato chiqadi.
Всё я устал. До завтра!