Jump to content
  • 0

Помогите с PHP скриптом


camperofcamper
 Share

Question

Здравствуйте,

Собственно задача: на сайте есть кнопка "Сделать стартовой страницей", при нажатии на которую пользователь отправляется на страницу с инструкцией "как сделать сайт стартовой страницей". Для каждого браузера своя страница.

Сейчас есть такой код:

<?php 
if ( stristr($_SERVER['HTTP_USER_AGENT'], 'Firefox') ) $browser='firefox';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Chrome') ) $browser='chrome';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Safari') ) $browser='safari';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'Opera') ) $browser='opera';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 6.0') ) $browser='ie6';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 7.0') ) $browser='ie7';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 8.0') ) $browser='ie8';
elseif ( stristr($_SERVER['HTTP_USER_AGENT'], 'MSIE 9.0') ) $browser='ie9';?>

Вопрос: необходимо создать файл-обработчик, который в зависимости то значения переменной browser перенаправлял юзера на определенную страницу. Как это реализовать? :)

Link to comment
Share on other sites

19 answers to this question

Recommended Posts

  • 0

1. функция stristr() возвращает подстроку, и когда нужно только определить имеется ли искомая подстрока в строке, то лучше использовать strpos() которая работает быстрее и жрёт меньше памяти;

2. "гуляние" по ассоциативному массиву в поисках ключа - удоволствие не из самых дешёвых, поэтому лучше один раз считать значение нужного ключа в переменную, а потом хоть 1000 раз уже искать в переменной, а не где то там в массиве;

3. я вот как-то не интересовался бывает ли 'MSIE 6.5' или если выйдет 'MSIE 10.0' то номер с IE не прокатит;

4. так же браузеры любят притворяться друг-другом чтоб заполучить то что им не положено (статейка на эту тему);

Link to comment
Share on other sites

  • 0

1. функция stristr() возвращает подстроку, и когда нужно только определить имеется ли искомая подстрока в строке, то лучше использовать strpos() которая работает быстрее и жрёт меньше памяти;

2. "гуляние" по ассоциативному массиву в поисках ключа - удоволствие не из самых дешёвых, поэтому лучше один раз считать значение нужного ключа в переменную, а потом хоть 1000 раз уже искать в переменной, а не где то там в массиве;

3. я вот как-то не интересовался бывает ли 'MSIE 6.5' или если выйдет 'MSIE 10.0' то номер с IE не прокатит;

4. так же браузеры любят притворяться друг-другом чтоб заполучить то что им не положено (статейка на эту тему);

Спасибо, но я уже решил проблему другим способом :)

Link to comment
Share on other sites

  • 0

Хочу предложить более правильнуя функция определния браузера

function gerUserBrowser($param = 'both', $separator = ' ') {
$agent = $_SERVER['HTTP_USER_AGENT'];
preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info);
list(, $browser, $version) = $browser_info;
if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera))
return 'Opera ' . $opera[1];
if ($browser == 'MSIE') {
preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie);
if ($ie)
return $ie[1] . ' based on IE ' . $version;
return 'IE ' . $version;
}
if ($browser == 'Firefox') {
preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff);
if ($ff)
return $ff[1] . ' ' . $ff[2];
}
if ($browser == 'Opera' && $version == '9.80')
return 'Opera ' . substr($agent, -5);
if ($browser == 'Version')
return 'Safari ' . $version;
if (!$browser && strpos($agent, 'Gecko'))
return 'Browser based on Gecko';
switch ($param) {
case "browser":
$result = $browser;
break;
case "version":
$result = $version;
break;
default:
$result = $browser . strip_tags($separator) . $version;
}
return $result;
}

но если честно, вопрос не понятный :) зачем создавать файл когда можно создать просто простое перенаправление ну или на крайний случай функцию...

Но больше удивляет то, что человек хочет.... camperofcamper, ты из какого века ;) Такие вещи уже давно никто не делает. Во-первых, это очень плохой вкус. Во-вторых, посещаемость сайта ты никогда не увеличишь если заставишь пользователя сделать его стартовым. Скорее всего наоборот, он больше никогда к тебе не попадёт. Ну и в-третьих, коль это "еврейский вопрос", любое желание должно иметь реальные цели :)

Хотя есть и в-четвёртых... Просто тренировка мозгов.. Вот именно ради этого и можно поразмышлять ;)

Edited by Gold Dragon
Link to comment
Share on other sites

  • 0

но если честно, вопрос не понятный :) зачем создавать файл когда можно создать просто простое перенаправление ну или на крайний случай функцию...

Но больше удивляет то, что человек хочет.... camperofcamper, ты из какого века ;) Такие вещи уже давно никто не делает. Во-первых, это очень плохой вкус. Во-вторых, посещаемость сайта ты никогда не увеличишь если заставишь пользователя сделать его стартовым. Скорее всего наоборот, он больше никогда к тебе не попадёт. Ну и в-третьих, коль это "еврейский вопрос", любое желание должно иметь реальные цели :)

Хотя есть и в-четвёртых... Просто тренировка мозгов.. Вот именно ради этого и можно поразмышлять ;)

А кто говорил, что у меня плохой вкус? На свои СДЛ (сайты для людей) я никогда этого не поставлю, а вот на сайты для заработка, пожалуйста. И вот почему: в последнее время Яша "палит" сайты для заработка и банит, безжалостно банит, не позволяя честным веб-мастерам зарабатывать $ :D Причина бана - в основном отсутствие "человеческого лица" у сайта. А что может быть человечнее такой фичи?

Хотя это все-таки другая тема, не относящаяся к программированию...

Link to comment
Share on other sites

  • 0

А что может быть человечнее такой фичи?

К правилам хороших манер относится то, что настройками браузера у клиента должен руководить клиент, а не сайт. Так что ничего тут человечного нет ;)

Link to comment
Share on other sites

  • 0

К правилам хороших манер относится то, что настройками браузера у клиента должен руководить клиент, а не сайт. Так что ничего тут человечного нет ;)

Так я же не устанавливаю автоматическую установку домашней страницы! Просто есть кнопка "Сделать домашней страницей", пользователь нажимает на нее, переходит на страницу, где в зависимости от User Agenta ему выдается инструкция, как сделать сайт стартовой и если пользователь захочет, то он делает сайт стартовой

Link to comment
Share on other sites

  • 0

Вот за это яндекс точно забанит — для ПС один контент, а для пользователей другой.

:facepalmxd:http://help.yandex.ru/start/

То есть Яндекс сам себя забанит за клоакинг?

Edited by camperofcamper
Link to comment
Share on other sites

  • 0

Вот за это яндекс точно забанит — для ПС один контент, а для пользователей другой.

:facepalmxd:http://help.yandex.ru/start/

То есть Яндекс сам себя забанит за клоакинг?

Яндекс эту страницу предоставляет всем одинаковую, а не в зависимости от того как агент представится, Ну и яндекс сам себя не забанит, ибо он сам себя не сканирует.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy