Защита на $_GET?

Значи защитата бая сложно ще я пробваш. То и хакването е трудно по принцип и трябва хакера да има железни нерви да пробва.


Значи в адрес бара където се взима стойността трябва да нацелиш променливата да е с такова име, че вместо да се запише да стане част от заявката където се използва и по този начин да я промени.

Т.е. променливата да ти бъде част от заявка.
 
relax15pyt каза:
Може и заявката да я сложиш в sprintf и след това да я подаваш на mysql_query();
Така няма да има нужда да ти изписва безсмислени работи.

Кой номер ти е за първа страница 0 или 1 ?
1
 
Ако мислиш, че 0 за теб е невалидна заявка можеш да тургаш заявката в sprintf и там където подаваш числовия тип му задаваш %d.
 
Нещо не мода да разбера. Когато посоча ?page=0 ми изписва това:
Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\hardware\statii.php on line 92

ето кода само за страницирането:
Код:
$broinastranica = 5;
$pageNum = 1;
if(isset($_GET['page']) ctype_alnum($_GET['page']))
{
$pageNum = (int)$_GET['page'];
}
$redove = ($pageNum - 1) * $broinastranica;

$query = "SELECT COUNT(id) AS numrows FROM `produkti`";
$resultat = mysql_query($query) or die('Error, query failed');
$row = mysql_fetch_array($resultat, MYSQL_ASSOC);
$numrows = $row['numrows'];


$maxPage = ceil($numrows/$broinastranica);

$self = $_SERVER['PHP_SELF'];
$nomeranastranici = '';

for($page = 1; $page <= $maxPage; $page++)
{
if ($page == $pageNum)
{
$nomeranastranici .= " $page ";
}
else
{
$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> ";
}
}

if ($pageNum > 1)
{
$page = $pageNum - 1;
$predishna = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> ";

$parva = " <font color=orange><a href=\"$self?page=1\">[първа]</a></font> ";
}
else
{
$predishna = ' ';
$parva = ' ';
}

if ($pageNum < $maxPage)
{
$page = $pageNum + 1;
$sledvashta = " <font color=orange><a href=\"$self?page=$page\"> [>] </a></font> ";

$posledna = " <font color=orange><a href=\"$self?page=$maxPage\">[последна]</a></font> ";
}
else
{
$sledvashta = ' ';
$posledna = ' ';
}
   $zaqvka = mysql_query("SELECT * FROM `produkti` ORDER BY `id` DESC LIMIT $redove, $broinastranica");
   echo "<div style='width: 300px; border: 1px solid #000000; padding: 10px;'>";
while($row = mysql_fetch_assoc($zaqvka))
{
   echo "<tr><td><a href='products.php?product=$row[id]'>$row[ime]</a></td></tr><br />";
}
echo "</div>";

echo "
<center><div id='menubar'>$parva  $predishna  $nomeranastranici  $sledvashta  $posledna</div></center>";
}

Моля да ми посочиш как трябва да стане :oops: Благодаря!
 
Е значи все пак ще трябва да си направиш проверка...


Код:
<?
$broinastranica = 5; 
$pageNum = 1; 
if(isset($_GET['page']) && ctype_alnum($_GET['page'])) 
{ 
	$pageNum = (int)$_GET['page']; 
} 
$redove = ($pageNum - 1) * $broinastranica; 

$query = "SELECT COUNT(id) AS numrows FROM `produkti`"; 
$resultat = mysql_query($query) or die('Error, query failed'); 
$row = mysql_fetch_array($resultat, MYSQL_ASSOC); 
$numrows = $row['numrows']; 


$maxPage = ceil($numrows/$broinastranica); 

$self = $_SERVER['PHP_SELF']; 
$nomeranastranici = ''; 

for($page = 1; $page <= $maxPage; $page++) 
{ 
	if ($page == $pageNum) 
	{ 
		$nomeranastranici .= " $page "; 
	} 
	else 
	{ 
		$nomeranastranici .= " <a href=\"$self?page=$page\">$page</a> "; 
	} 
} 

if ($pageNum > 1) 
{ 
	$page = $pageNum - 1; 
	$predishna = " <font color=orange><a href=\"$self?page=$page\"> [<] </a></font> "; 

	$parva = " <font color=orange><a href=\"$self?page=1\">[първа]</a></font> "; 
} 
else 
{ 
	$predishna = ' '; 
	$parva = ' '; 
} 

if ($pageNum < $maxPage) 
{ 
	$page = $pageNum + 1; 
	$sledvashta = " <font color=orange><a href=\"$self?page=$page\"> [>] </a></font> "; 

	$posledna = " <font color=orange><a href=\"$self?page=$maxPage\">[последна]</a></font> "; 
} 
else 
{ 
	$sledvashta = ' '; 
	$posledna = ' '; 
} 
$zaqvka = mysql_query(sprintf("SELECT * FROM `produkti` ORDER BY `id` DESC LIMIT %d, %d", $redove, $broinastranica)); 
echo "<div style='width: 300px; border: 1px solid #000000; padding: 10px;'>"; 
while($row = mysql_fetch_assoc($zaqvka)) 
{ 
	if(count($row) == 0)
		echo "";
	else
		echo "<tr><td><a href='products.php?product=$row[id]'>$row[ime]</a></td></tr><br />"; 
} 
echo "</div>"; 

echo " 
<center><div id='menubar'>$parva  $predishna  $nomeranastranici  $sledvashta  $posledna</div></center>"; 
}
 

Back
Горе