Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Ошибка в PHP-скрипте, помогите исправить

Обсуждение темы Ошибка в PHP-скрипте, помогите исправить в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Проблема собственно вот в чем ставлю скрипт на cron выдает ошибку Цитата: Warning: Invalid argument supplied for foreach() in .../engine/cron_autoseo.php on line 45 ...


Закрытая тема
 
Опции темы
Старый 22.06.2011, 11:03   #1
Проблема собственно вот в чем ставлю скрипт на cron выдает ошибку
Цитата:
Warning: Invalid argument supplied for foreach() in .../engine/cron_autoseo.php on line 45
PHP код:
@session_start ();

define 'DATALIFEENGINE'true );          
define 'ROOT_DIR''..' );
define 'ENGINE_DIR'ROOT_DIR '/engine' );

@
error_reporting E_ALL E_NOTICE );
@
ini_set 'display_errors'true );
@
ini_set 'html_errors'false );
@
ini_set 'error_reporting'E_ALL E_NOTICE );

require 
ENGINE_DIR '/data/config.php';

if (
$config['http_home_url'] == ""){ 
    
$config['http_home_url'] = explode "engine/cron_autoseo.php"$_SERVER['PHP_SELF'] );
    
$config['http_home_url'] = reset $config['http_home_url'] );
    
$config['http_home_url'] = "http://" $_SERVER['HTTP_HOST'] . $config['http_home_url'];
}
require_once 
ENGINE_DIR '/classes/mysql.php';
require_once 
ENGINE_DIR '/data/dbconfig.php';            

$db->query("SELECT key_id FROM ".PREFIX."_autoseo_block_link");
while(
$row $db->get_row()){   
    
$lnkId[$row['key_id']] = $row['key_id'];    
}

$db->query("SELECT key_id FROM ".PREFIX."_autoseo_contekst");
while(
$row $db->get_row()){ 
    
$lnkId[$row['key_id']] = $row['key_id'];    
}
foreach(
$lnkId as $name){
    if(!
$where$where " WHERE (id != '{$name}' AND url_page != '')"; else $where .= " AND (id != '{$name}' AND url_page != '')";
}
//echo $where;

$db->query("SELECT * FROM ".PREFIX."_autoseo_keywords {$where} LIMIT 0, 1");
$row $db->get_row();

if(
$row['id']) doSetLinks($row['keyword'], $row['id'], $row['url_page']);

$db->free();




function 
doSetLinks($keyword$keyId$keyURLPage){  
    global 
$config;
    global 
$db;                                                                                      
    
$blockLinkCount 0;
    
$contekstLinkCount 0;
    
//------------ Установка ссылок в текстах -------------------------
    
$db->query("SELECT id FROM ".PREFIX."_post WHERE short_story LIKE '%{$keyword}%' OR full_story LIKE '%{$keyword}%'");
    while(
$row $db->get_row()){
        if(!
$links$links "('{$row['id']}', NULL, '{$keyId}')"; else $links .= ", ('{$row['id']}', NULL, '{$keyId}')";
        
$contekstLinkCount++; 
    }
    
$db->free();

    
$db->query("SELECT id FROM ".PREFIX."_static WHERE template LIKE '%{$keyword}%'");
    while(
$row $db->get_row()){
        if(!
$links$links "(NULL, '{$row['id']}', '{$keyId}')"; else $links .= ", (NULL, '{$row['id']}', '{$keyId}')"
    }
    
$db->free();
        
    if(
$links$db->query("INSERT IGNORE INTO ".PREFIX."_autoseo_contekst (post_id, static_id, key_id) VALUES ".$links);
//------------ Установка ссылок в блоках -----------------------------------------   
    
unset($links); 
    
$text iconv('WINDOWS-1251','UTF-8'"http://yandex.ru/yandsearch?text={$keyword}&site={$config['http_home_url']}&mime=all");     
    
$yandex file_get_contents($text);       
    
preg_match_all('|<a tabindex="([0-9]*)" onmousedown=(.*)href="(.*)" target="_blank">|Uis'$yandex$elements); 
    unset(
$links);
    
$blockCount 0;
    if(
count($elements[3])){
        foreach(
$elements[3] as $name => $value){
            if(
$value != $elements[3][0]){
                if(!
$links$links "('{$keyId}', '{$value}')"; else $links .= ", ('{$keyId}', '{$value}')";
                
$blockLinkCount $name
            }                       
        }        
    } 
    if(
$links$db->query("INSERT IGNORE INTO ".PREFIX."_autoseo_block_link (key_id, url_page) VALUES ".$links);

if(
$blockLinkCount == and $contekstLinkCount == 0){
   
// $db->query("DELETE FROM ".PREFIX."_autoseo_keywords WHERE id='{$keyId}'");
    
echo "К ключу <b>{$keyword}</b> не удалось подобрать релевантные странички для размещения ссылок.";    
}else{
    echo 
"Ключ <b>{$keyword}</b> обработан.<br>Было размещено <b>{$contekstLinkCount}</b> контекстных ссылок и <b>{$blockLinkCount}</b> ссылок в блоках"
}                                                      
}
?> 
 
Старый 22.06.2011, 11:03
Ссылки
Старый 22.06.2011, 12:07   #2
вы не тот код чтоли выложили? в 45 строке нет foreach, а вообще - перед этой foreach сделайте print_r() того элемента, который является атрибутом в форич и посмотрите действительно ли он корректный для перебора.
 
Старый 22.06.2011, 13:34   #3
Ошибочка вышла ошибка на 32 строке. Там в начале просто коментарии были я их не стал здесь писать
а строка вот эта foreach($lnkId as $name){
 
Старый 22.06.2011, 14:24   #4
после строки $db->query("SELECT key_id FROM ".PREFIX."_autoseo_block_link"); вставьте
$lnkId = array();
 
Старый 23.06.2011, 04:44   #5
Цитата:
Сообщение от redreem Посмотреть сообщение
после строки $db->query("SELECT key_id FROM ".PREFIX."_autoseo_block_link"); вставьте
$lnkId = array();
Спасибо помогло, ошибки нет, но скрипт не работает.
Может кто то пользовался модулем AUTOSEO 2.0 для DLE
 
Старый 23.06.2011, 10:16   #6
Dead_Angel спроси 74ivan74 - он дле копает.
 
Старый 24.06.2011, 00:39   #7
Нет, я модулями, хаками и прочей *уйней стараюсь вообще не пользоваться, по опыту, это все дерьмо, в лучшем случае не принесет пользы, в худшем, заразит сайт.
Сейчас 9,3 версия вполне себе нормальная, зачем доп сео не знаю.
 
Старый 24.06.2011, 00:39
Закрытая тема


Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Недочёты в скрипте - помогите исправить 00110085 Технологии Flash 11 20.05.2012 16:15
ошибка в скрипте помогите snif Технологии Flash 3 28.07.2011 20:58
Некорректно работает код. Помогите исправить! denicko HTML, CSS, JavaScript 5 20.10.2010 16:06
Ошибка в скрипте K@pUsTa ASP, Perl, PHP и MySQL 2 27.10.2007 21:08
Помогите исправить глюк bumbarashka HTML, CSS, JavaScript 0 29.01.2007 00:48


Текущее время: 09:26. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Тарифный план «Lite»
Место: 1000 Мб
Трафик: неограниченный
Панель управления
Заказать ТП «Lite»
Тарифный план «Normal»
Место: 2000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Normal»
Тарифный план «Profy»
Место: 7000 Мб
Трафик: неограниченный
Поддержка скриптов
Заказать ТП «Profy»
Тарифный план «Места хватит!»
Место: 25 ГБ
Трафик: неограниченный
Поддержка SSI, ssh
Заказать ТП «Места хватит!»
Дизайнерский форум