PHP දන්න අයගෙන් උදව්වක්

DeKay

Well-known member
  • May 15, 2015
    2,124
    1,062
    113
    PHP දන්න අයගෙන් උදව්වක්

    මට Simple PHP script එකක් ලියන්න ඕනි, Login එකකින් ලොග් වුනාම ඊලග පේජ් එකේදි ලොග් වෙලා ඉන්නවා නම් විතරක් Button එකක් Display වෙන විදියට​.

    PHP:
    if(!empty($_POST['username']) && !empty($_POST['password']))
    {
        $username=$_POST['username'];
        $password=$_POST['password'];  
        $sql = "SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."'";
        $statement = sqlsrv_query( $conn, $sql);
        if ($row = sqlsrv_fetch_array($statement, SQLSRV_FETCH_ASSOC))
        {
            if($row['Position']=='manager')
            {        
            $_SESSION['username'] = $username;
    
    
            echo $row['Position']."<br />";
            header("location:Home.php");
            }
            if($row['Position']=='CEO')
            {
              $_SESSION['username'] = $username;
            }
       
        }

    දැන් මෙතෙන්දි Home.php එකට ලොග් වෙලා විතරක් ඉන්නවා නම් අර ලින්ක් එක VIsible කරන්නේ කොහොමද​? Sessions වලින් පුලුවම් නේද​?

    PHP:
    <?php
    
    if(isset($_SESSION['username'])) {
    ?>
    <li ><a href='Admin_Managment.php'><span>Managment</span></a></li>
    <?php
    }
    
    ?>

    මෙන්න මෙහෙමයි දැම්මේ. මෙහෙම දැම්මම දැන් ලින්ක් එක ලොග් වුනත් පේන්නේ නැ. ලොග් නොවුනත් පේන්නේ නැ. මේක කරගන්නේ කොහොමද​?
     

    D T

    Member
    Aug 4, 2016
    2,460
    303
    0
    96
    𝓝𝓸 𝓘𝓭𝓮𝓪 💦
    පුළුවන් මචන්.
    ලොග් වුනත් නැතත් පෙන්නන්නේ නැ කියන්නේ value එක assign වෙලා නැතුව ඇති. හරියටම බලාගන්න පලවෙනි code එකේ if එක අවසානයේ echo දීලා username එකට value එක assign වෙලාද බලන්න.

    echo $_SESSION['username'];
     
    Last edited:

    CorD SaC

    Well-known member
  • Feb 4, 2015
    15,761
    28,118
    113
    මෙහෙම දුන්නොත් :dull: empty() is the safest way to check if the POST var contains a value or not.

    PHP:
    if (isset($_SESSION['username']))
    {
          if (!empty($_SESSION['username']))
          {
            echo "<li ><a href='Admin_Managment.php'><span>Managment</span></a></li>";
          }
    }
     
    Last edited:

    gasgemba

    Member
    May 15, 2017
    9
    0
    1
    මට Simple PHP script එකක් ලියන්න ඕනි, Login එකකින් ලොග් වුනාම ඊලග පේජ් එකේදි ලොග් වෙලා ඉන්නවා නම් විතරක් Button එකක් Display වෙන විදියට​.

    PHP:
    if(!empty($_POST['username']) && !empty($_POST['password']))
    {
        $username=$_POST['username'];
        $password=$_POST['password'];  
        $sql = "SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."'";
        $statement = sqlsrv_query( $conn, $sql);
        if ($row = sqlsrv_fetch_array($statement, SQLSRV_FETCH_ASSOC))
        {
            if($row['Position']=='manager')
            {        
            $_SESSION['username'] = $username;
    
    
            echo $row['Position']."<br />";
            header("location:Home.php");
            }
            if($row['Position']=='CEO')
            {
              $_SESSION['username'] = $username;
            }
       
        }
    දැන් මෙතෙන්දි Home.php එකට ලොග් වෙලා විතරක් ඉන්නවා නම් අර ලින්ක් එක VIsible කරන්නේ කොහොමද​? Sessions වලින් පුලුවම් නේද​?

    PHP:
    <?php
    
    if(isset($_SESSION['username'])) {
    ?>
    <li ><a href='Admin_Managment.php'><span>Managment</span></a></li>
    <?php
    }
    
    ?>
    මෙන්න මෙහෙමයි දැම්මේ. මෙහෙම දැම්මම දැන් ලින්ක් එක ලොග් වුනත් පේන්නේ නැ. ලොග් නොවුනත් පේන්නේ නැ. මේක කරගන්නේ කොහොමද​?

    1. ohoma db query gahuwoth machan kelinma sql injection thama. PDO bindParam use karanna.

    2. oyage session eka denatamath set wela aththe. ekai pennanne naththe. echo $_SESSION['username'] dala balanna session eka thiyanawada kiyala. ehemanam mulin unset($_SESSION['username']) karala inna :) page dekeme session_start(); daanna udinma.
     

    The_Killer

    Well-known member
  • Jan 20, 2014
    11,053
    2,201
    113
    WA, Straya 🇦🇺🦘
    www.elakiri.com

    අනිවාර්යෙන්ම session එක start කරලා තියෙන්න ඕනා session value භාවිතා කරන්න ඕනා නම්. ඒ නිසා PHP Head tag එකට පස්සේ මේ line එක දාන්න.


    PHP:
    <?php
    session_start();
    
    if(!empty($_POST['username']) && !empty($_POST['password']))
    {
        $username=$_POST['username'];
        $password=$_POST['password'];  
        $sql = "SELECT * FROM users WHERE username = '".$username."' AND password = '".$password."'";
        $statement = sqlsrv_query( $conn, $sql);
        if ($row = sqlsrv_fetch_array($statement, SQLSRV_FETCH_ASSOC))
        {
            if($row['Position']=='manager')
            {        
            $_SESSION['username'] = $username;
    
    
            echo $row['Position']."<br />";
            header("location:Home.php");
            }
            if($row['Position']=='CEO')
            {
              $_SESSION['username'] = $username;
            }
       
        }



    කලින් කියුවා වගේ session values manipulate කරන්නත් session එක start වෙලා තියෙන්න ඕනා. ඒ නිසා session එක භාවිතා වෙන හැම HTML/PHP එකේම session_start(); කරලා තියන්න.


    PHP:
    <?php
    session_start();
    
    if(isset($_SESSION['username'])) {
    ?>
    <li ><a href='Admin_Managment.php'><span>Managment</span></a></li>
    <?php
    }
    
    ?>