படிவங்கள் மற்றும் கோப்புகள்: ஒரு மதிப்பெண் வினாக்கள், புத்தக வினா விடைகள் மற்றும் குறிப்புகள்
ஒரு HTML படிவம் பயனரிடமிருந்து தரவை எப்படிச் சேகரிக்கிறது, சேவையகத்தில் உள்ள PHP ஸ்கிரிப்ட் அதை எப்படிப் பெற்றுச் சரிபார்க்கிறது என்பதை இந்தப் பாடம் காட்டுகிறது. GET, POST முறைகள், வாடிக்கையாளர் பக்கச் சரிபார்ப்பு, சேவையகப் பக்கச் சரிபார்ப்பு, கோப்புகளைக் கையாளப் பயன்படும் fopen, fread, fwrite, fclose ஆகிய PHP செயற்கூறுகள் இதில் உள்ளன.
இந்தப் பாடத்தைப் படியுங்கள்
முந்தைய பொதுத் தேர்வுகளில் கேட்கப்பட்டவை
இந்தப் பாடத்திலிருந்து 2 வினாக்கள் 2 முந்தைய பொதுத் தேர்வுகளில் கேட்கப்பட்டன. விடையையும் விளக்கத்தையும் காண எந்த வினாவையும் திறக்கவும்.
-
மார்ச் 2026
எந்த படிவக் கட்டுப்பாடு பயனரை பல மதிப்புகளைத் தேர்ந்தெடுக்க அனுமதிக்கிறது?விடையுடன் வினாத்தாளில் பார் →
-
மார்ச் 2023
எந்த உள்ளீட்டு புலத்தில் ஒரேயொரு தேர்வை மட்டுமே தேர்ந்தெடுக்க முடியும் ?விடையுடன் வினாத்தாளில் பார் →
படிவங்கள் மற்றும் கோப்புகள் பற்றி
நடுத்தரம் ~90 நிமிடப் படிப்பு
நிலையான பக்கம் தகவலைக் காட்ட மட்டுமே முடியும். பெயர், மின்னஞ்சல் முகவரி, பாடப்பிரிவுத் தேர்வு போல பயனரிடமிருந்து ஏதாவது தேவைப்பட்டவுடன், பக்கத்துக்கு ஒரு படிவம் (form) தேவை. உரைப்பெட்டிகள், தேர்வுப் பெட்டிகள் (checkboxes), ரேடியோ பொத்தான்கள், சமர்ப்பிப்புப் பொத்தான்கள் எல்லாமே படிவக் கட்டுப்பாடுகள். அந்தத் தரவு உலாவியிலிருந்து சேவையகத்துக்குச் செல்லும் வழியை இந்தப் பாடம் பின்தொடர்கிறது.
நீங்கள் ஏற்கெனவே பார்த்த இரண்டை இந்தப் பாடம் இணைக்கிறது: பக்கத்தை உருவாக்க HTML, சேவையகப் பக்கத்துக்கு PHP. பயனர் submit சொடுக்கும்போது, படிவத்தில் குறிப்பிடப்பட்ட முறையில், GET அல்லது POST, உலாவி படிவத் தரவை அனுப்புகிறது. PHP அந்த மதிப்புகளை $_GET அல்லது $_POST-இலிருந்து எடுத்து, அவை சரியானவையா என்று சரிபார்க்கிறது. பிறகு அவற்றைச் சேமிக்கலாம், அல்லது சேவையகத்தில் உள்ள ஒரு கோப்பிலிருந்து வேறு தரவைப் படிக்கலாம்.
இந்தப் பாடத்தின் தேர்வு வினாக்கள் பொதுவாக GET, POST இடையிலான வேறுபாடு, வாடிக்கையாளர் பக்க மற்றும் சேவையகப் பக்கச் சரிபார்ப்பின் பொருள், fopen(), fread(), fwrite(), fclose() ஆகியவற்றின் பயனும் தொடரியலும் பற்றிக் கேட்கின்றன. புத்தக ஒரு மதிப்பெண் வினாக்கள் பெரும்பாலும் திறந்த கோப்பை மூடுவது போன்ற ஒரு வேலையைக் கொடுத்து, அதை எந்தச் செயற்கூறு செய்கிறது என்று கேட்கின்றன. அதனால் ஒவ்வொரு செயற்கூறையும் அது செய்யும் வேலையுடன் சேர்த்தே படியுங்கள்.
நீங்கள் கற்பவை
- உரை உள்ளீடுகள், ரேடியோ பொத்தான்கள், தேர்வுப் பெட்டிகள், கீழிறங்கு பட்டியல்கள், submit பொத்தான் கொண்டு ஒரு HTML படிவத்தை உருவாக்குதல்.
- GET, POST முறைகளுக்கு இடையிலான வேறுபாடுகளைக் கூறி, ஒரு படிவத்துக்குச் சரியானதைத் தேர்வு செய்தல்.
- required போன்ற பண்புகளைப் பயன்படுத்திப் படிவப் புலங்களுக்கு வாடிக்கையாளர் பக்கச் சரிபார்ப்பைச் சேர்த்தல்.
- சமர்ப்பிக்கப்பட்ட மதிப்புகளைப் பயன்படுத்துவதற்கு முன் சேவையகத்தில் சரிபார்க்கும் PHP குறிமுறை எழுதுதல்.
- $_GET, $_POST என்ற superglobal-களைப் பயன்படுத்தி, சமர்ப்பிக்கப்பட்ட படிவத் தரவை PHP-இல் படித்தல்.
- fopen, fread, fwrite, fclose பயன்படுத்திச் சேவையகத்தில் ஒரு கோப்பைத் திறத்தல், படித்தல், எழுதுதல், மூடுதல்.
தொடங்குவதற்கு முன்
- HTML ஒட்டுகளும் ஒரு படிவத்தின் அடிப்படை அமைப்பும்.
- அடிப்படை PHP தொடரியலும் மாறிகளும்.
- வாடிக்கையாளர் (client), சேவையகம் (server) என்ற கருத்தும், HTTP கோரிக்கை என்றால் என்ன என்பதும்.
இந்த அத்தியாயத்தில் உள்ள தலைப்புகள்
படிவங்கள் மற்றும் கோப்புகள் — விரிவான விளக்கம்
PHP-இல் வலைப் படிவங்களும் கோப்புக் கையாளுதலும்
HTML படிவங்கள் மூலம் உள்ளீடு சேகரித்தல்
படிவம் <form> ஒட்டுக்குள் எழுதப்படுகிறது. பயனர் நிரப்பும் கட்டுப்பாடுகள் அதற்குள் இருக்கின்றன. பொதுவான கட்டுப்பாடுகள்: ஒற்றை வரி உரை உள்ளீடு, பல வரி உரைப்பகுதி (text area), தேர்வுப் பெட்டிகள் (பயனர் ஒன்றுக்கு மேற்பட்டவற்றைத் தேர்வு செய்யலாம்), ரேடியோ பொத்தான்கள் (ஒரு குழுவில் ஒன்றை மட்டுமே தேர்வு செய்யலாம்), select கொண்டு உருவாக்கப்படும் கீழிறங்கு பட்டியல், கோப்பு பதிவேற்றக் கட்டுப்பாடு, submit பொத்தான். submit செய்யும்போது என்ன நடக்கிறது என்பதை form ஒட்டின் இரண்டு பண்புகள் முடிவு செய்கின்றன: தரவைப் பெறும் PHP கோப்பை action குறிப்பிடுகிறது; தரவு GET மூலமா POST மூலமா அனுப்பப்படுகிறது என்பதை method சொல்கிறது. ஒவ்வொரு கேள்விக்கும் சரியான கட்டுப்பாட்டைத் தேர்வு செய்தால், எடுத்துக்காட்டாகப் பாலினத்துக்கு ரேடியோ பொத்தான்கள், பொழுதுபோக்குகளுக்குத் தேர்வுப் பெட்டிகள், சேகரிக்கும் தரவு ஒழுங்காக இருக்கும்.
தரவை அனுப்புதல்: GET மற்றும் POST
GET முறையில், படிவ மதிப்புகள் URL-இன் இறுதியில் ஒரு வினவல் சரமாக (query string) சேர்க்கப்படுகின்றன; result.php?name=Kavi&roll=12 போல. முகவரிப் பட்டையில் யார் வேண்டுமானாலும் அவற்றைப் பார்க்கலாம். பக்கத்தைப் புத்தகக்குறியிடலாம் (bookmark). அனுப்பக்கூடிய தரவின் அளவு URL நீளத்தால் கட்டுப்படுகிறது. தேடல் பெட்டிகள் போன்ற தீங்கில்லாத கோரிக்கைகளுக்கு இது பொருந்தும். POST முறையில், மதிப்புகள் HTTP கோரிக்கையின் உடற்பகுதிக்குள் செல்கின்றன. அதனால் அவை URL-இல் தெரியாது; அதிக அளவு தரவையும் அனுப்பலாம். கடவுச்சொற்கள், உள்நுழைவுப் படிவங்களுக்கு POST பயன்படுத்துங்கள். POST தரவை முகவரிப் பட்டையிலிருந்து மறைக்கிறது, அவ்வளவுதான்; அது மறையாக்கம் (encryption) அல்ல என்பதை நினைவில் வையுங்கள். சேவையகத்தில், பெற்ற மதிப்புகளை PHP $_GET, $_POST என்ற superglobal அணிகளில் சேமிக்கிறது. அதனால் POST மூலம் அனுப்பப்பட்ட email என்ற புலம் $_POST["email"] என்று படிக்கப்படுகிறது.
வாடிக்கையாளர் பக்க மற்றும் சேவையகப் பக்கச் சரிபார்ப்பு
சரிபார்ப்பு (validation) என்றால், சமர்ப்பிக்கப்பட்ட தரவைப் பயன்படுத்துவதற்கு முன் விதிகளுடன் ஒப்பிட்டுப் பார்ப்பது. பாடநூல் தரும் விதிகள்: பெயரில் எழுத்துகளும் இடைவெளிகளும் மட்டுமே இருக்க வேண்டும்; மின்னஞ்சலில் @ குறியும் ஒரு புள்ளியும் இருக்க வேண்டும்; வலைத்தளப் புலத்தில் சரியான URL இருக்க வேண்டும்; ரேடியோ பொத்தான்கள், தேர்வுப் பெட்டிகள் அல்லது கீழிறங்கு பட்டியலில் குறைந்தது ஒரு விருப்பம் தேர்வு செய்யப்பட வேண்டும். வாடிக்கையாளர் பக்கச் சரிபார்ப்பு (client-side validation) படிவம் அனுப்பப்படுவதற்கு முன் உலாவியில் நடக்கிறது. required போன்ற HTML பண்புகள் அல்லது JavaScript இதற்குப் பயன்படுகின்றன; பயனருக்கு உடனே பின்னூட்டம் கிடைக்கிறது. சேவையகப் பக்கச் சரிபார்ப்பு (server-side validation) தரவு வந்து சேர்ந்த பிறகு PHP ஸ்கிரிப்டில் நடக்கிறது. உலாவிச் சரிபார்ப்பை அணைக்கலாம் அல்லது தவிர்க்கலாம்; அதனால் சேவையகச் சரிபார்ப்பை எப்போதும் செய்ய வேண்டும். இரண்டையும் பயன்படுத்தினால் பயனருக்கு விரைவான பின்னூட்டமும் சேவையகத்துக்குப் பாதுகாப்பான தரவும் கிடைக்கின்றன.
PHP-இல் கோப்புகளுடன் வேலை செய்தல்
PHP சேவையகத்தில் உள்ள கோப்புகளில் தரவைச் சேமித்து, திரும்பப் படிக்க முடியும். fopen() ஒரு கோப்பைத் திறக்கிறது. அது இரண்டு செயலுருபுகளை ஏற்கிறது: கோப்பின் பெயர், முறைமை (mode). படிக்க "r", எழுத "w" போன்றவை முறைமைகள். எடுத்துக்காட்டு: $myfile = fopen("student.txt", "r") or die("Unable to open file!");. அது ஒரு கோப்புச் சுட்டியை (file pointer, handle) திருப்பித் தருகிறது; மற்ற செயற்கூறுகள் அதைப் பயன்படுத்துகின்றன. கோப்பைத் திறக்க முடியாவிட்டால் false தருகிறது. fread($myfile, filesize("student.txt")) கொடுக்கப்பட்ட பைட்டுகள் அளவுக்குக் கோப்பைப் படிக்கிறது. fwrite($myfile, $txt) கோப்பில் உரையை எழுதுகிறது. வேலை முடிந்ததும், fclose($myfile) கோப்பை மூடி, அதற்காக வைத்திருந்த வளங்களை விடுவிக்கிறது. பதிவுகளை (logs) வைத்திருக்க, படிவ உள்ளீடுகளைச் சேமிக்க, அறிக்கைகளைச் சேமிக்க சேவையகங்கள் இந்தச் செயற்கூறுகளைப் பயன்படுத்துகின்றன.
தவிர்க்க வேண்டிய பொதுவான தவறுகள்
- GET முறையில் கடவுச்சொல்லை அனுப்புவது. அப்போது கடவுச்சொல் URL-இலும் உலாவி வரலாற்றிலும் தெரியும். இப்படிப்பட்ட படிவங்களுக்கு POST பயன்படுத்துங்கள்.
- உலாவிச் சரிபார்ப்பை மட்டுமே நம்புவது. பயனர் JavaScript-ஐ அணைக்கலாம், அல்லது நேரடியாகக் கோரிக்கையை அனுப்பலாம். அதனால் PHP ஸ்கிரிப்ட் சேவையகத்தில் தரவை மீண்டும் சரிபார்க்க வேண்டும்.
- திறக்கப்படாத ஒரு கோப்பின் மீது fread() அல்லது fwrite() அழைப்பது. முதலில் சரியான முறைமையுடன் fopen() மூலம் கோப்புப் பொருளைப் பெற்று, அதை மற்ற செயற்கூறுகளுக்கு அனுப்புங்கள்.
- படிக்கவோ சேர்க்கவோ வேண்டிய கோப்பை "w" முறைமையில் திறப்பது. எழுதுவதற்கு முன் write முறைமை ஏற்கெனவே உள்ள கோப்பைக் காலி செய்துவிடும்; பழைய உள்ளடக்கம் இழக்கப்படும்.
- கோப்புடன் வேலை முடிந்த பிறகு fclose() அழைக்காமல் விடுவது. ஸ்கிரிப்ட் முடியும் வரை கோப்பு திறந்தே இருந்து சேவையக வளங்களைப் பிடித்து வைத்திருக்கும்.
இவற்றை பயிற்சித் தேர்வு மூலம் சோதித்துப் பாருங்கள்; பிறகு விடையுடன் கூடிய வினாக்கள் பகுதியில் விரிவான விளக்கத்தைப் படியுங்கள்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
PHP-இல் GET-க்கும் POST-க்கும் உள்ள வேறுபாடு என்ன?
GET படிவத் தரவை URL-இல் வினவல் சரமாகச் சேர்க்கிறது. அதனால் அது கண்ணுக்குத் தெரியும், புத்தகக்குறியிடலாம், அளவு கட்டுப்பட்டது. POST தரவைக் கோரிக்கையின் உடற்பகுதியில் அனுப்புகிறது. அதனால் அது URL-இல் தெரியாது; அதிகத் தரவைக் கொண்டு செல்லலாம். கடவுச்சொற்களுக்கு POST, தேடல்களுக்கு GET பயன்படுத்துங்கள். PHP அவற்றை $_GET, $_POST-இலிருந்து படிக்கிறது.
சேவையகப் பக்கச் சரிபார்ப்பு ஏன் அவசியம்?
வாடிக்கையாளர் பக்கச் சரிபார்ப்புகள் பயனரின் உலாவியில் இயங்குகின்றன. பயனர் ஸ்கிரிப்டுகளை அணைக்கலாம், அல்லது படிவத்தையே பயன்படுத்தாமல் கோரிக்கையை அனுப்பலாம். PHP-இல் செய்யப்படும் சேவையகப் பக்கச் சரிபார்ப்பு, சேவையகத்தை அடைந்த பிறகு ஒவ்வொரு மதிப்பையும் சரிபார்க்கிறது. அதனால் விதிகளுக்கு உட்பட்ட தரவுடன் மட்டுமே ஸ்கிரிப்ட் வேலை செய்கிறது.
PHP-இல் ஒரு கோப்பைத் திறந்து எப்படிப் படிப்பது?
கோப்பின் பெயரையும், படிப்பதற்கான "r" முறைமையையும் கொடுத்து fopen() மூலம் திறங்கள். இது ஒரு கோப்புப் பொருளைத் திருப்பித் தருகிறது. அந்தப் பொருளையும், படிக்க வேண்டிய பைட்டுகளின் எண்ணிக்கையையும் (பொதுவாகக் கோப்பின் filesize()) fread()-க்கு அனுப்புங்கள். கடைசியில் fclose() மூலம் கோப்பை மூடுங்கள்.
HTML படிவத்தில் action பண்பு என்ன செய்கிறது?
படிவத் தரவைப் பெறும் கோப்பை, பொதுவாக ஒரு PHP ஸ்கிரிப்டை, action குறிப்பிடுகிறது. பயனர் submit சொடுக்கும்போது, method பண்பில் கொடுக்கப்பட்ட முறையைப் பயன்படுத்தி, உலாவி எல்லாப் படிவ மதிப்புகளையும் அந்தக் கோப்புக்கு அனுப்புகிறது.
படிவத்தில் கட்டாயப் புலங்களை எப்படிச் சரிபார்ப்பது?
உலாவியில், input ஒட்டில் required பண்பைச் சேருங்கள். அப்போது அந்தப் புலம் காலியாக இருக்கும் வரை படிவத்தைச் சமர்ப்பிக்க முடியாது. சேவையகத்தில், $_POST அல்லது $_GET-இல் உள்ள மதிப்பைப் பயன்படுத்துவதற்கு முன் அது காலியாக இல்லை என்று PHP-இல் ஒரு if கூற்று மூலம் சரிபாருங்கள்.
PHP-இல் கோப்பை மூட மறந்தால் என்ன நடக்கும்?
கோப்பு திறந்தே இருந்து சேவையக வளங்களைப் பயன்படுத்திக்கொண்டிருக்கும். ஸ்கிரிப்ட் முடியும்போது PHP திறந்த கோப்புகளை மூடுகிறது. ஆனால் நீண்ட நேரம் இயங்கும் ஸ்கிரிப்ட் அல்லது பல திறந்த கோப்புகள் சிக்கல்களை உண்டாக்கலாம்; அதே கோப்பில் எழுத மற்ற ஸ்கிரிப்டுகளுக்குச் சிரமம் ஏற்படலாம். வேலை முடிந்தவுடன் fclose() அழைப்பது நல்ல பழக்கம்.
கடைசியாகப் புதுப்பிக்கப்பட்டது 17 செப்டெம்பர் 2026