⊗ppPmFmChcN 307 of 447 menu

ჩეკბოქსების გამოყენების ნიუანსები PHP-ში

დავუშვათ, ჩვენს ფორმაში არის მხოლოდ ჩეკბოქსი:

<form action="" method="GET"> <input type="checkbox" name="flag"> <input type="submit"> </form>

დავუშვათ, ჩვენი ფორმის დამუშავების კოდი ასე გამოიყურება:

<?php if (!empty($_GET)) { // თუ ფორმა გაიგზავნა if (isset($_GET['flag'])) { // თუ ჩეკბოქსი მონიშნულია echo 'მონიშნულია'; } else { echo 'არ არის მონიშნული'; } } ?>

ჩვენ პრობლემა გველის - თუ ჩეკბოქსი არ არის მონიშნული, მაშინ, რადგან ფორმაში ჩეკბოქსის გარდა სხვა ელემენტები არ არის, $_GET-ში იქნება ცარიელი მასივი. ეს ნიშნავს, რომ ფორმის დამუშავების კოდში ჩვენ ვერ მოვახდენთ პირველ if-ში შესვლას, რომელიც ამოწმებს ფორმის გაგზავნას.

პრობლემის გადასაჭრელად იყენებენ სპეციალურ მიღებას: ქმნიან ფარულ ინპუტს იგივე სახელით, როგორც ჩვენი ჩეკბოქსის. ამ შემთხვევაში ფარული ინპუტის მნიშვნელობას აყენებენ ნულს, ხოლო ჩეკბოქსის - ერთს:

<form action="" method="GET"> <input type="hidden" name="flag" value="0"> <input type="checkbox" name="flag" value="1"> <input type="submit"> </form>

ამ შემთხვევაში მოხდება შემდეგი. თუ ჩეკბოქსი არ არის მონიშნული, მაშინ სერვერზე მხოლოდ ფარული ინპუტის მნიშვნელობა გაიგზავნება. თუ კი ჩეკბოქსი მონიშნულია, მაშინ სერვერზე გაიგზავნება ორივე მნიშვნელობა ერთი სახელით. მაგრამ, რადგან ჩეკბოქსის მნიშვნელობა იქნება მეორე, ის უბრალოდ გადაფარებს პირველს.

მოკლედ, ახლა ჩვენი ჩეკბოქსი სერვერზე გაგზავნის ან ნულს, ან ერთს:

<?php var_dump($_GET['flag']); // '0' ან '1' ?>

გამოვიყენოთ ეს ჩვენს შემოწმებაში:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'მონიშნულია'; } else { echo 'არ არის მონიშნული'; } } ?>

ჩეკბოქსის საშუალებით ჰკითხეთ მომხმარებელს, არის თუ არა მას უკვე 18 წელი. თუ არის, მიუცეთ მას წვდომა საიტზე, ხოლო თუ არა - არ მიუცეთ.

ქართული
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語Қазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
ვებსაიტის მუშაობის, ანალიტიკისა და პერსონალიზაციისთვის ვიყენებთ ქუქი-ფაილებს. მონაცემთა დამუშავება ხდება Კონფიდენციალურობის პოლიტიკის შესაბამისად.
ყველას მიღება პარამეტრები უარყოფა