tehro0n
شنبه 04 دی 1389, 01:02 صبح
من این روش رو برای ذخیره اطلاعات در db انجام می دم اما کار نمی کنه! چرا؟
وقتی از escape استفاده می کنیم باید کاراکترهای مخربی مانند ' به صورت '\ ذخیره شوند ولی بازهم به صورت ' نوشته می شود و به همین دلیل هنگام نمایش اطلاعات صفحه با مشکل بر میخوره و سفید خواهد بود!
function str_escape($str, $con=null)
{
if (get_magic_quotes_gpc())
$str = stripslashes ($str);
if (function_exists ('mysql_real_escape_string') && $con)
return mysql_real_escape_string ($str, $con);
else
return mysql_escape_string ($str);
}
if (isset($_POST['url']))
if (isValidURL($_POST['url'])) {
$con = mysql_connect ( MYSQL_HOST, MYSQL_USER, MYSQL_PASS );
if ($con) {
mysql_select_db ( MYSQL_DB, $con );
mysql_query("SET NAMES 'utf8'", $con);
} else {
printf("Connect failed: %s\n", mysql_error());
exit();
}
$_HOST = strtolower($_POST['url']);
$_HOST = str_escape($_HOST);
// polish the hostname
if (preg_match('@^(?:(?:http|https)://)?(?:www\.)?([^/]+[^.]+\.[^.]+)@i', $_HOST, $matches))
$_HOST = $matches[1];
if (isset($_POST['subject']))
$_subject = str_escape($_POST['subject']);
if (isset($_POST['comment']))
$_comment = str_escape($_POST['comment']);
$res = mysql_query("SELECT `id` FROM `hits` WHERE `site` = '{$_HOST}'", $con);
if (mysql_num_rows($res)!==1)
// we have this site yet, so lets add it
mysql_query("INSERT INTO `hits` (`site`, `sent`, `subject`, `comment`, `ip`) VALUES ('{$_HOST}', '10', '{$_subject}', '{$_comment}', '{$_SERVER['REMOTE_ADDR']}')", $con);
}
وقتی از escape استفاده می کنیم باید کاراکترهای مخربی مانند ' به صورت '\ ذخیره شوند ولی بازهم به صورت ' نوشته می شود و به همین دلیل هنگام نمایش اطلاعات صفحه با مشکل بر میخوره و سفید خواهد بود!
function str_escape($str, $con=null)
{
if (get_magic_quotes_gpc())
$str = stripslashes ($str);
if (function_exists ('mysql_real_escape_string') && $con)
return mysql_real_escape_string ($str, $con);
else
return mysql_escape_string ($str);
}
if (isset($_POST['url']))
if (isValidURL($_POST['url'])) {
$con = mysql_connect ( MYSQL_HOST, MYSQL_USER, MYSQL_PASS );
if ($con) {
mysql_select_db ( MYSQL_DB, $con );
mysql_query("SET NAMES 'utf8'", $con);
} else {
printf("Connect failed: %s\n", mysql_error());
exit();
}
$_HOST = strtolower($_POST['url']);
$_HOST = str_escape($_HOST);
// polish the hostname
if (preg_match('@^(?:(?:http|https)://)?(?:www\.)?([^/]+[^.]+\.[^.]+)@i', $_HOST, $matches))
$_HOST = $matches[1];
if (isset($_POST['subject']))
$_subject = str_escape($_POST['subject']);
if (isset($_POST['comment']))
$_comment = str_escape($_POST['comment']);
$res = mysql_query("SELECT `id` FROM `hits` WHERE `site` = '{$_HOST}'", $con);
if (mysql_num_rows($res)!==1)
// we have this site yet, so lets add it
mysql_query("INSERT INTO `hits` (`site`, `sent`, `subject`, `comment`, `ip`) VALUES ('{$_HOST}', '10', '{$_subject}', '{$_comment}', '{$_SERVER['REMOTE_ADDR']}')", $con);
}