Web Development from Georgia

AKe


PHP ლექცია

ავტორი (carbona) - ნახვები (641) - კატეგორია (გაკვეთილები - LESSONS)

ამ თემაში დაიდება ლექციები მხოლოდ ჩვენი საკუთარი დაწერილი რაიმე მიმართებაზე,ფუნქციებზე და ა.შ.
ვიმეორებ მხოლოდ ჩვენი დაწერილი!!!

განვაგრძობთ php-ს შესწავლას. მოგეხსენებათ ეს ენა დღესდღეობით ყველაზე გავრცელებული ენაა და ბევრი საიტი ზუსტად ამ ენაზეა დაწერილი. ამ საიტების გატეხვა ჩვენთვის შეუძლებელი იქნება php-ს ცოდნის გარეშე. ანუ იმისთქმა მინდა რომ ჩვენი მიზანია არა რაღაც ვიდეოების ყყრება password.txt-ს როგორ პოულობენ და იმ ჰეშს როგორ შიფრავენ არამედ php-ს სწავლა და ამ ჰეშის ალგორითმში ჩაწვდომა. მე ვთვლი ჩემ თავს ვალდებულებულად დავეხმარო ჩემ თანამემამულეებს ამ ენის შესწავლაში რომ შემეძლოს სხვა ბევრ რამესაც გასწავლიდით მაგრამ ჯერ მეც არ ვიცი კარგად ეს php ჰოდა დავდგეთ და ვისწავლოთ ერთად.(ოჰ რამდენი ლაპარაკი მიყვარს).

if, else და elseif მიმართებები.
მოდით ამ პოსტში ვისაუბროთ if, else და elseif მიმართებებზე.
მოვიყვანოთ მაგალითები რათა ჩავწვდეთ მათ არსს:
პროგრამული კოდი
PHP კოდი $ricxvi1=3;
$ricxvi2=2;
if($ricxvi1 > $ricxvi2) {
echo "ricxvi1 metia ricxvi2-ze";
}
?>
ესეიგი რა ხდება ეხლა: შემოვიტანეთ ორი ცვლადი $ricxvi1 $ricxvi2 და მათ მივეცით მნიშვნელობები პირველს 3 და მეორეს 2. აი ახლა კი მივედით if-თან მოკლედ ამ კოდით ვეუბნებით რომ თუ(if) $ricxvi1 მეტია $ricxvi2-ზე დაწერე ricxvi1 metia ricxvi2-ze. ესეიგი if-ის სინტაქსი იწერება ასე: if(და აქ ვწერთ რა შემთხვევაში უნდა მოხდეს მოქმედება) { აქ კი უკვე ვწერთ მოქმედებას რაც უნდა მოხდეს თუ წინა მდებარე ფრჩხილებში მოთავსებულ დებულება სწორი აღმოცნდება}. ასე რომ ჩვენ შემთხვევაში აცხადდა დებულება $ricxvi1 მეტი იყო $ricxvi2-ზე და შემდეგ {} ამ ფრჩხილებში მოთავსებული ბრძანებაც შესრულდა ანუ დაიბეჭდა ricxvi1 metia ricxvi2-ze, მაგრამ რა მოხდება მაშინ თუ პირველი რიცხვი არ იქნება მეორეზე მეტი? ამისთვის არსებობს else მიმართება ანუ თუ ესე არ მოხდა მაშინ(else) {მოხდა ესე}. შევხედოთ მაგალითს:
პროგრამული კოდი
PHP კოდი $ricxvi1=3;
$ricxvi2=2;
if($ricxvi1 > $ricxvi2) {
echo "ricxvi1 metia ricxvi2-ze";
} else {
echo "ricxvi1 ar aris meti ricxvi2-ze";
}
?>

ალბა მიხვდით else-ს მნიშვნელობასაც და ახლა გადავიდეთ elseif მიმართებზე. რით განსხვავდება elseif else-სგან. elseif მიმართებით შეგვიძლია შემოვიტანოთ ახალი გამოკითხვა ან დებულება. ანუ ლოგიკურად რო დავალაგოთ გამოდის ასე: თუ $1 მეტია $2-ზე დაწერე 1 ან თუ $1 ნაკლებია $2-ზე დაწერე 2. სადაც ან თუ არის elseif. იმედია ძაან ჩინურად არ გამომივიდა მოდით ახლა უფრო კონკრეტულად ვნახოთ მაგალითის მიხედვით:
პროგრამული კოდი
PHP კოდი $ricxvi1=3;
$ricxvi2=4;
if($ricxvi1 > $ricxvi2) {
echo "ricxvi1 metia ricxvi2-ze";
} elseif ($ricxvi1 < $ricxvi2) {
echo "ricxvi1 ar aris meti ricxvi2-ze";
}
?>ამ მაგალის თუ შეხედავთ დაინახავთ რომ elseif-ის საშუალებით შემოვიდა ახალი გამოკითხვა ($ricxvi1 < $ricxvi2). სწორედ ეს გამოკითხვის შემოტანა განასხვავებს elseif-ს else-სგან.

პროგრამული კოდი
switch (ცვლადი)
{
case მნიშვნელობა 1:
მოქმედება 1;
break;
case მნიშვნელობა 2:
მოქმედება 2;
break;
}

ეხლა აგიხსნით რა ხდება ესეიგი არის ცვლადი რომელიც უდრის მაგალითად 1-ს. შემდეგ switch(ცვლადი) ვუთითებთ ამ ცვლადს ასე და {} ამ ფრჩხილებში ვწერთ case 1 ანუ თუ ცვლადი უდრის 1-ს მერე echo "1"; ამის შემდეგ კი შევწყვიტავთ მოქმედებას break-ით. ეს არის if -ისნაირი მოქმედება დაახლებით ოღონდ უფრო მოსახერხებელი.

ცოტა ხანში სხვა მაგალითსაც დავდებ და უფრო გაგიიოლდებათ გაგება ...

აი დაპირებული მაგალითიც:
PHP კოდი $day = 4;
switch ($day)
{
case 1:
print("ორშაბათი");
break;
case 2:
print("სამშაბათი");
break;
case 3:
print("ოთხშაბადი");
break;
case 4:
print("ხუთშაბათი");
break;
case 5:
print("პარასკევი");
break;
case 6:
print("შაბათი");
break;
case 7:
print("კვირა");
break;
}
?>
აქ print-ის მაგივრად შეგიძლიათ echo-ც გამოიყენოთ. ალბათ მიხვდით დანარჩენს. ცვლადი არის $day და case კი არჩევს მნიშვნელობას თუ 1-ია ქენი ეს თუ 2 ეს და ა.შ. ჩვენ გვაქ განსაზღვრული $day მას მივეცით მნიშვნელობა 4 და case 4 ამუშავდება დაიბეჭდება ხუთშაბათი.

ეხლა მოკლედ აგიხსნით რაში გვჭირდება განარბენი. ვთქვათ ჩვენ გვსურს რომ 2 -ის 3 ხარისხი გავიგოთ მაშინ დავწერთ ასე: 2*2*2, მაგრამ თუ გვინდა რომ გავიგოთ 2-ის 100 ხარისხი მაშინ რას ვიზავთ? აი პრობლემა და აი პრობლემის გადაჭრის ხერხი განარბენი(for).
განახებთ for -ის სინტაქსს:
for (თავდაპირველი მნიშვნელობა, მიმართება, მთვლელი)
{ ბრძანება }
მაგალითი:
PHP კოდი $var = 1;
for ($mtvleli = 1; $mtvleli <= 3; $mtvleli++)
{
$var= $var * 3;
print("var = $var, mtvleli = $mtvleli
");
}
?>
ეხლა აგიხსნით აქ რა ხდება, ავიღეთ ცვლადი $var შემდეგ კი ამ ცვლადისთვის ვქმნით განარბენს for ($mtvleli=l; $mtvleli<=3; $mtvleli++) საწყის მნიშვნელობას ვაძლევთ 1-ს შემდეგ ვეუბნებით სანამ გახდება 3 მაშინ შეასრულოს შემდეგი მოქმედება $mtvleli++ ანუ გაიზარდოს ეს $mtvleli 1-ით. ანუ სამჯერ მიუმატოს 1. ხოლო შემდეგ ვწერთ ბრძანებას
{
$var= $var * 3;
print("var = $var, mtvleli = $mtvleli <BR>");
}
ესეიგი $var -ს ვამრავლებთ 3-მზე. და ეს მოქმედება ხდება სამჯერ($a<=3; $a=$a+l). ხოლო მერე იბეჭდება თვითონ $var და მთვლელი($mtvleli++) print("var = $var, mtvleli = $mtvleli <BR>");

ახლა კი დავუბრუნდეთ ორის ხარისხებს და წარმოგიდგენთ სკრიპტ რომელიც გვიჩვენებს 2-ის 100-ხარისხს (და ას ხარისხამდე ყველა ხარისხს):
PHP კოდი $ori=2;
for ($var=1; $var <= 100; $var++)
{
$ori=$ori*2;
echo "xarisxi $var :$ori
";
}
?>

ფუნქციები php-ში (function)
ამ ლექციაში ვისაუბროთ ფუნქციებზე და მათ დანიშნულებებზე.

რაში გვჭირდება ფუნქცია?
გვინდა დავწეროთ სკრიპტი რომელიც ორ რიცხვში გამოავლენს მაქსიმალურს. დავწერთ ასეთ კოდს:
PHP კოდიif ($number1>$number2) {
echo "$number1>$number2 <- max: $number1 <br>";
} else {
echo "$number1<$number2 <- max: $number2 <br>";

მაგრამ წარმოიდგინეთ რომ გვინდა გამოვავლინოთ 20 წყვილს შორის მაქსიმალური ეს კოდი უნდა გავიმეოროთ 20-ჯერ და უნდა შემოვითანოთ ახალი ცვლადები წარმოიდგინეთ რა მძიმე სამუშაოა ჩვენი სკრიპტი დაიტვირთება და ვეღარ იმუშავებს სწრაფად მოხერხებულად და აღარ იქნება მოკლე და ადვლად დასაწერი. ამიტომაც არსებობს ფუნქცია php-ში რომ დაგვეხმაროს მოკლედ დავწეროთ სკრიპტი და იმუშავოს მან სწრაფად და მოხერხებულად.

ფუნქციის სინტაქსი:
function სახელი(პარამეტრი1,პარამეტრი2 ...) {
ოპერატორი1;
ოპერატორი2;
}

ახლა შევხედოთ მაგალითს:
PHP კოდი function printmax($number1,$number2) {
if ($number1>$number2) {
echo "$number1>$number2 <- max: $number1
";
} else {
echo "$number1<$number2 <- max: $number2
";
}
}
$number1=4;
$number2=2;
printmax($number1,$number2);
printmax("50", "21");
printmax("50", "70");
?>

ესეიგი რა მოხდა, შემოვიტანეთ ფუნქია printmax და მივეცით მას პარამეტრები $number1,$number2; შემდეგ შემოგვაქ ოპერატორი if და else მაგის ახსნას არ დავიწყებ if-ზე და else-ზე უკვე ვისაუბრეთ ალბათ მიხვდებით მაგის შინაარსს(თუ ვერ მიხვდით იკითხეთ არ მოგერიდოთ). ხო ეს ფუნქცია უკვე ჩამოვაყალიბეთ. ახლა შემოგვაქ ცვლადები $number1=4; number2=2; და შეგვაქ ფუნქციაში: printmax($number1,$number2); ახლა ამუშავდება ფუნქცია და დაბეჭდავს უფრო დიდს ამ ცვლადებიდან რა თქმა უნდა ეს იქნება 4. printmax("50", "21"); printmax("50", "70"); აქ ჩავსვით $number1,$number2;-ამათ მაგივრათ ეს რიცხვები ამ ფუნქციას უკვე აღარ ჭირდება ახალი ცვლადით აღნიშვნა მას უკვე თავისით შეუძლია ამ რიცხვების ამოცნობა და მათგან უდიდესის(max) პოვნა.

ძირითადი ფუნქციები
php-ში გვაქვს ძალიან ბევრი ფუნქცია, რომელიც თქენ შეგიძლიათ გამოიყნოთ საკუთარი სცენარის დაწერით.

ფუნქცია substr
განვიხილოთ ფუნქცია substr. როცა რაიმე ტექსტიდან გვინდა ამოვჭრათ რაიმე ნაწილი ფუნქცია substr დაგვეხმარება ამაში. მას აქვს სამი პარამეტრი:
წინადადება, რომელიც უნდა მივიღოთ და ზემოქმედება
ნომერი სიმბოლოსი, რომლის შემდეგ მდებარე ტექსტიდან უნდა ამოვჭრათ სიმბოლოები
აქ უნდა მივუთითოთ იმ სიმბოლოთა რაოდენობა, რომელებიც მეორე პარამეტრში აღნიშნული სიმბოლოების შემდეგ მოდის, თუ მეორე პარამეტრი არის თავისუფალი მაშინ ამ პარამეტრში მითითებული რაოდენობა აითვლება პირველი სიმბოლოდან
ახლა კი შევხედოთ მაგალითს:
PHP კოდი // ex 1
$Sub_string = substr("PHP code", 4, 4);
print($Sub_string);
print("
");
// ex 2
$Sub_string = substr("PHP code", 4);
print($Sub_string);
print("
");
// ex 3
$Sub_string = substr("PHP code", 0, 3);
print($Sub_string);
?>
ბრაუზერში აისახება ასე:
code
code
PHP
პირველ მაგალითში არის ტექსტი PHP code ჩვენ ვეუბნებით რომ 4 სიმბოლოდან "PHP " აქდან გააგრძელოს 4 სიმბოლომდე და გვაჩვენოს ის 4 სიმბოლო ეს ოთხი სიმბოლო კი არის:code.
მეორე მაგალითში ვეუბნებით იგივეს მეორე პარამეტრში ანუ ოთხი სიმბოლოს შემდეგ გააგრძელოს ამოჭრა და შემდეგ აღარაფერს ვუთითებთ მაშინ php წერს ყველაფერს რაც მეოთხე სიმბოლოს შემდეგაა ამ შემთხვევაში ეს ყველაფერი არის ისევ: code.
მესამე შემთხვევაში კი მეორე პარამეტრში ვუთითებთ 0-ს ანუ php უნდა ამოჭრას პირველი ასოდან, მესამე პარამეტრში მივუთითეთ 3 ანუ php უნდა ამოჭრას საწყისი ტექსტიდან 3 სიმბოლო ანუ: PHP.
გაგრძელება იქნება.......

ფაილები
ბოლო დღეებში შელებმა გამიტაცეს. და მათი წერის დროს მივხვდი რომ ფაილებზე მუშაობა არის შელის ძირითადი პრინციპი. ჩვენ კი მოგეხსენებათ ჰაკერობის განხრით უფრო გვაინტერესებს php და მოდით შევისწავლოთ ფაილებზე მუშაობა შემდეგ კი პატარა შელებიც დავწეროთ .

კარგით მოდით დავიწყოთ ფაილებზე მუშაობას php კოდი ახერხებს მაშინ როცა ის არის სერვერზე(შელის ატვირთვაც ამიტომაა საჭირო).

ფაილის გახსნა
ამისთვის არსებობს ფუნქცია fopen() მისი სინტაქსია ასეთი: int fopen (string filename, string mode), fopen (ფაილის მისამართი, გახსნის თვისება). გახსნის თვისება გვაქვს ექვსგვარი, თუ არ გეწყინებათ ამ თვისებებს telavi.net-იდან გადმოვაკოპირებ მაინც ერთი და იგივეა

ფაილის თვისებები მათი აღწერა
r ფაილის წაკითხვა. მაჩვენებელი (ფაილის) ჯდება ფაილის დასაწყისში

r+ ფაილის წაკითხვა და მასში ჩაწერა. მაჩვენებელი ჯდება ფაილის დასაწყისში

w ფაილის წაკითხვა. თუ ფაილი სერვერზე არ არსებობს, მაშინ შექმნა მისი და წაკითხვა.
თუ არსებოს, მაშინ ახალი ჩანაწერი გადაეწერება ძველს. მაჩვენებელი ჯდება ფაილის დასაწყისში

w+ ფაილის წაკითხვა და მასში ჩაწერა. თუ ფაილი სერვერზე არ არსებობს, მაშინ შექმნა მისი და წაკითხვა. თუ არსებოს, მაშინ
ახალი ჩანაწერი გადაეწერება ძველს. მაჩვენებელი ჯდება ფაილის დასაწყისში
a ფაილში ჩაწერა. ახალი ჩანაწერი ფაილის ბოლოში წავა და იქ დაჯდება.
მაჩვენებელიც ბოლოში გადაინაცვლებს. თუ ფაილი არ არსებობს, მაშინ იგი ავტომატურად შეიქმნება

a+ ფაილში ჩაწერა და მისი წაკითხვა. ახალი ჩანაწერი ფაილის ბოლოში წავა და იქ დაჯდება. მაჩვენებელიც ბოლოში
გადაინაცვლებს. თუ ფაილი არ არსებობს, მაშინ იგი ავტომატურად შეიქმნება

მე რო პირველად წავიკითხე ვერ გავიგე რა იყო ეს მაჩვენებელი ) და თუ თქვენც ვერ გაიგეთ გეტყვით რომ ეს არის როგორც მაუსი იტოკში რო ბეჭდავ და ჯოხი რო დასდევს და რო ციმციმებს )

ეხლა მაპატიეთ მაგრამ უნდა წავიდე და ვეღარ ვასწრებ საღამოთი მოვალ და დავამთავრებ ამ ლქციას და მაგალითებსაც განახებთ და მერე შელები დავწეროთ

ხო ეხლა პატარა მაგალIთებს მოგიყვანთ:
$file = fopen("/home/rasmus/file.txt", "r");
$file = fopen("/home/rasmus/file.gif", "wb");
$file = fopen("http://www.example.com/", "r");
$file = fopen("ftp://user:password@example.com/somefile.txt", "w");
?>
ფაილები
თუ წინა ლექციაში fopen ფუნქციას და მის პარამეტრებს უკვე გაეცანით ახლა გადავიდეთ ფუნქცია fgets-ზე.

fgets
ამ ფუნქციის საშუალებით ჩვენ ვიღებთ ფაილის კონტენტს.
მისი სინტაქსია ასეთი: string fgets ( resource $handle [, int $length] ) სადაც უნდა მივუთითოთ რესურსი ანუ ფაილის მისამართი და lenght სიგრძე ანუ რამდენი სიმბოლოც გვინდა რომ წავიკითხოთ მითითებული ფაილიდან.
უფრო მოსახერხებლად რომ გამოვიყენოთ ეს ფუნქცია აუცილებელია გამოვიყენოთ ფაილის გახსნა და დაკეტვა fopen, fclose.
ახლა შევხედოთ მაგალითს:
PHP კოდი $handle = fopen("file.txt", "r");
if ($handle) {
while (!feof($handle)) {
$buffer = fgets($handle, 4096);
echo $buffer;
}
fclose($handle);
}
?>
ესეიგი გავხსენით ფაილი file.txt შემდეგ თუ გახსნა მოხერხდა სანამ დაიხურება ეს ფაილი მანამდეო $buffer = fgets($handle, 4096); ეს ცვლადი იღებს ამ ცვლადიდან $handle სადაც მითითებულია ფაილის მისამართი კონტენტს 4096 სიმბოლოს თუ 10 სიმბოლო იქნება მაშIნ 10 სიმბოლოს გვაჩვენებს.

მოგიყვანთ უფრო ადვილ მაგალითს:
PHP კოდი $handle = fopen("s.txt", "r");
$buffer = fgets($handle, 4096);
echo $buffer;
?>
ესე უბრო ადვილია მაგრამ ჯობია პირველი მაგალითის მიხედვით გავაკეთოთ.

ფაილები
ვაგრძელებთ ლექციებს კვლავ ფაილებზე, ჰაკერებისთვის ფაილების ფუნქციებს შორის ერთ-ერთი ყველაზე გამოყენებადია ფუნქცია unlink რა თქმა უნდა შელებისთვის.

unlink
ხო ეხლა მოგახსენებთ ამ ფუნქციის შინაარს, ეს არის ფაილის წაშლა ფტპ-დან. მისი სინტქსია ასეთი: unlink ( string $filename [, resource $context] ); ან ჩვენებურად რო დავწეროთ unlink ( "ფაილისმისამართი.პჰპ"); .

პატარა მაგალითი:
PHP კოდი $del= unlink("index.php");
if($del) echo "File Deleted";
else
echo "Delete ara chemi fexebi";
?>
ამას ახსნაც არ სჭირდება მაგარმ გეტყვით მაინც, ესეიგი ვეუბნებით რო წაშალოს ინდექს.პჰპ და თუ ეს მოქმედება შესრულდა $del მაშინ დაწეროს ფაილი წაიშალა თუ არადა ჩემი ფეხები )

ხო ისა ეს ლექცია ეძღვნება დიდი სიყვარულით Virus_C-ს(უკაზრავად ცოტა ნასვამი ვარ და თუ რაიმე გაუგებრად დავწერე შემეხმიანეთ) :wub:

copy
ამ ფუნქციის საშუალებით თქვენ აკოპირებთ ერთ ფაილს მეორეში თუ ფაილი არ არსებობს მაშინ ქმნის. მისი სინტქსია ასეთი: bool copy ( string $source, string $dest ).
მოვიყვანოთ მაგალითი:
PHP კოდი $file = 'shell.php';
$cfile = 'mshell.php';
$copyfile = copy($file,$cfile);
if($copyfile) echo "dakopirda"; else echo "ar dakopirda";
?>
ესეიგი მიხვდით ალბათ აქ რაც ხდება მივუთითეთ $file, $cfile-ს სახელები რომელიც გვინდა რო დაკოპირდეს და მეორე სად გვინდა რო დაკოპირდეს ხოლო შემდეგ თვითOნ $copyfile რომელიც ეუბნება რომ დააკოპიროს ცვლადების მიხედვით ბოლოს კი თუ ეს მოქმედება შესრულდა დაწეროს დაკოპირადა თუ არ შესრულდა დაწეროს არ დაკოპირდა.

აქვე გეტყვით ფუნქცია rename-ზეც.

rename
ესეიგი ეს ფუნქცია გაძლევთ საშუალებას შეუცვალოთ ფაილს სახელი, მისი სინტქსი: bool rename ( string $oldname, string $newname [, resource $context] ), პატარა მაგალითი:
PHP კოდი rename("mshell.php","shell1.php");
?>
ეგ არის ერქვა mshel.php ეხლა ქვია shell1.php ძალია იოლია

ლინკის სანახავად გთხოვთ გაიაროთ [ რეგისტრაცია ] ან [ ავტორიზაცია ]
HTML Code
BB Code
მისამართი

0 Comments

Add Comment