С нами с 28.07.07
Сообщения: 425
Рейтинг: 375
|
Добавлено: 06/06/11 в 23:17 |
Нужна помощь по скрипту
скрипт получает входящий параметр ид, делает запрос к базе, и посылает юзера по ссылке
получается
1. через мод реврите получаем ссылку /POST/id33-title.html
2. эта ссылка ведет на out.php?id=33
3. потом с помощью location :url посылаем юзера на трейд скрипт оут по ссылке
вопрос как сделать это с минимальной нагрузкой на сервер?
|
|
|
|
Чингачгук, вождь красноглазых
С нами с 14.05.04
Сообщения: 4744
Рейтинг: 1824
|
Добавлено: 06/06/11 в 23:28 |
Ну во-первых, не лезть на каждый запрос к базе, если есть возможность достать из кэша (тот же memcached) - достать оттуда.
Во-вторых - убрать все правила из .htaccess и записать их в конфиги апача. Отключить .htaccess полностью, директивой AllowOverride none. Это уже для перфекционистов.
|
|
|
|
С нами с 23.06.11
Сообщения: 41
Рейтинг: 7
|
Добавлено: 24/06/11 в 15:09 |
Ничего не понял Куча терминов и в результате каша...
Начало вопроса еще понятно, но Не вижу ничего сложного.
/*Подключаемяс к базе*/
$q = mysql_connect ("localhost","ЛОГИН","ПАРОЛЬ");
mysql_select_db("ИМЯ БАЗЫ",$q);
/*Проверяем наличие id по GET если получено присваиваем его переменной $id*/
if (isset($_GET['id'])) {
$id = $_GET['id'];
/*Запрашиваем LINK из таблицы links где id = нашей переменной $id*/
$rezult = mysql_query("select link from links WHERE id = '$id'");
/*Проверяем наличие данных по полученному ID*/
if($link_ar = mysql_fetch_array($rezult)){
/*Если данные есть Создаем новую переменную и заносим в нее то что получили из базы*/
$link_uzer = $link_ar['link'];
/*Отправляем Юзера по полученной ссылке*/
echo ("<script>window.location.assign('".$link_uzer."')</script> ");
}else{
/*Любой код при ошибочном параметре id по GET или отсутствии данных в базе*/
echo "Ошибочный параметр";
};
}else{
/*Любой код при отсутствии нужного параметра по GET*/
echo "Параметр не получен";
};
Я бы был уверен что можно сделать так если бы не путаница дальше в вопросе...
Получаем ссылку /POST/id33-title.html Эта ссылка ведет на out.php?id=33
|
|
...тут и сказочке Esc, кто не понял F1)
|
5
|
|
|
С нами с 06.03.03
Сообщения: 1650
Рейтинг: 1096
|
Добавлено: 26/06/11 в 09:07 |
PvCont: у тебя тут SQL инъекция
|
|
|
|
С нами с 23.06.11
Сообщения: 41
Рейтинг: 7
|
Добавлено: 26/06/11 в 11:05 |
webboxxx писал: | PvCont: у тебя тут SQL инъекция |
Ну я не думаю что даже в таком виде это может быть опасным. Подключение к базе можно в инклюд засунуть А переменную ID прогнать через все возможные функции и проверки вплоть до регулярных выражений). Не расписывать же все здесь
|
|
...тут и сказочке Esc, кто не понял F1)
|
0
|
|
|
С нами с 24.06.10
Сообщения: 2686
Рейтинг: 543
|
Добавлено: 26/06/11 в 19:09 |
Цитата: | Ну я не думаю что даже в таком виде это может быть опасным. |
бро, очень даже может) Тебе никогда не приходилось видеть шеллы залитые из-за отсутствия фильтрации http_referer ?
по сабжу: без кэша (тот же memcached) это писец
|
|
|
|
С нами с 28.07.07
Сообщения: 425
Рейтинг: 375
|
Добавлено: 27/06/11 в 13:28 |
Видел на одном блге где-то сравнение классов..там было написано что PDO_MySQL самый лучший вариант по времени выполнение и по безопасности. Правда ли это?
а чем вариант
echo ("<script>window.location.assign('".$link_uzer."')</script> ");
отличается от варианта
header("Location: $url");
|
|
|
|
www.phpdevs.com
С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105
|
Добавлено: 27/06/11 в 18:09 |
mr. snatch писал: | по сабжу: без кэша (тот же memcached) это писец |
А чего писец то ? Лям трафа на дохлом дедикейте такая схема разрулит запросто. Или мало ?
Просто тут ничего не ясно ни с числом ссылок, ни с проверками, которые в базе происходят.
|
|
Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.
|
0
|
|
|
С нами с 23.06.11
Сообщения: 41
Рейтинг: 7
|
Добавлено: 27/06/11 в 20:25 |
Я не совсем понимаю Это что я что ли тему открыл?
Человек спросил я ответил.
Если у кого есть другие варианты может выложить.
А то только умными словами кидаться мастера, а на деле то что?
|
|
...тут и сказочке Esc, кто не понял F1)
|
0
|
|
|
С нами с 21.06.05
Сообщения: 1788
Рейтинг: 1579
|
Добавлено: 28/06/11 в 14:47 |
PvCont писал: | Если у кого есть другие варианты может выложить. |
Код: | <?php
$links = unserialize(file_get_contents('links'));
if (isset($_GET['id']) && !empty($_GET['id']) && isset($links[$_GET['id']])) {
header('Location: ' . $links[$_GET['id']]);
} else {
header('Location: ' . $links['default']);
} |
|
|
|
|