PHP mysql_real_escape_string() 函数
定义和用法
mysql_real_escape_string() 函数转义 SQL 语句中使用的字符串中的特殊字符。
下列字符受影响:
- \x00
- \n
- \r
- \
- '
- "
- \x1a
如果成功,则该函数返回被转义的字符串。如果失败,则返回 false。
အပြောအဆို
mysql_real_escape_string(string,connection)
ပါ | ဖော်ပြ |
---|---|
string | လိုအပ်သည့် အချက်အလက် |
connection | လိုအပ်သည့် အချက်အလက် |
အကြောင်းအချက်
အဆိုပါ အချက်အလက် string အရေးယူဆောင်ခြင်း အချက်အလက် ကို ပြောင်းလဲခြင်း နှင့် တဆင့် ဆက်သွယ်ထားသော စကားလုံး ကို သို့မဟုတ် ဆက်သွယ်ထားသော အချက်အလက် ကို အသုံးပြုရန် အချက်အလက် mysql_query().
အကြောင်းအချက် နှင့် အစီအဥ်
အကြောင်းအချက်:အဆိုပါ အချက်အလက် ကို အသုံးပြုပြီး ဘဏ္ဍာရိက အကူအညီပြုရေး အော်ခရိုက်စ် အစီအစဉ် ကို ကာကွယ်ရန် အသုံးပြုနိုင်ပါ
အမှတ်
အမှတ် 1
<?php $con = mysql_connect("localhost", "hello", "321"); if (!$con) { die('Could not connect: ' . mysql_error()); } // အသုံးပြုသူ၏ အမည် နှင့် အတွက်ဖြစ်သော အချက်အလက် ကို ရယူရန် အချက်အလက် // အသုံးပြုသူ၏ အမည် နှင့် အတွက်ဖြစ်သော အချက်အလက် ကို ကျင့်သုံးရန် လျှင် အသားသွားကြောင်း ပြောကြားပါ $user = mysql_real_escape_string($user); $pwd = mysql_real_escape_string($pwd); $sql = "SELECT * FROM users WHERE user='" . $user . "' AND password='" . $pwd . "'" // အချက်အလက် အချို့ ပို mysql_close($con); ?>
အမှတ် 2
ဘဏ္ဍာရိက အကူအညီပြုရေး အော်ခရိုက်စ် အစီအစဉ် သည် အဆိုပါ အချက်အလက် မပြောင်းလဲဘဲ အသုံးပြုလျှင် ဘယ်လိုကြုံတွေ့ရမည်လဲဆိုတာ ပြောကြားပါ:
<?php $con = mysql_connect("localhost", "hello", "321"); if (!$con) { die('Could not connect: ' . mysql_error()); } $sql = "SELECT * FROM users WHERE user='{$_POST['user']}' AND password='{$_POST['pwd']}'"; mysql_query($sql); // အသုံးပြုသူ၏ အမည် နှင့် အတွက်ဖြစ်သော ပုံစံ မပြောင်းလဲပါ // အသုံးပြုသူ၏ အရေးယူဆောင်ခြင်း အချက်အလက် အချို့ ဖြစ်နိုင်သည်: $_POST['user'] = 'john'; $_POST['pwd'] = "' OR ''='"; // အချက်အလက် အချို့... mysql_close($con); ?>
ထိုမှ အစ်စ်အက်ရှ် အော်ခရိုက်စ် အစီအစဉ် သည် နောက်ပြီးဖြစ်တယ်:
SELECT * FROM users WHERE user='john' AND password='' OR ''=''
ဤသည် အသုံးပြုသူ သည် အခွင့်အရေးအသား အရေးပါသော လက်မှတ် မပြုဘဲ ဝင်ရောက်နိုင်သည် ဟု ဖော်ပြသည်。
အမှတ် 3
ဗဟိုင်းသုံး ပရိုဂရမ် ကြောင်း
<?php function check_input($value) { // ပြန်လည်ပြောင်းလဲခြင်း if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // အမှတ်ပါဝင်သေးသေးသည် မဟုတ် ဖြစ်လာကြောင်း if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } $con = mysql_connect("localhost", "hello", "321"); if (!$con) { die('Could not connect: ' . mysql_error()); } // ကျွမ်းကျင်သော SQL $user = check_input($_POST['user']); $pwd = check_input($_POST['pwd']); $sql = "SELECT * FROM users WHERE user=$user AND password=$pwd"; mysql_query($sql); mysql_close($con); ?>