Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Проверка URL сайта

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2

Открыть новую тему     Написать ответ в эту тему

Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот у меня есть страницы для сайта...
в виде: http://sites.ru/index?page=2
если page <= 1 кидает на главную страницу.
также если page= тоже кидает на главную страницу.
 
Как сделать проверку, если например URL в виде: http://sites.ru/index?page=15&pp=5
приставка &pp=5 дописана пользователем.
то перекидывало на http://sites.ru/index?page=15 уже без &pp=5
 
и как сделать, если URL в виде: http://sites.ru/index?ppp=331 (ppp=331 - могут быть любыми... это вписано пользователем) то тоже кидало на главную страницу...
тоесть любая приставка к index.php кроме page и type, перекидало на другую страницу.

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 20:16 23-04-2012 | Исправлено: Sutar, 20:17 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
о каком скриптовом языке речь идет вообще?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:19 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PHP)

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 20:37 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
ну и?  
результат вывода
print_r($_GET);
вам все подскажет.
 
проще всего  

Код:
if (count($_GET)>1 || !isset($_GET['page']))
{
$url = isset($_GET['page']) ? ('/index?page=' . $_GET['page']) : '/';
header('Location: ' . $url);
exit;
}
 


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:41 23-04-2012 | Исправлено: Cheery, 20:41 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
ошибка в том, что если запустить просто index.php - Тоже перекидывает...
 
вот попробовал:
 

Код:
 
if (count($_GET) > 1 and count($_GET) != $_GET["page"] || !isset($_GET['page']))  
{
echo "<script>document.location.href='/bans1'</script>";
}
 

 
и не работает(
нужно типо такого:
если URL > 1 и там нету $_GET["page"] то кидает на главную.
если URL > 1 и там есть $_GET["page"] и что-то другое... кидает на http://sites.ru/index?page=%N

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:12 23-04-2012 | Исправлено: Sutar, 21:15 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
ошибка в том, что если запустить просто index.php - Тоже перекидывает...


Код:
if (count($_GET)>1 || (!isset($_GET['page']) && !empty($_GET)))  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:15 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
работает на 100%, большое спасибо.
что значит? count($_GET)>1 типо дополнительной строки больше 1?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:18 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
типо дополнительной строки больше 1?

если GET параметров больше одного


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:18 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
а символ || в строке if, это заменяет "или"? и && заменяет "и"
например:
 

Код:
if ($i > $s || !$i && $s)  
...

 
у нас будет так:
если $i больше $s или $i и $s не существует, выполняется функция... так?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:21 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
а символ || в строке if, это заменяет "или"? и && заменяет "и"  

может просмотрите учебник по PHP?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:23 23-04-2012 | Исправлено: Cheery, 21:32 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
ну просто у меня в програмирование малых програм, идет так, как я вам писал...
что || = или а && = и.
в PHP так-же всё отображается?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:27 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
что || = или а && = и.  

ну и правильно "идет"..
http://www.softtime.ru/bookphp/gl1_6.php
http://www.php.su/learnphp/operators/?logical
 

Цитата:
в PHP так-же всё отображается?

я не понимаю вашего вопроса.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:30 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
спасибо за ссылки.
 
вот ваш скрипт:

Код:
if (count($_GET)>1 || (!isset($_GET['page']) && !empty($_GET)))

В первом у нас совпало, $_GET > 1 тоесть идет URL к примеру:
http://site/index?page=2 $_GET = ?page... тоесть он у нас больше 1
тогда почему когда я смотрю такой вид, меня не перемещает на главную? а перемещает только тогда, когда count($_GET)>1 и не равен $_GET['page'] хотя у нас нет там проверки...
что-то не понимаю такой логики(

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:35 23-04-2012 | Исправлено: Sutar, 21:48 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
В первом у нас совпало, $_GET > 1 тоесть идет URL к примеру:

я же сказал - посмотрите на вывод  
print_r($_GET);  
и все станет ясно.
в первом случае у вас только один элемент в массиве $_GET, его значение не волнует

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:38 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
всё, спасибо) понял)
я думал если больше одного элемента, а там идет по складам, тоесть если больше одного склада)
а что значит "!empty($_GET)"?

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:43 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar
www.php.net/empty
то, что есть непустой массив. то есть есть хотя бы один GET аргумент.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:45 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
всё, большое спасибо)
теперь понимаю работу данной функции)
 
можете помочь, поменять URL вид?
например у меня: http://site/index.php?page=2 чтоб был вид: http://site/page=2 а принцип - тот-же

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:48 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
например у меня: http://site/index.php?page=2 чтоб был вид: http://site/page=2 а принцип - тот-же

http://httpd.apache.org/docs/2.0/mod/mod_dir.html#directoryindex
index.htm vs index.html
прописываете туда index.php и все, по умолчанию этот файл будет первым из папки открываться

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:49 23-04-2012 | Исправлено: Cheery, 21:50 23-04-2012
Sutar



BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
нет не так,
у меня есть ссылка такая: http://site/index?page=2 а нужно сделать её вид: http://site/page=2
тоесть приставка index.php? - скрывалась)

Всего записей: 1150 | Зарегистр. 15-08-2011 | Отправлено: 21:53 23-04-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sutar

Цитата:
нет не так

что не так? я вам написал, что нужно делать.
ну и тут тогда будет  

Код:
$url = isset($_GET['page']) ? ('/?page=' . $_GET['page']) : '/';  

 

Цитата:
тоесть приставка index.php? - скрывалась)

вопрос нельзя скрыть, потому что иначе нельзя использовать знак = в URL
 
можно сделать, к примеру, /page/5
но за этим сюда
mod_rewrite: документация, готовые решения, вопросы

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:54 23-04-2012 | Исправлено: Cheery, 21:58 23-04-2012
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2

Компьютерный форум Ru.Board » Интернет » Web-программирование » Проверка URL сайта


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru