HTML form - ஐ php file -க்கு submit செய்து form -ல் உள்ள value களை பெறலாம்.
ஒரு HTML form ற்கு இரண்டு attribute கள் தேவைப்படுகிறது. ஒன்று action ம் மற்றொன்று method ஆகும்.
<!doctype html>
<html>
<body>
<form action="datapage.php" method="post">
<input type="text" name="txtName">
<input type="submit">
</form>
</body>
</html>
எந்த page -க்கு அனுப்ப வேண்டும் என்பதை Action attribute -ல் குறிப்பிடலாம். Get / Post மூலம் form data க்களை பெறுவதற்கு method பயன்படுத்தப்படுகிறது.
Post method மூலமாக அனுப்பப்படும் data க்களை $_POST array மூலம் பெறப்படுகிறது. இவ்வகை data க்களை URL -ல் காண முடியாது.
<?php
//datapage.php
echo $_POST['txtName'];
?>
Get method மூலமாக அனுப்பப்படும் data க்களை $_GET array மூலம் பெறப்படுகிறது. இவ்வகை data க்களை URL (Address bar)-ல் காண முடியும்.
<!doctype html>
<html>
<body>
<form action="datapage.php" method="get">
<input type="text" name="txtName">
<input type="submit" name="btnSubmit">
</form>
<a href="datapage.php?frmName=sample">Form Data</a>
</body>
</html>
<?php
//datapage.php
echo $_GET['txtName'];
echo $_GET['frmName'];
?>
பெறப்படும் தகவல்கள் GET / POST எதுவாகினும் $_REQUEST என்ற array மூலம் பெறலாம்.
<?php
//datapage.php
echo $_REQUEST['frmName'];
?>
Form element -ன் பெயருக்கு பின்னால் Square braket கொடுப்பதன் மூலம் அவைகள் group array வாக கருதப்படும். இவைகள் பெரும்பாலும் textbox, select, textarea or checkbox களுக்கு பயன்படுத்தப்படும். Square braket -க்குள் பெயரும் வைத்து அனுப்பலாம்.
<!doctype html>
<html>
<body>
<form action="datapage.php" method="post">
<input type="text" name="txtName[]" placeholder="First Name" >
<input type="text" name="txtName[]" placeholder="Last Name" >
<input type="text" name="txtName[middle]" placeholder="Middle Name" >
<input type="submit" value="Submit">
</form>
</body>
</html>
<?php
//datapage.php
if(isset($_POST['txtName'])){
echo $_POST['txtName'][0];
echo "<br/>";
echo $_POST['txtName'][1];
echo "<br/>";
echo $_POST['txtName']['middle'];
}
?>
Form submition Post method -க்கு பதிலாக Get method - ல் கூட அனுபலாம்.
<!doctype html>
<html>
<body>
<form action="datapage.php" method="post">
<label for="chkDrinks">Coffee</label>
<input type="checkbox" name="txtDrinks[]" value="Coffee" >
<label for="chkDrinks">Tea</label>
<input type="checkbox" name="txtDrinks[]" value="Tea" >
<label for="chkDrinks">Cooldrinks</label>
<input type="checkbox" name="txtDrinks[]" value="Cooldrinks" >
<input type="submit" value="Submit">
</form>
</body>
</html>
Coffee மற்றும் Cooldrinks ஐ மட்டும் தேர்வு செய்திருந்தால் நாம் எப்படி அதன் value -க்களை பெறுவது?
<?php
//datapage.php
if(isset($_POST['txtDrinks'][0])){
echo $_POST['txtDrinks'][0];
}
if(isset($_POST['txtDrinks'][1])){
echo "<br/>";
echo $_POST['txtDrinks'][1];
}
if(isset($_POST['txtDrinks'][2])){
echo "<br/>";
echo $_POST['txtDrinks'][2];
}
?>
<!doctype html>
<html>
<body>
<form action="datapage.php" method="post">
<select name="optFruits[]" size="3" multiple="true">
<option value="Apple">Apple</option>
<option value="Bannana">Bannana</option>
<option value="Kiwi">Kiwi</option>
</select>
<input type="submit" value="Submit">
</form>
</body>
</html>
Select option -ல் ஒன்றுக்கு மேற்ப்பட்ட option -களை தேர்வு செய்திருந்தால் அதனை எப்படி பெறுவது?
GET method ல் ஒரு form அனுப்பப்படும்பொழுது ?optFruits[]=Apple&optFruits[]=Kiwi வடிவில் பெறப்படும்.
<?php
if(isset($_GET['optFruits'][0])){
echo $_GET['optFruits'][0];
}
echo "<br/>";
if(isset($_GET['optFruits'][1])){
echo $_GET['optFruits'][1];
}
?>
POST method ல் ஒரு form அனுப்பப்படும்பொழுது எப்படி பெறுவது?
<?php
if(isset($_POST['optFruits'][0])){
echo $_POST['optFruits'][1];
}
echo "<br/>";
if(isset($_POST['optFruits'][1])){
echo $_POST['optFruits'][1];
}
?>
Foreach Loop -ஐ கொண்டும் பெறலாம். பாடம் 7-ல் PHP Loop பற்றி படித்திருப்போம்
<?php
if(isset($_POST['optFruits'])){
foreach($_POST['optFruits'] as $fruits){
echo $fruits."<br/>";
}
}
?>
Output:
Apple
Kiwi
File upload செய்வதற்கு HTML form உதவுகிறது. Input type ல் file என்று கொடுப்பதன் மூலம் ஒரு file / image / video / mp3 போன்றவைகளை server -ல் upload செய்யலாம். Form ல் enctype என்ற attribute ல் multipart/form-data கொடுக்கப்பட வேண்டும்.
<!doctype html>
<html>
<body>
<form action="datapage.php" method="post" enctype="multipart/form-data" >
<label for="file_img">Upload Image</label>
<input type="file" name="file_img" id="file_img" >
<input type="submit" value="Submit">
</form>
</body>
</html>
$_FILES[] array -வில் அனைத்து information -களும் சேகரிக்கப்பட்டிருக்கும்.
$_FILES["file_img"]["name"] | Original name of uploaded file |
---|---|
$_FILES["file_img"]["tmp_name"] | Path to temporary server copy |
$_FILES["file_img"]["type"] | Mime type of the file |
$_FILES["file_img"]["size"] | File size in bytes |
$_FILES["file_img"]["error"] | Error code |
பெறப்படும் file-கள் அனைத்தும் தற்காலிகமாக சர்வர்களில் save ஆகியிருக்கும். script மூலமாக அவற்றை சர்வரில் save செய்யவில்லை என்றால் வேறொரு page செல்லும்போது அவை தானாக delete செய்யப்படும்.
<?php
if(isset($_FILES['file_img'])){
if(isset($_FILES['file_img']["error"]==0)){
echo $_FILES['file_img']["name"]."<br>";
echo $_FILES['file_img']["tmp_name"]."<br>";
echo $_FILES['file_img']["type"]."<br>";
echo $_FILES['file_img']["size"]."<br>";
echo $_FILES['file_img']["error"]."<br>";
move_uploaded_file($_FILES['file_img']["tmp_name"],'img/01/jpg');
}
}
?>
Output:
IMG-20210925-WA0012.jpg
E:\wamp\tmp\php74C4.tmp
image/jpeg
102901
0
move_uploaded_file function -ன் முதல் argument -ல் temp ல் உள்ள uploaded file path -ஐ குறிப்பிட்டு பின் இரண்டாவது argument -ல் என்ன பெயராக இருக்க வேண்டும் என்பதை குறிப்பிட வேண்டும். move_uploaded_file பயன்படுத்தபப்டுவதால் இரண்டாவதாக இதே path வைத்து மீண்டும் server ல் save செய்ய முடியாது.