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!)
<?php
function writeMsg() {
echo "Salom, Dunyo!";
}
writeMsg(); // funksiyaga murojaat
?>
*- 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.
<?php
function familyName($fname) {
echo "$fname Refsnes.<br>";
}
familyName("Jani");
familyName("Hege");
familyName("Stale");
familyName("Kai Jim");
familyName("Borge");
?>
*- 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.
<?php
function setHeight($minheight = 50) {
echo "The height is : $minheight <br>";
}
setHeight(350);
setHeight(); // xohlasangiz 50 qiling
setHeight(135);
setHeight(80);
?>
*- bu yerda setHeight() orqali argumentlarni aniqladik, u minimal 50 boldi.
Php Functions-Returning values.
Bu orqali siz kerakli shartga qaytasiz.
<?php
function sum($x, $y) {
$z = $x + $y;
return $z;
}
echo "5 + 10 = " . sum(5, 10) . "<br>";
echo "7 + 13 = " . sum(7, 13) . "<br>";
echo "2 + 4 = " . sum(2, 4);
?>
*- 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.
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Nomi: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// inputdagi malumotlarni jamlash
$name = $_REQUEST['fname'];
echo "Nomi bosh bolmasligi kerak";
} else {
echo $name;
}
}
?>
*- 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.
<html>
<body>
<a href="test_get.php?subject=PHP&web=sever.ru">Test $GET</a>
</body>
</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
<html>
<body>
<form action="welcome.php" method="post">
Nomi: <input type="text" name="name"><br>
E
-mail: <input type
="text" name
="email"><br
><input type="submit">
</form>
</body>
</html>
*- yani bu yerda forma toldirilib submit bosilgach u welcome.phpga HTTP POST metod jonatadi.
WELCOME.PHP
<html>
<body>
Salom <?php echo $_POST["name"]; ?><br>
Sizning email: <?php echo $_POST["email"]; ?>
</body>
</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:
Name: <input type="text" name="name">
E
-mail: <input type
="text" name
="email">Website: <input type="text" name="website">
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
Endi bunga qarang:
<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 < ga ">" ni > 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:
<?php
// massivlarni qoshish va ularni bosh qoldirish
$nameErr = $emailErr = $genderErr = $websiteErr = "";
$name = $email = $gender = $comment = $website = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) { $nameErr = "Nom yozing!";
} else {
$name = test_input($_POST["name"]);
}
if (empty($_POST["email"])) { $emailErr = "Email yozmading";
} else {
$email = test_input($_POST["email"]);
}
if (empty($_POST["website"])) { $website = "";
} else {
$website = test_input($_POST["website"]);
}
if (empty($_POST["comment"])) { $comment = "";
} else {
$comment = test_input($_POST["comment"]);
}
if (empty($_POST["gender"])) { $genderErr = "Jinsni tanlang!";
} else {
$gender = test_input($_POST["gender"]);
}
}
?>
PHP Display the error messages.
Xato xabarini ekranda aks ettirish.
<form method="post" action="
<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<span class="error">* <?php echo $nameErr;?></span>
<br><br>
E-mail:
<input type="text" name="email">
<span class="error">* <?php echo $emailErr;?></span>
<br><br>
Website:
<input type="text" name="website">
<span class="error"><?php echo $websiteErr;?></span>
<br><br>
Comment: <textarea name="comment" rows="5" cols="40"></textarea>
<br><br>
Gender:
<input type="radio" name="gender" value="female">Female
<input type="radio" name="gender" value="male">Male
<span class="error">* <?php echo $genderErr;?></span>
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
PHP Name validation.
Bu orqali yozilgan ism togri ekanligini aniqlaymiz.
$name = test_input($_POST["name"]);
$nameErr = "Faqat harflar va belgilangan simvollar mumkin!";
}
*- nima boldi bu yerda? Bu yerda preg_match() orqali belgilangan harflarga ruhsat berdik.Agar belgilanganlari bolmasa ekranda xato chiqadi.
Всё я устал. До завтра!