GET Function проблем

crazzybg

Registered
Здравейте имам малак проблем с GET то не е във основа че може някой да хакне сайта защото го сменя и става грозна картинката искам да ви попитам тези които са по на вътре с нещата явно са преминали през моята делема защо така се получава (по на долу са показани примери)
така е стандартна страницата:
Код:
example.com/index.php?advertising=ranking&a=0&n=1
когато сложа кавичка по този начин на 0 или 1
Код:
example.com/index.php?advertising=ranking&a='0&n=1
ми извежда следния сайт
Код:
adexample.com/index.php?advertising=ranking&a='0&n=1
и няма връзка с моя.
Направил съм гет да взима само цифра както си трябва, ако има някви символи или бикви int формата разчита всичко като 0 което ще ги върне на същата страница но самия линк в моя случей се променя (ако се добавят двойни кавички няма проблем но единичната го създава)
Ако може някой да помогне или ако има възможност да влезне в PC чрез някоя програма за да види какъв точно е проблема защото от прочетено се изваждат грешни изводи от разлика на видяното.

Благодаря предварително на всеки оделил време с моя пост
 
Аз използвам следния израз:

$val = preg_match("/^(\d+)$/", $_GET['val']) ? $_GET['val'] : 0;

Ако в стойността има какъвто и да символ различен от цифра, връща 0;

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

PHP:
	function getNumber($val) {
		$checkNumber = preg_match("/^[0-9]{0,10}$/", $val) ? $val : NULL;
		return $checkNumber;
	}

Като тук разрешам само числа от 0-9 и числото да е не по-голямо от 10 цифри (там вече е твое решение)
И използвам кода по следния начин

PHP:
$id = isset($_GET['id']) ? getNumber($_GET['id']) : NULL;
 

Back
Горе