Wednesday, June 3, 2015

Lesson 20

ඉතින් ඔන්න යාලුවනේ අදත් මම ඔයාලට තවත් අලුත් php පාඩමක් අරගෙන අවා අදත් අද මම ඔයාලට කියල දෙන්න යන්නේ php වලින් කොහොමද form එකක් validate කරන්නේ කියල මේක ඉතාමත් සරල උදාහරණයකින් තමයි මම ඔයාලට කියල දෙන්න යන්නේ ඒ උනාට ඉතින් අපිට මේකෙදි ගොඩක් වැදගත් වෙන දේවල් ටිකක් ඉගෙනගන්න තියනවා. 
එහෙනම් ඉතින් අපි බලමුකෝ කොහොමද අපේ මේ form එක validate කරන්නේ කියලා
 
ඉස්සල්ලම කරන්න ඕනේ ඔයාලට කැමති නමකින් php file එකක් හදාගන්නකෝ මම නම් හැදුවේ FormValidation.php කියන name එකෙන් ඔයාලට කැමති නමක් දාලහදාගන්නකෝ එහෙනම්,
 

ඊටපස්සේ කරන්න ඕනේ අපේ form එකේ අපි හදාගන්න variable ටික දාගන්න එකයි. මම මුලින් ම කියල දෙන්නම් කොහොමද validation part එක කරන්නේ කියල web page එක ඉතින් අපි කලින් පාඩමේදී කරානේ කොහොමද හදාගන්නේ කියලා ඒ වගේම එකක් තමයි හදන්නේ එකත් මම කියල දෙන්නම්කෝ ඉස්සල්ල මේක කරලා බලමු.
 
මම මේ form එකේ දාල තියනවා first name, last name, email, gender, website, comment ඔන්න ඔය ටික තමයි මම දැම්මේ ඊටපස්සේ මේවගේ value  එක null කරන්න ඕනේ බලාගන්නකෝ එහෙනම් variable define කරලා values null කරන්නේ මෙන්න මෙහෙමයි.

$fname = $lname = $email = $gender = $comment = $website = "";
වැඩේ තෙරුනනේ එහෙනම් බයවෙන්නෙපා මම ඔයාලට එක part එකෙන් part එක කියලදීල ඉවර වෙලා මුළු code එකම දෙන්නම් :) 
 

ඊටපස්සේ අපි කරන්න ඕනේ අපි data pass කරන method එක GET ද එහෙමත් නැත්තම් POST ද කියල තීරණය කරලා ඒ විදියට data ටික pass කරන එකයි. මතකයි නේ මම කලින් පාඩමේදී ඔයාලට GET, POST දෙකේ වෙනස හොදට පැහැදිලි කරලා දුන්නා. 

මම මෙතැනදී use කරන්නේ POST method එක ඔයාලට මේක කරලා ඉවර උනහම පුළුවන් මේක GET method එකෙනුත් කරලා බලන්න.

ඔයාලට මතකයි නේ අපි superglobals කරා අපිට ඒවා මෙතැනදී ඕනේ වෙනවා method එක සෙට් කරන්න
බලන්නකෝ එහෙනම් කොහොමද මම එක කරලා තියෙන්නේ කියල




if ($_SERVER ["REQUEST_METHOD"] == "POST") {
    
    $fname = test_input ( $_POST ["fname"] );
    
    $lname = test_input ( $_POST ["lname"] );
    
    $gender = test_input ( $_POST ["gender"] );
    
    $email = test_input ( $_POST ["email"] );
    
    $website = test_input ( $_POST ["website"] );
    
    $comment = test_input ( $_POST ["comment"] );
    
}



බලන්න අපි මෙතන request method එක post method එක use කරලා එකට අපේ variable values සෙට් කරගෙන තියනවා. මෙතන මේ test_input කියන එක ගැන හිතන්නෙපා එක function එකක් මම පහල දාල තියනවා බලාගන්නකෝ එහෙනම්,



function test_input($data) {
    
    $data = trim ( $data );
    
    $data = stripslashes ( $data );
    
    $data = htmlspecialchars ( $data );
    
    return $data;
    
}


මෙතන trim, stripslashes, htmlspecialchars  කියල කියන්නේ තවත් functions  3ක් මේවා php වල තියන functions 

ඔයාලට වැඩි විස්තර php manual එකෙන් බලාගන්න පුළුවන් උදාහරණයක් විදියට stripslashes function එකෙන් කරන්නේ " \ " backslashes ඓන් කරන එක, ඒ කියන්නේ " I\'m " මේවගේ දානකොට backslashes ignore කරලා අපිට " I'm " කියල output එක දෙනවා. 

වැඩි විස්තර මෙතනින් බලාගන්නකෝ,



ඊටපස්සේ ඉතින් අපිට කරන්න තියෙන්නේ GUI එක එහෙමත් නැත්තම් අපිට පේන web page එක හදාගන්න එකයි. මේක ඉතින් ඔයාලට කැමති විදියට අපි ඔය හදල තියන variables  ටිකෙන් input ගන්න පුළුවන් විදියට ලස්සන කරලා හදාගන්න එකයි කරන්න තියෙන්නේ
ඔයාලට පුළුවන් firstname, lastname email website වලට textbox  use කරලා comment එකට textarea එකක් use කරලා gender එකට radio selection ekak වගේ දල කැමති විදියට ලස්සන කරලා ගන්න.
 

එහෙනම් ඉතින් මම හදපු code එක ඔයාලට පෙන්නන්නම් මේ විදියට ඔයාල කැමති විදියට page එක හදල ලස්සන කරලා වැඩේ test කරලා බලන්නමෝ එහෙනම් මෙන්න code කෑල්ල.




<!DOCTYPE HTML>

<html>

<head>

<title>PHP Form Validation Example</title>

</head>

<body>

<?php

$fname = $lname = $email = $gender = $comment = $website = "";

if ($_SERVER ["REQUEST_METHOD"] == "POST") {
    
    $fname = test_input ( $_POST ["fname"] );
    
    $lname = test_input ( $_POST ["lname"] );
    
    $gender = test_input ( $_POST ["gender"] );
    
    $email = test_input ( $_POST ["email"] );
    
    $website = test_input ( $_POST ["website"] );
    
    $comment = test_input ( $_POST ["comment"] );
    
}

function test_input($data) {
    
    $data = trim ( $data );
    
    $data = stripslashes ( $data );
    
    $data = htmlspecialchars ( $data );
    
    return $data;
    
}

?>


    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
        
        <fieldset style="padding-left: 10px; padding-bottom: 10px; padding-top: 10px;">
            
            <legend>
                
                <b>Personal Information:</b>
                
            </legend>
            
            <b>First Name: </b><br><input type="text" name="fname"> <br> <br> 
            
            <b>Last Name: </b><br><input type="text" name="lname"> <br> <br> 
            
            <b>Gender: </b><input type="radio" name="gender" value="female">
            
            <b>Female </b><input type="radio" name="gender" value="male">
            
            <b>Male </b> <br> <br> 
            
            <b>E-mail: </b><br><input type="text" name="email"> <br> <br> 
            
            <b>Website: </b><br><input type="text" name="website"> <br> <br> 
            
            <b>Comment: </b><br><textarea name="comment" rows="5" cols="40"></textarea> <br> <br> 
            
            <input type="submit" name="submit" value="Submit">
        
        </fieldset>
    
    </form>
    
    <?php
    
        echo "<h2>Your Data: </h2>";
        
        echo "<b>First Name: </b>" . $fname;
        
        echo "<br><br>";
        
        echo "<b>Last Name: </b>" . $lname;
        
        echo "<br><br>";
        
        echo "<b>Gender: </b>" . $gender;
        
        echo "<br><br>";
        
        echo "<b>Email: </b>" . $email;
        
        echo "<br><br>";
        
        echo "<b>Website: </b>" . $website;
        
        echo "<br><br>";
        
        echo "<b>Comment: </b>" . $comment;
        
    ?>    

</body>

</html>





අහ්හ් තව පොඩ්ඩෙන් කියන්න අමතක වෙනවා මේකේ ඔය අන්තිමට කරලා තියනවා වගේ ඔයාල print කරලා බලන්න input කරපු ඒවා පෙන්නනවද කියල



මෙන්න මෙහෙමයි interface එක එන්නේ සහ data input කරහම output එක එන්න ඕනේ මෙන්න මේ වගේ ඔයාලට කැමති විදියට කරලා බලන්නකෝ

ලොකු කරලා බලන්න ඕනේ නම් මේක උඩ ඔබන්නකෝ හික් හික් :P


කොහොමද වැඩේ එළකිරි වගේ වගේ වැඩ නේද ;) 


ඔයාලට පුළුවන් අපි මේ කරපු උදාහරණයම GET method එක use කරලා කොහොමද කරන්නේ කියල කරලා බලන්න.


එහෙනම් ඉතින් මට යන්න වෙලාව හරි තවත් අලුත් පාඩමක් අරගෙන නැවත හමුවෙමු එතකන් මේ  කරපු දේවල් හොදට පුරුදු වෙන්න 

එහෙමනම් ඉතින් මම ගියෝ......

මතක ඇතුව කොමෙන්ටුවකුත් දාලම යන්න යාලුවනේ.....