|
|
|
|
|
для: RV
(30.03.2005 в 08:23)
| | Мистика... у меня выводится только
А больше "error function_url" у вас по коду нигде не выводится? Попробуйте изолировать функцию и закомментировать весь остальной код. | |
|
|
|
|
|
|
|
для: RV
(30.03.2005 в 08:23)
| | Кстати, а почему у strlen два параметра?
<?php
$len = strlen($str , $type);
?>
|
Один же должен быть? | |
|
|
|
|
|
|
|
для: cheops
(29.03.2005 в 22:43)
| |
<?
function check_url($str , $type)
{
$len = strlen($str , $type);
if (($type === "id") || ($type === "all") || ($type === "alf"))
{
switch ($type)
{
case 'id' :
if ((preg_match("/[^0-9]+/" , $str)) || ($len > 5 ))
{
$str = "error";
}
else
{
$str = $str;
}
break;
case 'all' :
if (preg_match("/[^a-z_0-9]+/i" , $str) || ($len > 20 ))
{
$str = "error";
}
else
{
$str = $str;
}
break;
case 'alf' :
if (preg_match("/[^a-z_]+/i" , $str) || ($len > 10 ))
{
$str = "error";
}
else
{
$str = $str;
}
break;
}
}
else die ('error function_url');
return $str;
}
$text = "t_t77t";
echo check_url($text , "all");
?>
|
выводит то что надо, работает как надо. копирую ее, потом добавляю кода
<?
$get_mod = $_GET['mod'];
echo $get_mod;
echo "</br>" . $HTTP_GET_VARS['mod'] . "</br>" ;
$get_mod = check_url($_GET['mod'], "all");
?>
|
выводит :
account
account
error function_url
при этом урл : http://localhost/greencoder.ru/index.php?mod=account.
если перейти на урл mod=links - отображает все ок:
links
links
This is links
а вот если перейти ?mod=manage , то выводит
manage
manage
далее идет нормальное отображение ссылки manage (т.е. как будто она работает)
а ниже error function_url.
зы. везде английские буквы | |
|
|
|
|
|
|
|
для: RV
(29.03.2005 в 17:44)
| | Хм... а буква "a" русская нигде в строках "all" и "alf" просочиться не может? | |
|
|
|
|
|
|
|
для: RV
(29.03.2005 в 10:24)
| | да и темболее как я понял срабатывает вот это:
<?
if (($type == "id") OR ($type == "alf") OR ($type == "all"))
{
..............
}
else die ('function check_url error');
?>
|
может я неправильно указываю что то?
$action = check_url($_GET['action'] , "all"); | |
|
|
|
|
|
|
|
для: isset
(29.03.2005 в 04:34)
| | непонял. если в слове есть ? или / то возвратится еррор, так как это не входит в промежуток a-z_0-9. а слово аккаунт входит в промежуток а-3_0-9, значит возвратится аккаунт а не еррор | |
|
|
|
|
|
|
|
для: RV
(29.03.2005 в 04:29)
| | а по вашему account не входит в промежуток a-z ?
Да еще совет, там где числа проверять лучше использовать is_numeric, хотя вроде он точку пропускает... | |
|
|
|
|
|
|
|
для: cheops
(28.03.2005 в 22:11)
| | почему? если в строке есть что то кроме a-z_0-9, то возвращается еррор, но при слове account должно возвращатся $str = $str | |
|
|
|
|
|
|
|
для: RV
(28.03.2005 в 15:38)
| | Хм... вообще говоря странно должна выполняться строка
так как
<?php
preg_match("/[^a-z_0-9]+/i" , $str)
?>
|
возвращает true... | |
|
|
|
|
|
|
|
для: RV
(28.03.2005 в 10:08)
| | или вот вроде все должно работать
<?
function check_url($str , $type)
{
$len = strlen($str , $type);
if ($type === "all")
{
if (preg_match("/[^a-z_0-9]+/i" , $str) OR ($len > 20 ))
{
$str = "error";
}
else
{
$str = $str;
}
}
else
{
die ('error url');
}
return $str;
}
?>
|
тоже самое.
$get_mod = check_url($_GET['mod'], "all");
$_GET['mod'] и $get_mod = account
выводит 'error url' | |
|
|
|
|