2014-03-18 4 views
0

Если у меня есть строка запроса, такие как: http://mywebsite.co.uk/charge.php?val=5768Проверка строки запроса в PHP

, как я могу проверить эту строку запроса выдаст ошибку с помощью PHP, если пользователь изменяет значение «Вала» в запросе строка. Могу ли я написать код на странице charge.php, чтобы сделать это?

+0

Да, вы могли бы. Я уверен, вы можете понять это. – h2ooooooo

+0

Пожалуйста, не могли бы вы дать мне подсказку, может быть, я новичок в php – Rifki

+0

Вообще Rifki, StackOverflow используется, чтобы отправлять примеры кода того, что вы пробовали, какие ошибки вы получаете, и попросить помощь в исправлении этих ошибок. Не для людей, чтобы написать код для вас. – Rottingham

ответ

2

Мне кажется, вы лаете не то дерево. Вы не можете обнаружить, что кто-то «что-то» меняет. Все, что вы получаете, это запрос URL-адреса, и все. Вы, как правило, не знаете, откуда пришел этот запрос или кто предоставил URL-адрес; вам необходимо оценить запрос по существу.

Я предполагаю, что у вас есть конфиденциальные действия, которые происходят, когда кто-то посещает этот URL. И значение изменяет некоторую важную часть этого действия. Затем вам необходимо создать проверки и ограничения на стороне сервера, которые подтверждают, разрешено ли пользователю выполнять все, что он просит сделать. Вам нужно иметь достаточную информацию, хранящуюся на сервере, чтобы подтвердить, разрешено ли действие, которое пользователь собирается сделать, или нет. Вы не можете просто доверять информации в URL-адресе, потому что любой может вмешаться в нее.

Как это сделать конкретно в вашем случае не ясно, поскольку у меня нет конкретной идеи, что должно там происходить.

+1

Я боюсь, что это связано с вопросом 6 часов назад ([используя Stripe] (http://stackoverflow.com)/вопросы/22481482/нашивка-шлюз-лог-оленья кожа шоу-сумма)). Мне не понравилось бы платить на веб-сайте, который должен был создать код, который был только безопасным, потому что «я не мог изменить параметр GET». – h2ooooooo

0

Вы можете проверить, является ли val целым числом и если val существует в базе данных. Я использую функцию, как следующее, чтобы проверить целое число:

// CHECK IF VALID INTEGER 
function valid_integer($str) 
{ 
    if (strlen($str) == strlen(preg_replace('#[^0-9]#i', '', $str) + 0) AND $str > 0 AND $str < 9999999999999) 
    { 
     return true; 
    } 
} 

так, то я могу проверить, как Вэла следующих

if (valid_integer($_GET['val'])) 
{ 
    echo 'valid int'; 
} 
    else 
    { 
     echo 'not valid int'; 
    } 

Затем вы должны проверить, если вал существует в базе данных. Если вы используете db.

Смежные вопросы