Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / в денвере работает а на nic.ru нет / 15 сообщений из 15, страница 1 из 1
29.07.2015, 13:21
    #39018586
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
открываю страницу 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
29.07.2015, 13:34
    #39018605
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
ну там же написано все. Смотри, что у тебя в $_COOKIE['basket'] и что в итоге в $basket. Ожидается массив, а там строка
...
Рейтинг: 0 / 0
29.07.2015, 13:46
    #39018621
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
$basket[] = unserialize(base64_decode($_COOKIE['basket']));

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

Вывод var_dump($_COOKIE); - в студию!
...
Рейтинг: 0 / 0
29.07.2015, 14:37
    #39018705
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
Я далек от этого, подскажите как вывести
Вывод var_dump($_COOKIE); - в студию!
...
Рейтинг: 0 / 0
29.07.2015, 14:40
    #39018708
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
array(2) { ["PHPSESSID"]=> string(32) "aa064b8558861c8a99243a613621f28b" ["basket"]=> string(56) "YToxOntzOjc6Im9yZGVyaWQiO3M6MTM6IjU1YjhhYjFlOTcxNDYiO30=" }
...
Рейтинг: 0 / 0
29.07.2015, 15:58
    #39018813
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
а где basketInit() вызывается? В нем выведи var_dump куки в начале.
p.s. global зло
...
Рейтинг: 0 / 0
29.07.2015, 16:48
    #39018885
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
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
29.07.2015, 17:44
    #39018950
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
sfsf,

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

Расставь var_dump после каждой строчки в else baseInit и посмотри что там получается
...
Рейтинг: 0 / 0
30.07.2015, 09:16
    #39019239
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
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
30.07.2015, 09:22
    #39019243
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
да нафиг ты куки то повыводил)

Код: 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
30.07.2015, 09:29
    #39019249
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
Код: 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
30.07.2015, 11:06
    #39019336
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
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
30.07.2015, 11:11
    #39019349
sfsf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
в денвере работает а на nic.ru нет
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
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / в денвере работает а на nic.ru нет / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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