powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / в денвере работает а на nic.ru нет
15 сообщений из 15, страница 1 из 1
в денвере работает а на nic.ru нет
    #39018586
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
открываю страницу http://dcli.ru/page-5.php в денвере все хорошо. На хостере nic.ru предупрерждения. array_values() expects parameter 1 to be array, string given in /home/dcli/dcli.ru/docs/lib.php

Но самое главное при нажатии кнопки добавить в корзину появляется белый экран с предупреждениями
Warning: array_values() expects parameter 1 to be array, string given in /home/dcli/dcli.ru/docs/lib.php on line 17

Warning: array_shift() expects parameter 1 to be array, null given in /home/dcli/dcli.ru/docs/lib.php on line 18

Warning: Invalid argument supplied for foreach() in /home/dcli/dcli.ru/docs/lib.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/lib.php:17) in /home/dcli/dcli.ru/docs/lib.php on line 34

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/lib.php:17) in /home/dcli/dcli.ru/docs/add2basket.php on line 6


вот файл lib.php
---------------------
<?php
function clearInt($data)
{
return abs((int)$data);
}
function basketInit(){
global $basket, $count, $totalSum;
if(!isset($_COOKIE['basket']))
{
$basket = array('orderid' => uniqid());
saveBasket();
}
else
{
$basket = unserialize(base64_decode($_COOKIE['basket']));
$count = count($basket) - 1;
$prices = array_values($basket);
array_shift($prices);
foreach($prices as $price)
{
$totalSum += $price;
}
}
}
function myBasket(){
global $basket;
$goods = array_keys($basket);
array_shift($goods);
return $goods;
}
function saveBasket(){
global $basket;
$basket = base64_encode(serialize($basket));
setcookie('basket', $basket, 0x7FFFFFFF);
}
function add2Basket($id){
global $basket;
$basket[$id] = returnPriceFromId($id);
saveBasket();
}

function returnPriceFromId($id){
$sql = "SELECT price FROM pricelist where id='$id'";
$res = mysql_query($sql);
$price = mysql_fetch_array($res);
return $price[0];
}
function deleteItemFromBasket($id){
global $basket;
unset($basket[$id]);
saveBasket();
}
function unsetBasket(){
setcookie('basket','',time()-3600);
}


add2basket.php
--------------------

<?php
include 'lib.php';
include 'inc/db_conn.php';
$id = clearInt($_GET['id']);
add2Basket($id);
header('Location: '.$_SERVER['HTTP_REFERER']);
exit;?>
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018605
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну там же написано все. Смотри, что у тебя в $_COOKIE['basket'] и что в итоге в $basket. Ожидается массив, а там строка
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018621
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
$basket[] = unserialize(base64_decode($_COOKIE['basket']));

Если делать так, то ворнингов нет... но в корзину ничего не идет.
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018699
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sfsfЕсли делать так, то ворнингов нет... но в корзину ничего не идет.Всё логично. Вы же изменили логику работы приложения.

Вывод var_dump($_COOKIE); - в студию!
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018705
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я далек от этого, подскажите как вывести
Вывод var_dump($_COOKIE); - в студию!
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018708
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" }
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018813
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а где basketInit() вызывается? В нем выведи var_dump куки в начале.
p.s. global зло
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018885
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
db_conn.php
--------------
<?php
$DB_HOST = 'dcli.mysql';
$DB_USER = 'dcli_mysql';
$DB_PASS = '6Kc:JRsV';
$DB_NAME = 'dcli_laba';
$basket = array();
$count = 0;
$totalSum = 0;
var_dump($_COOKIE);
basketInit();
$link = mysql_connect($DB_HOST,$DB_USER,$DB_PASS);
mysql_select_db($DB_NAME);
@mysql_query('set character_set_client="utf8"');
@mysql_query('set character_set_results="utf8"');
@mysql_query('set collation_connection="utf8_general_ci"');





array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" }
Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/lib.php on line 37

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/add2basket.php on line 6
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018950
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sfsf,

А сравните версии PHP на хостинге и в Денвере (в Денвере что-то старое по умолчанию) - может синтаксис используемых вами функций поменялся между релизами.
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39018972
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а зачем array_shift($prices); там один элемент в массиве, и ты его убираешь, а потом стартуешь цикл.

Расставь var_dump после каждой строчки в else baseInit и посмотри что там получается
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39019239
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
function basketInit(){

global $basket, $count, $totalSum;
if(!isset($_COOKIE['basket']))
{
$basket = array('orderid' => uniqid());
saveBasket();
}
else
{
var_dump($_COOKIE);

$basket = unserialize(base64_decode($_COOKIE['basket']));
/*$basket[] = unserialize(base64_decode($_COOKIE['basket']));*/
var_dump($_COOKIE);
$count = count($basket) - 1;
$prices = array_values($basket);
var_dump($_COOKIE);
array_shift($prices);
var_dump($_COOKIE);
foreach($prices as $price)
{
$totalSum += $price;
var_dump($_COOKIE);
}
}
}




-----------
array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" } array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" } array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" } array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" } array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" }
Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/lib.php on line 42

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/add2basket.php on line 6
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39019243
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да нафиг ты куки то повыводил)

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
$basket = unserialize(base64_decode($_COOKIE['basket']));
echo "<pre>";
var_dump($basket);
echo "</pre>";

$count = count($basket) - 1;
$prices = array_values($basket);
echo "<pre>";
var_dump($prices);
echo "</pre>";

array_shift($prices);
echo "<pre>";
var_dump($prices);
echo "</pre>";

и т.д.
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39019249
SharuPoNemnogu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
$totalSum = 0;
$cookieBasket = "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=";
$basket = unserialize(base64_decode($cookieBasket));
echo "<pre>";
var_dump($basket);
echo "</pre>";

$count = count($basket) - 1;
echo "<pre>";
var_dump($count);
echo "</pre>";

$prices = array_values($basket);
echo "<pre>";
var_dump($prices);
echo "</pre>";

array_shift($prices);
echo "<pre>";
var_dump($prices);
echo "</pre>";

foreach($prices as $price)
{
    $totalSum += $price;
}
echo "<pre>";
var_dump($totalSum);
echo "</pre>";
die;



Код: html
1.
2.
3.
4.
5.
6.
7.
8.
array (size=1)
  'orderid' => string '55b8ab1e97146' (length=13)
int 0
array (size=1)
  0 => string '55b8ab1e97146' (length=13)
array (size=0)
  empty
int 0


странный у тебя код какой то, в куках лежит orderid, ты его пишешь в $prices, потом удаляешь единственное значение и запускаешь цикл на пустом массиве. Либо у тебя кука не та, либо в логике че то напутано, и не помешало бы проверки какие нибудь расставить.
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39019336
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
function basketInit(){

global $basket, $count, $totalSum;
if(!isset($_COOKIE['basket']))
{
$basket = array('orderid' => uniqid());
echo "<pre>";
var_dump($basket);
echo "</pre>";
saveBasket();
}
else
{


$basket = unserialize(base64_decode($_COOKIE['basket']));
/*$basket[] = unserialize(base64_decode($_COOKIE['basket']));*/
echo "<pre>";
var_dump($basket);
echo "</pre>";

$count = count($basket) - 1;
echo "<pre>";
var_dump($count);
echo "</pre>";
$prices = array_values($basket);
echo "<pre>";
var_dump($prices);
echo "</pre>";

array_shift($prices);
echo "<pre>";
var_dump($prices);
echo "</pre>";


foreach($prices as $price)
{
$totalSum += $price;

}
echo "<pre>";
var_dump($totalSum);
echo "</pre>";


}


--------------------


array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" }
array(1) {
["orderid"]=>
string(13) "55b8ab1e97146"
}
int(0)
array(1) {
[0]=>
string(13) "55b8ab1e97146"
}
array(0) {
}
int(0)

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/lib.php on line 63

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/add2basket.php on line 6
...
Рейтинг: 0 / 0
в денвере работает а на nic.ru нет
    #39019349
sfsf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
array(10) { ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" ["ctxjs1420m06d05nn"]=> string(70) "7b2273756363657373223a302c226c6f675f616374697665223a312c22626c223a307d" ["acdsdbl0ck"]=> string(1) "0" ["fkldsnmflhwe784n"]=> string(37) "434a5331313531444f4d434f4f4b494552554" ["uiry237bdsjnfiln"]=> string(41) "4f4f544431313531434a535255444f4d41494e434" ["ckwqy38obnn"]=> string(2) "RU" ["894h35bnklpsqn"]=> string(2) "RU" ["83bnmklsae328ynn"]=> string(5) "34601" ["789345ybnf984nn"]=> string(5) "10742" ["uyru345hr9lks1151"]=> string(26) "52029928225092591435839547" }
array(1) {
["orderid"]=>
string(13) "55b8ab1e97146"
}
int(0)
array(1) {
[0]=>
string(13) "55b8ab1e97146"
}
array(0) {
}
int(0)

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/lib.php on line 63

Warning: Cannot modify header information - headers already sent by (output started at /home/dcli/dcli.ru/docs/inc/db_conn.php:9) in /home/dcli/dcli.ru/docs/add2basket.php on line 6
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / в денвере работает а на nic.ru нет
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]