Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как сделать из ссылки переменную?
 
 автор: kis-kis   (20.06.2007 в 19:32)   письмо автору
 
 

Есть ссылку, допустим: http://сайт/cnt/RQk8y14YT4030BlyHtb6KTG3x05gKg82WWl AVjKyg

Как вырезать из нее все что идет после cnt и присвоить какой-нибудь переменной? Спасибо.

   
 
 автор: kasmanaft   (20.06.2007 в 20:42)   письмо автору
 
   для: kis-kis   (20.06.2007 в 19:32)
 

<?php
echo $var basename('http://сайт/cnt/RQk8y14YT4030BlyHtb6KTG3x05gKg82WWl AVjKyg');
?>

   
 
 автор: kis-kis   (21.06.2007 в 10:08)   письмо автору
 
   для: kasmanaft   (20.06.2007 в 20:42)
 

Это не будет зависеть от вида ссылки?

Может быть так http://сайт/cnt/RQk8y14YT4030BlyHtb6KTG3x05gKg82WWl AVjKyg
или так http://www.сайт/cnt/RQk8y14YT4030BlyHtb6KTG3x05gKg82WWl AVjKyg
Спасибо.

   
 
 автор: bronenos   (21.06.2007 в 10:28)   письмо автору
 
   для: kis-kis   (21.06.2007 в 10:08)
 

не будет

   
 
 автор: kis-kis   (21.06.2007 в 15:30)   письмо автору
 
   для: kasmanaft   (20.06.2007 в 20:42)
 


<?php
$var 
basename('$_SERVER["HTTP_REFERER"]'); 
?>


Подскажите, при таком коде какая часть будет вырезаться из рефера?

   
 
 автор: kasmanaft   (21.06.2007 в 15:32)   письмо автору
 
   для: kis-kis   (21.06.2007 в 15:30)
 

Так ничего не вырежется.. Уберите кавычки (крайние), тогда вырежется все после последнего "/" (если будет откуда вырезать... )

   
 
 автор: kis-kis   (21.06.2007 в 18:08)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 15:32)
 

Подскажите, может это тогда и не рефер нужен, вобщем при переходе по ссылке вида - http://сайт/cnt/6gyQEXStw0e30BlKY7f6KTG1x05h62, нужно при обработке в /cnt/index.php, из нее вырезать часть после последнего слеша? Как это сделать?
Спасибо.

   
 
 автор: bronenos   (21.06.2007 в 18:29)   письмо автору
 
   для: kis-kis   (21.06.2007 в 18:08)
 

$page = substr ($url, strrpos($url, '/'));

   
 
 автор: kasmanaft   (21.06.2007 в 19:02)   письмо автору
 
   для: kis-kis   (21.06.2007 в 18:08)
 

Если без слеша нужно, то можно воспользоваться basename(), если со слешем, можно поступить так, как показал bronenos (хотя для этого можно было бы использовать strrchr() ).

Пользователь у Вас переходит по ссылке http://сайт/cnt/6gyQEXStw0e30BlKY7f6KTG1x05h62 и попадает на /cnt/index.php ? Если так, то можно использовать REFERER (только помните, что его легко подделать. Если такая подделка может привести с чему-то нехорошему, то лучше сохранить предыдущий УРЛ в сессии)

   
 
 автор: kis-kis   (21.06.2007 в 19:58)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 19:02)
 

>>можно использовать REFERER
Но при клике по ссылке http://сайт/cnt/6gyQEXStw0e30BlKY7f6KTG1x05h62, например, со страницы - http://сайт/test.php - REFERER равен http://сайт/test.php.

   
 
 автор: kasmanaft   (21.06.2007 в 20:47)   письмо автору
 
   для: kis-kis   (21.06.2007 в 19:58)
 

Да, верно ... А каким образом кликнув на http://сайт/cnt/6gyQEXStw0e30BlKY7f6KTG1x05h62 пользователь попадает на /cnt/index.php ?
Ведь если это mod_rewrite, "6gyQEX...." должна куда-то сохраниться.. Тогда смысл ее доставать из реферера или откуда либо еще?

   
 
 автор: kis-kis   (21.06.2007 в 21:04)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 20:47)
 

А как тогда ее можно достать?

   
 
 автор: kasmanaft   (21.06.2007 в 21:30)   письмо автору
 
   для: kis-kis   (21.06.2007 в 21:04)
 

Ну если это mod_rewrite, пользователя перенаправят по другому адресу, а "6gyQEX...." будет обычной гет переменной (значением)

Что-то вроде
RewriteBase /
RewriteRule ^/cnt/(.*)$ /cnt/index.php?var=$1
(http://сайт/cnt/6gyQ.... -> http://сайт/cnt/index.php?var=6gyQ...)

Тогда "6gyQ..." будет лежать в $_GET['var']

   
 
 автор: kis-kis   (21.06.2007 в 22:32)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 21:30)
 

Если так, то в $_GET['var'] лежит index.php ((

   
 
 автор: kis-kis   (22.06.2007 в 16:43)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 21:30)
 

А как Вы считаете на Яндексе ссылки имеют вид - http://bs.yandex.ru/count/O6RgLdcY_B830Bjkn7j6KTG2x0DlH28oeNkIoiOiFQhU Vnh739r4PipLhdjsVa9z1000

Там скорее всего тоже они работают через mod_rewrite или нет?

   
 
 автор: kasmanaft   (22.06.2007 в 17:28)   письмо автору
 
   для: kis-kis   (22.06.2007 в 16:43)
 

Может быть.. кто их знает с чем они там работают :)

   
 
 автор: bronenos   (21.06.2007 в 21:51)   письмо автору
 
   для: kasmanaft   (21.06.2007 в 19:02)
 

strrchr()....... так вот для чего она )))

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования