PDA

View Full Version : مشکل این تابع فیتر چیه که ارور میده؟



saeed-71
چهارشنبه 27 فروردین 1393, 22:22 عصر
سلام.
مشکل این تابع فیتر چیه که ارور میده؟

Warning: mysql_real_escape_string() [function.mysql-real-escape-string (http://localhost/car/function.mysql-real-escape-string)]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\xampp\htdocs\car\obj\connect.php on line 17

Warning: mysql_real_escape_string() [function.mysql-real-escape-string (http://localhost/car/function.mysql-real-escape-string)]: A link to the server could not be established in C:\xampp\htdocs\car\obj\connect.php on line 17



//check post data
function Check_Post($value){
$Return1 = mysql_real_escape_string($value);
$Return2 = htmlspecialchars($Return1);
return $Return2;
}

//check get data
function Check_Get($value){
$Return1 = mysql_real_escape_string($value);
$Return2 = htmlspecialchars($Return1);
$Return3 = intval($Return2);
return $Return3;
}

trasilver
پنج شنبه 28 فروردین 1393, 02:41 صبح
میگه نمی تونه به دیتابیس
ODBC وصل بشه.

saeed-71
پنج شنبه 28 فروردین 1393, 05:37 صبح
اصلا من موندم چرا همچین اروری میده!!!!
این کل کد کلاس من هستش و فقط رو همین دو تابع اون قسمت mysql_real_escape_string گیر میده!

mahdiyaran
پنج شنبه 28 فروردین 1393, 07:12 صبح
اصلا من موندم چرا همچین اروری میده!!!!
این کل کد کلاس من هستش و فقط رو همین دو تابع اون قسمت mysql_real_escape_string گیر میده!

به خاطر اینکه که به لینک احتیاج داره و برای استفاده از این تابع باید mysql_connect اجرا شده باشه.

A MySQL connection is required before using mysql_real_escape_string() otherwise an error of level E_WARNING is generated, and FALSE is returned. If link_identifier isn't defined, the last MySQL connection is used.
If this function is not used to escape data, the query is vulnerable to SQL Injection Attacks.




اینجا ازش استفاده نکنید.

saeed-71
پنج شنبه 28 فروردین 1393, 10:49 صبح
یعنی چی به لینک نیاز داره؟

mahdiyaran
پنج شنبه 28 فروردین 1393, 20:58 عصر
یعنی چی به لینک نیاز داره؟

شما وقتی به دیتابیس وصل میشین یه لینک ساخته میشه دیگه :

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
exit('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);


توی توضیحات بالا برای تابع mysql_real_escape_string نوشته که لینک رو باید بهش معرفی کنید یا خودش میگرده دنبال آخرین کانکشن شما و اون رو در نظر میگیره.

به عبارت ساده تر شما اگه اول برنامتون mysql_connect کرده باشید این تابع هم کار میده.

برای escape کردن ورودی راه های دیگری استفاده کنید و موقع دادن اطلاعات به دیتابیسmysql_real_escape_string استفاده کنید.