ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

22.02.2009, 17:05
|
|
Участник форума
Регистрация: 09.03.2008
Сообщений: 193
Провел на форуме: 2140897
Репутация:
267
|
|
|
|
|

22.02.2009, 18:22
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
Сообщение от -m0rgan-
Вот еще появился вопрос по этому скрипту:
Редириктить то оно редириктит, но не при всех не правильных значениях...
Мне нужно, чтобы параперт id принимал только числовые значения, при подстановке каких либо символов он редиректил...
в даный момент редириктин при таком запросе:
http://localhost/news.php?id=-25
а при http://localhost/news.php?id=25'
страница остается в прежнем состояие...
можно ли сделать так, чтобы при определенных значениях id редиректило?
вот несколько конкретных решений:
№1 тут я просто $id прописал если надо другое сам пропишеш $_post['id'] или $_get['id']
PHP код:
if (isset($id) && is_numeric($id)){
//обрабатываеш числовое ID вот такое: http://localhost/news.php?id=25' здесь уже не пройдет
}
else {
exit('hello!');// если ID не числовое
}
№2 вместо(вместе c) is_numeric можно использовать регулярку
PHP код:
if (isset($id) && is_numeric($id) && preg_match("/^[0-9]+$/i",$id)) {
//обрабатываеш числовое ID вот такое: http://localhost/news.php?id=25' здесь уже не пройдет
}
else {
exit('hello!');// если ID не числовое
}
№3 совсем конкретизируем второй вариант:
PHP код:
if (isset($id) && is_numeric($id) && preg_match("/^[0-9]+$/i",$id)) {
//обрабатываеш числовое ID вот такое: http://localhost/news.php?id=25' здесь уже не пройдет
switch ((integer)$id){
case 1: //если ИД = 1
echo "строка один<br>";
//еще что то делаеш
echo "строка два и т.д.";
break;
case 4: //если ИД = 4
echo "4 строка один<br>";
//еще что то делаеш
echo "4 строка два и т.д.";
break;
default: //если id не равно одному из вушеперечисленных значений
Echo"ID is not correct;";
break;
}
}
else {
exit('hello!');// если ID не числовое
}
|
|
|

22.02.2009, 18:32
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
KIR@PRO Омг, а еще более извращенно слабо? Можно разбить еще строку на составляющие, а потом каждый знак сравнивать - число это или нет.
-m0rgan-
PHP код:
error_reporting(0);
include"config.php";
$id=intval($_GET['id'])>0 ? intval($_GET['id']) : 0; // Вся соль тут)
if($id) {
echo $news;
$query = "SELECT * FROM news where `id`='".$id."'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
цикл...
endwhile;
} else {header('Location: heck.php');}
Последний раз редактировалось Gifts; 22.02.2009 в 18:40..
|
|
|

22.02.2009, 18:42
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
KIR@PRO Омг, а еще более извращенно слабо? Можно разбить еще строку на составляющие, а потом каждый знак сравнивать - число это или нет
я привел ему пару примеров простой средний и 100500% безопасный вариант
p.s. приходится так изощьряться потомучто нет 100% уверенности в том, что в функциях isset(), is_numeric(), preg_match() нет приватных уязвимостей... поэтому я добавил switch
|
|
|

22.02.2009, 18:58
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
Сообщение от Gifts
KIR@PRO Омг, а еще более извращенно слабо? Можно разбить еще строку на составляющие, а потом каждый знак сравнивать - число это или нет.
-m0rgan-
PHP код:
error_reporting(0);
include"config.php";
$id=intval($_GET['id'])>0 ? intval($_GET['id']) : 0; // Вся соль тут)
if($id) {
echo $news;
$query = "SELECT * FROM news where `id`='".$id."'";
$result = mysql_query($query);
while ($row = mysql_fetch_array($result)) :
цикл...
endwhile;
} else {header('Location: heck.php');}
хм странно но почему то при ?id=3 и вообще ?id=(ТОЛЬКО ЧИСЛО) все время редиректит, но когда не число тоже редиректит) ищи ошибку....
вообще не пойму смысла вот этого: ? intval($_GET['id']) : 0
intval() если id не число всеравно вернет 0
Последний раз редактировалось KIR@PRO; 22.02.2009 в 19:05..
|
|
|

22.02.2009, 19:04
|
|
Участник форума
Регистрация: 15.05.2008
Сообщений: 166
Провел на форуме: 2591223
Репутация:
128
|
|
Вопросец,какая функция в пхп отвечает за сохранение определенного файла на сервер?(допустим,я подставляю ссылку в запрос,и скрипт сохраняет содержимое ссылке ко мне на винт)
|
|
|

22.02.2009, 19:07
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 335
Провел на форуме: 1487377
Репутация:
392
|
|
Прочитай про fopen fwrite file_get_contents
|
|
|

22.02.2009, 19:08
|
|
Постоянный
Регистрация: 26.12.2007
Сообщений: 353
Провел на форуме: 905389
Репутация:
332
|
|
Сообщение от fatalo
Вопросец,какая функция в пхп отвечает за сохранение определенного файла на сервер?(допустим,я подставляю ссылку в запрос,и скрипт сохраняет содержимое ссылке ко мне на винт)
ты как то запутался в одном предложении тебе на винт сервера сохранить надо или всетаки всоего компа(клиента)??
|
|
|

22.02.2009, 19:13
|
|
Познающий
Регистрация: 14.02.2009
Сообщений: 45
Провел на форуме: 96296
Репутация:
74
|
|
KIR@PRO, а если его винт и есть сервер.
|
|
|

22.02.2009, 19:25
|
|
Участник форума
Регистрация: 15.05.2008
Сообщений: 166
Провел на форуме: 2591223
Репутация:
128
|
|
[JavaScript],ты прав.
А вот я что-то туплю.
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|