• Как сделать, чтобы во второй GET запрос попадал id новости?

    WooDFox
    @WooDFox
    $query = mysql_query("SELECT * FROM news WHERE id='".$row['id']."'");
    Где вы собираетесь $row искать?
    Что-то мне подсказывает, что там должно быть $param[2], а если нет - то:

    Думаю, тут либо недостаточно кода для поиска ошибки, либо в логах вы найдете ошибку о несуществующей переменной (точнее, несуществующем индексе "id").
    Ответ написан
    Комментировать
  • Как парсить яндекс чтобы не забанил?

    WooDFox
    @WooDFox
    Я, для подобного рода задачи (скан нескольких ресурсов с объявлениями), написал парсер проксей, в который накидал ссылок на разнообразные сервисы со списками проксей, соббсно.
    Общая логика такова:
    1. Раз в пять минут обходим все ресурсы, собираем адреса и кладем в базу.
    2. Другой скрипт их постепенно чекает на анонимность, локэйшн и латенцию. Хорошие добавляем в другую таблицу, плохие помечаем как неподходяще (неанонимно/не подходит страна) и повисшие. Повисшие потом можно еще раз проверить.
    3. По "хорошей" таблице бегает еще один чекер, который проверяет не померли ли прокси.
    4. Ну и вот наш воркер, который берет прокси с минимальной латенцией и истользует их.
    Не забываем сделать ротацию проксей.
    Есть еще несколько деталей, но до них не сложно догадаться. В среднем постоянно имел около 40-60 прокси с минимальной задержкой. Банили довольно часто. Проблем не возникало.
    Ответ написан
    4 комментария
  • Как правильно посчитать время пользователя online?

    WooDFox
    @WooDFox
    Думаю, правильнее будет на стороне сервера хранить начало авторизации и при каждом действии пользователя фиксировать "конец". При выходе считать сессию завершенной. При отсутствии действий свыше n секунд - считать "концом" последнюю активность.
    Считать любые автоматические запросы активностью пользователя ИМХО неправильно.

    Однако, все очень зависит от конкретного случая - и таймауты и способ хранения (таки, текущий онлайн и/или общий). И даже учет автоматических запросов.
    Ответ написан
    6 комментариев
  • Как настроить Keepalived HA для MySQL кластера?

    WooDFox
    @WooDFox Автор вопроса
    Проблема решена.
    Решение пришло со стороны мануала и заключалось в том, что при DR на IPVS нельзя маппить порты.
    Чуть позже будет мануал по сборке такого конфига.
    Ответ написан
    Комментировать
  • Почему скорость загрузки страниц на поддомене ниже, чем на основном?

    WooDFox
    @WooDFox
    Замерьте время генерации страницы в старом и новом варианте. Еще можете замерить выполнение и обработку непосредственно запроса/группы запросов и сделайте вывод. Потом можно смотреть дальше)

    Замер можно сделать вот так
    Ответ написан
    Комментировать
  • Как найти ошибку из-за разницы php5.4 и php5.5?

    WooDFox
    @WooDFox
    Если вы используете rewrite, возможно на новом сервере не включен .htaccess? Самый простой способ проверки - добавьте какой-нить хлам (gfdhsrthr) в начало .htaccess. Если не получите 503 - правила не работают.
    Ответ написан
    Комментировать
  • Как реализовать передачу двух параметров ($id) на другую страницу?

    WooDFox
    @WooDFox
    <input type='checkbox' name='prod[]' value='$id' >
    <input type='checkbox' name='prod[]' value='$id' >


    // Получаем массив элементов
    $prod = $_POST['prod'];
    // $prod - это массив со всеми отмеченными элементами
    // Его можно обработать, например, так:
    foreach ($prod as $item) {
         echo $item;
    }


    Если вам обязательно надо получить два поля, надо изменять обработку в JS

    UPDATE: Source
    <?php
    			if (!empty($_POST['prod'])) {
    				// Получаем массив элементов
    				$prod = $_POST['prod'];
    				// $prod - это массив со всеми отмеченными элементами
    				// Его можно обработать, например, так:
    				echo 'Recieved: '.implode(', ', $prod).'<br />';
    				
    				exit();
    			}
    ?>
    
    <!DOCTYPE html>
    <html>
    	<head>
    		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
    	</head>
    	<body>
    		<form method="post" action="" onsubmit="send(this); return false;">
    			<input type='checkbox' name='prod[]' value='value1' /><br />
    			<input type='checkbox' name='prod[]' value='value2' /><br />
    			<input type='checkbox' name='prod[]' value='value3' /><br />
    			<input type='checkbox' name='prod[]' value='value4' /><br />
    			<br />
    			<input type="submit" value="Отправить" />
    		</form>
    		
    		<script src="http://code.jquery.com/jquery-1.11.1.min.js" type="text/javascript"></script>
    		<script>
    			function send (form) {
    				var count = $(form).find(':checked').length;
    				if (count == 2) {
    					var prods = $(form).serialize();
    					$.ajax({
    						type: "POST",
    						url: "toster.php",
    						data: prods,
    						success: function (html) { $("body").append(html); }
    					}); 
    				} else if (count > 2) {
    					alert('Много выделено');
    				} else {
    					alert('Мало выделено');
    				}
    			}
    		</script>
    	</body>
    </html>
    Ответ написан
    9 комментариев