Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Проблема на хостинге
Форумы портала PHP.SU » » Вопросы новичков » Проблема на хостинге

Страниц (2): [1] 2 »
 

1. Avrelio - 19 Октября, 2011 - 02:40:43 - перейти к сообщению
Для начала всем привет!))

У меня возникла очень большая проблема надеюсь на вашу помощь)
И так я использую движок dle 8.0 скачал с инет поставил туда модуль интернет магазина оформил дизайн переписал код чтоб все корректно работало ну и все и работало у меня на локалке (стоите денвер) ну все тип топ и пришло время перенести сайт на хостинг что я и зделол хостинг (hoster. ru)

Тут и начались мои проблемы корзина отказывается работать, и выдает ошибку
Warning: Invalid argument supplied for foreach() in /usr/home/35720/slad-no.ru/html/ engine/modules/shop.php on line 12
slad-no. ru - сайт так на всяк пожарный
вот сам shop.php
CODE (php):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. require_once "engine/modules/shop/conf/config.php";
  5. $tpl->load_template('shop.tpl');
  6. if($_SESSION['shop'])
  7. {
  8. $shop=unserialize($_SESSION['shop']);
  9. }
  10. if(count($shop)>0)
  11. {
  12. $total=0;
  13. foreach ($shop as $id => $count)
  14. {
  15. $query="SELECT title,price FROM ".PREFIX."_post WHERE id='$id'";
  16. $result=$db->query($query);
  17. $row=$db->get_array($result);
  18. $sum=sprintf("%01.2f",$row["price"]*$count);
  19. $total += $sum;
  20. preg_match("'\[row\](.*?)\[/row\]'si", $tpl->copy_template, $matches);
  21. $replace = array('{name}'=> $row["title"],
  22.                                  '{price}' => $row["price"],
  23.                                  '{id}' => "$id",
  24.                  '{count}' => "$count",
  25.                                  '{cost}' => "$sum");
  26. $tpl->copy_template = strtr($tpl->copy_template, $replace);
  27. $tpl->copy_template = preg_replace("'\[row\](.*?)\[/row\]'si", "\\1\n".$matches[0], $tpl->copy_template);
  28. }
  29. $total=sprintf("%01.2f",$total);
  30. }
  31. else $proverka=FALSE;
  32. $tpl->set('{all_total}', $total);
  33. $tpl->set_block("'\[row\](.*?)\[/row\]'si", "");
  34. $tpl->compile('content');
  35. $tpl->clear();
  36. $db->free();
  37. ?>
  38.  


я в php очень не силен и не могу понять в чем ошибка но факт есть факт где то в модуле если надо весь модуль могу залить ток помогите пожалуйста)
(Добавление)
мои догадки мб ето связано с бд как то? но уве я даж не знаю где искать
2. caballero - 19 Октября, 2011 - 03:00:00 - перейти к сообщению
Ворнинги можно удавить если увсе раьботает нормално

Но ошибка действительно странная
Напиши всесто if(count($shop)>0)
if(is_array($shop))

или проверь что там вообще, выведи var_dump($shop)
3. Avrelio - 19 Октября, 2011 - 03:05:31 - перейти к сообщению
жаль но проблема не только в ошибках половина модуля работает не корректно
(Добавление)
самое странное ето то что все отлично работает на локалке на денвере
4. caballero - 19 Октября, 2011 - 03:11:28 - перейти к сообщению
странного ничего нет
денвер на винде а хостинг на линуксе

проверь имена файлов и имена таблиц в запросах к mysql
все должно быть в одинаковом регистре
5. Avrelio - 19 Октября, 2011 - 03:15:02 - перейти к сообщению
bool(false) -вар думп выводит
(Добавление)
Проверил регистр все отлично
(Добавление)
ищо в одном файле тока еже ошибка и тоже работает криво ет файл "мини" корзины
Warning: Invalid argument supplied for foreach() in /usr/home/35720/slad-no.ru/html/ engine/modules/shop.short.php on line 11
CODE (php):
скопировать код в буфер обмена
  1.  
  2. <?php
  3.  
  4. $i=0;
  5. $total=0;
  6. if(!$_SESSION['tot'])
  7. $_SESSION['tot']=0;
  8. if($_SESSION['shop'])
  9. {
  10. $shop = unserialize($_SESSION['shop']);
  11.  
  12. foreach ($shop as $id => $count)
  13. {
  14. $i++;
  15. }
  16. }
  17. $total=sprintf("%01.2f",$total);
  18. $tpl->load_template('shop_short.tpl');
  19. $tpl->set( '{i}', $i );
  20. $tpl->set( '{total}', $_SESSION['tot'] );
  21. $tpl->compile( 'shop_short' );
  22. $tpl->clear();
  23.  
  24. ?>
  25.  
6. Avrelio - 19 Октября, 2011 - 03:56:51 - перейти к сообщению
Вот весь модуль кому не лень помогите найти ткните пальцем в чем проблема (
7. DeepVarvar - 19 Октября, 2011 - 05:28:32 - перейти к сообщению
Куки чистите после каждого изменения в коде - корзина она такая.
8. Шмайсер - 19 Октября, 2011 - 08:26:13 - перейти к сообщению
Удалите в shop.php верхнюю пустую строчку над <?php - у меня однажды была проблема похожая, какую ошибку выдавало не помню - но тоже половина не работало. Удалил пробел сверху, и все стало ОК.
Ну, это как вариант конечно
9. illy - 19 Октября, 2011 - 09:37:04 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. print_r($shop);
  2. foreach ($shop as $id => $count)
10. Avrelio - 19 Октября, 2011 - 09:59:28 - перейти к сообщению
Страно но вообще пусто не чего не выдает
11. illy - 19 Октября, 2011 - 10:02:12 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. print_r($_SESSION);
  3. $i=0;
  4. $total=0;
  5. if(!$_SESSION['tot'])

может в конфиге чтото?
12. Avrelio - 19 Октября, 2011 - 10:10:55 - перейти к сообщению
Array ( [dle_user_id] => 0 [dle_password] => [referrer] => /index.php [tot] => 600.00 [shop] => )

вот что вывело но тут нету количества [tot] в нем проблема
13. illy - 19 Октября, 2011 - 10:20:16 - перейти к сообщению
[tot] => 600.00
а это не он? Ха-ха
14. morosit - 19 Октября, 2011 - 11:20:44 - перейти к сообщению
caballero пишет:
или проверь что там вообще, выведи var_dump($shop)

Avrelio пишет:
bool(false) -вар думп выводит

ни на какие мысли не наводит
15. caballero - 19 Октября, 2011 - 13:23:28 - перейти к сообщению
так выясни почему shop - false
понятно что foreach ругается
но в перовом варианте у тебя проверка стоит - ошибки быть не должно

 

Powered by ExBB FM 1.0 RC1