php mysql urgent help need

Kmizt

Member
Jun 2, 2016
113
19
0
mysql database එකට single quote submit කරන්න බැරි නිසා single quotes වල ඉස්සරහට slash sign එකක් දාන්න පල්ලෙහ තියෙන හැම code එකක්ම try කලා මචං. එ්ත් වැඩ කරන්නෙ නෑ. Textbox එකට string එකක් enter කරන කොට single quote එකට කලින් slash දැම්මම නම් query එක run wenawa.



  1. $name=$_POST["name"];
    $name = str_replace("'", "\'", $name);
  2. $name=$_POST["name"];
    $name = str_replace("'", "\\'", $name);
  3. $name = str_replace("'", "\'", $_POST["name"]);
  4. $name = str_replace("'", "\\'", $_POST["name"]);
  5. $name=addslashes($_POST["name"]);
  6. $name=htmlspecialchars($_POST["name"]);
  7. $name=htmlspecialchars(addslashes($_POST["name"]));


මේක ගොඩ දාගන්න උදව්වක් දෙන්න. අඩුගානේ bump කරන්න.
Thanks.
 
Last edited:

yasitha_o3

Member
Oct 5, 2006
2,081
83
0
37
IN YOUR HEART
mokadda ban karanna one?

name ekata single quotes dala save karannada one? mehema 'Yasitha'
naththan oyata one name eka save karla single quotes thiyenawanam ain karannada?
 

Kmizt

Member
Jun 2, 2016
113
19
0
mokadda ban karanna one?

name ekata single quotes dala save karannada one? mehema 'Yasitha'
naththan oyata one name eka save karla single quotes thiyenawanam ain karannada?
නෑ බං...
EX:

Comany Name : Rajan's Jewellary

කොහොමද Rajan's Jewellary කියන එක submit කරන්නෙ?
 

Kmizt

Member
Jun 2, 2016
113
19
0
Othanadi bari database ekata quotation mark insert karanna newei. oyaa ge form data submit unaata passe oya eken ain karawa athi.

meka use karanna sanitize karanna.
http://php.net/manual/en/filter.filters.sanitize.php
sanitize කියන එකෙන් වෙන්නෙ illegal characters අයින් කරන එක නේද?
අනිත් එක මචං text box එකේ ' වෙනුවට \' type කරාම database එකට ' යනව කිසි අවුලක් නැතුව.
 
Last edited:

Kmizt

Member
Jun 2, 2016
113
19
0
මචං escaping වලට යූස් කරන්නේ forward slash "/" නෙමේ.
back slash එක "\" :)
සොරි මචං...මෙහෙම නේද?
$name=$_POST["name"];
$name = str_replace("'", "\\'", $name);

ඒත් වැඩ නෑ බං....:(
 

GT9

Well-known member
  • Jun 22, 2013
    1,564
    167
    63
    [email protected]
    Code:
    සොරි මචං...මෙහෙම නේද? 
    $name=$_POST["name"];
    $name = str_replace("'", "\\'", $name);
    
    ඒත් වැඩ නෑ බං....

    අනිත් එක මචං ඔයා escaping යූස් කරන විදියත් වැරදියි.


    $name = str_replace("'", "\'", $name);

    ඔතන එක backslash එකක් විතරයි යූස් කරන්න ඕන. :)

    ඔයාට mysqli_real_escape_string() වගේ function එකක් යූස් කරන්න පුුලවන් $_POST variables වල තියෙන්න පුුලුවන් කැරැක්ටර්ස් එස්කේප් කරන්න. :)

     
    Last edited:

    Kmizt

    Member
    Jun 2, 2016
    113
    19
    0
    මචං ESCAPING වලට STR_REPLACE යූස් කරන්න ඕන නෑ. ඒකට mysqli_real_escape_string() වගේ function එකක් යූස් කරන්න පුලුවන්. අනිත් එක මචං ඔය ගැටලුව පහසුවෙන්ම විසඳගන්න පුලුවන්. sql query එක මෙතන දැම්ම නම්.


    Not working bro :(
    $name=mysql_real_escape_string($_POST["name"]);

    PHP:
    <?php 
     
    if(isset($_POST["submit"])&&$_POST["submit"]=="List") {
        
        $mess=""; 
     
        $name=mysql_real_escape_string($_POST["name"]);
     
        $regno=$_POST["regno"];
        $cat=$_POST["cat"];
        $district=$_POST["district"]; 
        $address=$_POST["address"];
        $tel=$_POST["tel"];
    
        if(isset($_POST["fax"])&&$_POST["fax"]!="") { 
            $fax=$_POST["fax"]; 
        }
        else {$fax = "n/a";} 
         
        if(isset($_POST["email"])&&$_POST["email"]!="") { 
            $email=$_POST["email"]; 
        } 
        else {$email = "n/a";}
            
        if(isset($_POST["website"])&&$_POST["website"]!="") { 
            $website=$_POST["website"]; 
        } 
        else {$website = "n/a";}
        
        if(isset($_POST["lat"])&&isset($_POST["lng"])) { 
            $lat=$_POST["lat"];
            $lng=$_POST["lng"]; 
        }
        
        if(isset($_POST["code"])) { 
            $code=htmlspecialchars($_POST["code"]); 
        }
        
    
        $query1 = "SELECT regno FROM companies WHERE regno = '$regno'";
        $result=mysql_query($query1);
            
        while($row=mysql_fetch_array($result)) {
            $name=$row["0"];
        }
        
        if(mysql_affected_rows()==0) {
            
        $uname = $_SESSION["uname"];
        
        $query2 = "SELECT user_id FROM users WHERE uname = '$uname'";
        $result2=mysql_query($query2);
    
        $user_id=mysql_fetch_array($result2);
         
         
        $query = "INSERT INTO companies(name, regno, cat, district, address, tel, fax, email, website, user_id) VALUES('$name', '$regno', '$cat','$district', '$address', '$tel', '$fax', '$email', '$website', '$user_id[0]')"; 
        $result = mysql_query($query); 
        
        $query3 = "INSERT INTO profiles(lat, lng, code, company_id) VALUES('$lat', '$lng', '$code', '".mysql_insert_id()."')"; 
        $result3 = mysql_query($query3);
         
            if((!$result)||(!$result3)) { 
                $error = mysql_error(); 
                print $error; 
                exit;
                } 
            else header("Location:success.php"); 
        }
        else $mess = "<font color='blue'>You have already registered the same company. Use a different company registration number or if you are trying to edit details of your company, please visit your usercp</font>"; 
        }
        echo $mess;
    ?>

    මේකද මචං ඉල්ලුවෙ... ඔක්කොම වැඩ බං... ' තියෙන කොට submit වෙන්නෙ නෑ...
    ps: Yes, mysql is deprecated. :yes:
     

    Kmizt

    Member
    Jun 2, 2016
    113
    19
    0
    Code:
    සොරි මචං...මෙහෙම නේද? 
    $name=$_POST["name"];
    $name = str_replace("'", "\\'", $name);
    
    ඒත් වැඩ නෑ බං....
    අනිත් එක මචං ඔයා escaping යූස් කරන විදියත් වැරදියි.


    $name = str_replace("'", "\'", $name);

    ඔතන එක backslash එකක් විතරයි යූස් කරන්න ඕන. :)

    ඔයාට mysqli_real_escape_string() වගේ function එකක් යූස් කරන්න පුුලවන් $_POST variables වල තියෙන්න පුුලුවන් කැරැක්ටර්ස් එස්කේප් කරන්න. :)


    එහෙමත් කරල බැලුව bro :(
     

    nuwan91

    Member
    Jul 15, 2016
    156
    7
    0
    mysql database එකට single quote submit කරන්න බැරි නිසා single quotes වල ඉස්සරහට slash sign එකක් දාන්න පල්ලෙහ තියෙන හැම code එකක්ම try කලා මචං. එ්ත් වැඩ කරන්නෙ නෑ. Textbox එකට string එකක් enter කරන කොට single quote එකට කලින් slash දැම්මම නම් query එක run wenawa.



    1. $name=$_POST["name"];
      $name = str_replace("'", "\'", $name);
    2. $name=$_POST["name"];
      $name = str_replace("'", "\\'", $name);
    3. $name = str_replace("'", "\'", $_POST["name"]);
    4. $name = str_replace("'", "\\'", $_POST["name"]);
    5. $name=addslashes($_POST["name"]);
    6. $name=htmlspecialchars($_POST["name"]);
    7. $name=htmlspecialchars(addslashes($_POST["name"]));


    මේක ගොඩ දාගන්න උදව්වක් දෙන්න. අඩුගානේ bump කරන්න.
    Thanks.

    uba query ekak liyalada insert karanne data. mokakda query eka bn?
     

    nuwan91

    Member
    Jul 15, 2016
    156
    7
    0
    Not working bro :(
    $name=mysql_real_escape_string($_POST["name"]);

    PHP:
    <?php 
     
    if(isset($_POST["submit"])&&$_POST["submit"]=="List") {
        
        $mess=""; 
     
        $name=mysql_real_escape_string($_POST["name"]);
     
        $regno=$_POST["regno"];
        $cat=$_POST["cat"];
        $district=$_POST["district"]; 
        $address=$_POST["address"];
        $tel=$_POST["tel"];
    
        if(isset($_POST["fax"])&&$_POST["fax"]!="") { 
            $fax=$_POST["fax"]; 
        }
        else {$fax = "n/a";} 
         
        if(isset($_POST["email"])&&$_POST["email"]!="") { 
            $email=$_POST["email"]; 
        } 
        else {$email = "n/a";}
            
        if(isset($_POST["website"])&&$_POST["website"]!="") { 
            $website=$_POST["website"]; 
        } 
        else {$website = "n/a";}
        
        if(isset($_POST["lat"])&&isset($_POST["lng"])) { 
            $lat=$_POST["lat"];
            $lng=$_POST["lng"]; 
        }
        
        if(isset($_POST["code"])) { 
            $code=htmlspecialchars($_POST["code"]); 
        }
        
    
        $query1 = "SELECT regno FROM companies WHERE regno = '$regno'";
        $result=mysql_query($query1);
            
        while($row=mysql_fetch_array($result)) {
            $name=$row["0"];
        }
        
        if(mysql_affected_rows()==0) {
            
        $uname = $_SESSION["uname"];
        
        $query2 = "SELECT user_id FROM users WHERE uname = '$uname'";
        $result2=mysql_query($query2);
    
        $user_id=mysql_fetch_array($result2);
         
         
        $query = "INSERT INTO companies(name, regno, cat, district, address, tel, fax, email, website, user_id) VALUES('$name', '$regno', '$cat','$district', '$address', '$tel', '$fax', '$email', '$website', '$user_id[0]')"; 
        $result = mysql_query($query); 
        
        $query3 = "INSERT INTO profiles(lat, lng, code, company_id) VALUES('$lat', '$lng', '$code', '".mysql_insert_id()."')"; 
        $result3 = mysql_query($query3);
         
            if((!$result)||(!$result3)) { 
                $error = mysql_error(); 
                print $error; 
                exit;
                } 
            else header("Location:success.php"); 
        }
        else $mess = "<font color='blue'>You have already registered the same company. Use a different company registration number or if you are trying to edit details of your company, please visit your usercp</font>"; 
        }
        echo $mess;
    ?>

    මේකද මචං ඉල්ලුවෙ... ඔක්කොම වැඩ බං... ' තියෙන කොට submit වෙන්නෙ නෑ...
    ps: Yes, mysql is deprecated. :yes:

    mysql_real_escape_string aluth version eke wada na bn.

    mm hithanne waradda thiyenne select eke.

    $query2 = "SELECT user_id FROM users WHERE uname = '$uname'";

    select query eka liyapan pahala widiyata.

    $query2 = 'SELECT user_id FROM users WHERE uname = "'.$uname.'"';
    or
    $query2 = 'SELECT user_id FROM users WHERE uname = "$uname"';