Дупка в сайта как да я оправя.

Тъй като числото 0 ще прави проблем , ето ти според мен най-сигурния начин за защита на id-то и на page ;)

PHP:
<?php
$cid = $_GET['catid'];
if (isset($cid))
{
if (is_numeric($cid))
{
if ($cid == 0)
{
$catid = 1; // когато е 0 го сменяме с 1.
}
else
{
$catid = $cid; // когато всичко е ОК
}
}
else
{
$catid = 1; // като не е число да я прави 1.
}
}
else
{
$catid = 1; // ако не е избрана категория да я прави 1.
}
$pg = $_GET['page'];
if (isset($pg))
{
if (is_numeric($pg))
{
if ($pg == 0)
{
$page = 1; // когато е 0 го сменяме с 1.
}
else
{
$page = $pg; // когато всичко е ОК
}
}
else
{
$page = 1; // като не е число да я прави 1.
}
}
else
{
$page = 1; // ако не е избрана страница да я прави 1.
}

echo "<div class='gm-listen-header'><span class='gm-ls-link-selected'>Секция Игри</span><div class='clear'></div></div>";
$pp = "10";
$total = mysql_result(mysql_query("SELECT COUNT(id) FROM news WHERE catid='$catid'"),0);
$numofpages = $total / $pp;
$limitvalue = $page * $pp - ($pp);

$query = "SELECT * FROM news WHERE catid='$catid' ORDER BY id DESC LIMIT $limitvalue, $pp";
$result = mysql_query($query) or die(mysql_error()."[".$query."]");
$i = 0;
;)
 
proba каза:
Тъй като числото 0 ще прави проблем , ето ти според мен най-сигурния начин за защита на id-то и на page ;)

PHP:
...
;)

Много ми е интересно, като подадеш например 23.2 заявката какво ще върне :?

PHP:
<?php
if (isset($_GET['catid']))
{
	if (ctype_digit($_GET['catid']))
	{
		$catid = $_GET['catid'];
	}
	else
	{
		$catid = 1;
	}
}
else
{
	$catid = 1;
}

if (isset($_GET['page']))
{
	if (ctype_digit($_GET['page']))
	{
		$page = $_GET['page'];
	}
	else
	{
		$page = 1;
	}
}
else
{
	$page = 1;
}
?>
<div class='gm-listen-header'><span class='gm-ls-link-selected'>Секция Игри</span><div class='clear'></div></div>
<?php
$pp = "10";

$total = mysql_result(mysql_query("SELECT COUNT(id) FROM `news` WHERE `catid` = '{$catid}'"),0);

$numofpages = $total / $pp;

$limitvalue = $page * $pp - ($pp);



$query = "SELECT * FROM `news` WHERE `catid` = '{$catid}' ORDER BY `id` DESC LIMIT {$limitvalue}, {$pp}";

$result = mysql_query($query) or die(mysql_error()."[".$query."]");

$i = 0;
?>

Хайде да видим, на кого ще изкара повече грешки и на кой е по-сигурно :)
 
Даже и да имаш дупка ако махнеш echo mysql_error(); ,то няма да се покаже нищо..също така провери дали ид-то съществува и дали след него има нещо,и когато взимаш от $_GET заявка слагаи addslashes(); :)
 
xmmm каза:
Даже и да имаш дупка ако махнеш echo mysql_error(); ,то няма да се покаже нищо..също така провери дали ид-то съществува и дали след него има нещо,и когато взимаш от $_GET заявка слагаи addslashes(); :)

И като ID-то му е число, защо аджеба му е този addslashes() ? Много яко му набивате филма на автора.
 

Back
Горе