Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   [php] Новичкам: задаем вопросы (https://forum.antichat.xyz/showthread.php?t=40896)

Shadow_p1raT 22.02.2009 17:05

добавь после даты
PHP код:

$_SERVER['HTTP_REFERER'


KIR@PRO 22.02.2009 18:22

Цитата:

Сообщение от -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 не числовое



Gifts 22.02.2009 18:32

KIR@PRO Омг, а еще более извращенно слабо? Можно разбить еще строку на составляющие, а потом каждый знак сравнивать - число это или нет.

-m0rgan-

PHP код:

error_reporting(0);
include
"config.php";
$id=intval($_GET['id'])>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');} 


KIR@PRO 22.02.2009 18:42

Цитата:

KIR@PRO Омг, а еще более извращенно слабо? Можно разбить еще строку на составляющие, а потом каждый знак сравнивать - число это или нет
я привел ему пару примеров простой средний и 100500% безопасный вариант


p.s. приходится так изощьряться потомучто нет 100% уверенности в том, что в функциях isset(), is_numeric(), preg_match() нет приватных уязвимостей... поэтому я добавил switch

KIR@PRO 22.02.2009 18:58

Цитата:

Сообщение от Gifts
KIR@PRO Омг, а еще более извращенно слабо? Можно разбить еще строку на составляющие, а потом каждый знак сравнивать - число это или нет.

-m0rgan-

PHP код:

error_reporting(0);
include
"config.php";
$id=intval($_GET['id'])>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

fatalo 22.02.2009 19:04

Вопросец,какая функция в пхп отвечает за сохранение определенного файла на сервер?(допустим,я подставляю ссылку в запрос,и скрипт сохраняет содержимое ссылке ко мне на винт)

Zedi 22.02.2009 19:07

Прочитай про fopen fwrite file_get_contents

KIR@PRO 22.02.2009 19:08

Цитата:

Сообщение от fatalo
Вопросец,какая функция в пхп отвечает за сохранение определенного файла на сервер?(допустим,я подставляю ссылку в запрос,и скрипт сохраняет содержимое ссылке ко мне на винт)

ты как то запутался в одном предложении тебе на винт сервера сохранить надо или всетаки всоего компа(клиента)??

[JavaScript] 22.02.2009 19:13

KIR@PRO, а если его винт и есть сервер.

fatalo 22.02.2009 19:25

[JavaScript],ты прав.
А вот я что-то туплю.


Время: 06:09