PHP: <?php session_set_cookie_params(2*7*24*60*60); session_start(); $pic = include 'picr.php'; $rand = array_rand($pic); $_SESSION['image'] = setcookie('ipic',$pic[$rand],time()+5400); printf($rand); file_put_contents('./pag/targ.txt', $pic[$rand]); ?> --- Добавлено --- вот так не адрес вы ходит, а bool true...при VAR_dump, в локалхост, а сервера вообще все зависает, не загружает страницу даже доконца...
а я вот подумал)) при работе с сервера когда читается значение из файла(./pag/targ.txt) картинка открывается же!! а почему из сессии и из куков не читает, и вообще куки не отображаются в браузере, как будто и не записывалось туда ни чего, а с локалхост записывается и выводит!!! в логе эрор пусто...
найди 2 отличия мой код: PHP: $rand = array_rand($paths, 2); $_SESSION['image'] = $paths[$rand[0]]; твой код PHP: $pic = include 'picr.php'; $rand = array_rand($pic); $_SESSION['image']=setcookie('ipic',$pic[$rand],time()+5400); 1. в $rand ты пишешь случайное значение массива $pic, у $rand будет текстовое значение, читай документацию по функции array_rand, я же в $rand получаю массив с двумя ключами в значениях массива 2. $pic[$rand] ты пытаешься получить значение из массива $pic по ключу, передав одно случайное значение массива вместо ключа, которое ты получил через array_rand($pic). Логика нарушена, ты получаешь случайное значение, потом пытаешься найти ключ с таким значением, когда у тебя ключи просто цифры от 0 и так далее. Это можно представить так, в библиотеки все книги имеют номер, ты берёшь с полки книгу и идёшь к библиотекарю и говоришь, что книга это номер книги. Почитай по array_rand когда ты не передаёшь второй аргумент этой функции, то она возвращает случайное значение массива, но если указать число 2 и больше, то она вернёт массив где ключи будут просто от 0 до 1, а вот значения этого массива будут ключи из твоего массива $pic к которому ты хочешь обратиться. PHP: $pic = [ '1' => '1.jpg', '2' => '2.jpg', '3' => '3.jpg', ]; $rand = array_rand($pic, 2); /* Значение $rand $rand = [ '0' => '3', '1' => '2', ]; */ $pic[ 3 ]; // Значение 3.jpg $rand[ 0 ]; // Значение 3 $pic[ $rand[ 0 ] ]; // // Значение 3.jpg то же самое что и $pic[ 3 ] так как $rand[ 0 ] вернёт 3 я выбираю с помощью array_rand два случайных ключа массив $pic чтобы функция вернула мне именно ключи, а не значения, потому что эта функция не возвращает 1 случайный ключ, она вернёт одно случайное значение, а мне нужен ключ из $pic. 3. Тут опять не логично PHP: $_SESSION['image'] = setcookie('ipic',$pic[$rand],time()+5400); по документации setcookie тебе вернёт true или false, зачем эти два возможных значения приравнивать к массиву $_SESSION['image'] мне не понятно, могу только попробовать угадать, ты хотел просто установить cookie c значением картинки и отдельно записать это значение в сессию, но тогда нужно значение передавать в сессию, а не true или false PHP: $_SESSION['image'] = $pic[$rand]; setcookie('ipic',$pic[$rand],time()+5400); но и это имеет мало смысла, зачем одно и тоже и в сессию и в cookie или ты это от безнадёжности?
сорри за отсутствие. ТОЧНО!!! --- Добавлено --- Так в принципе все работает, я уже писал выше... но только получается что сайтом можно пользоваться по очереди)), иначе пользователям будет выводится одно и тоже значение(ИЗО). Чтобы этого избежать решил сломать мозг чтобы у каждого было свое значение, для чего решил передать его в сессию или в куки, но сталкнулся с тем что на локалхост все работает идеально и через сессию и через куки, а когда заливаю на сервер, не работает. Смотрю в куки а они даже не записаны. Сейчас приведу код как я это делаю,еще раз оговорю что на локалхосте все работает. --- Добавлено --- PHP: <?php session_start(); $pic = include 'picr.php'; $rand = array_rand($pic); $_SESSION['image'] = $pic[$rand]; printf($rand); --- Добавлено --- PHP: <?php session_start(); if(!empty($_SESSION['image'])) { echo '<img src="', $_SESSION['image'] , '">'; --- Добавлено --- Когда делаю вот так: Код (Text): $rand = array_rand($pic, 2); $_SESSION['image'] = $pic[$rand[0]]; на странице вывода цифрового значени пишет ARRAY
array(102) { ["m20318768"]=> string(31) "pic/20318768/1 здание.jpg" ["m30829354"]=> string(35) "pic/30829354/1 парусник.jpg" ["m10965668"]=>
Я как ни чего не понимал та ничего и не понимаю до сих пор)) Пожалуйста прокоментируйте... Я ни чего ни делал ровным счетом, кроме; Оставил только работу сессии как и в прошлый раз, но теперь сначала открыл сайт с хрома(нелокалхост), а потом с лисы(нелокалхост)(в которой все не работало) так вот теперь ВСЁ и везде работает. Где искать суть бывшей проблемы?!))
нет, я для того чтобы в будущем знать, что на эту граблю не наступать лучьше...)) так то мне радостно) но знать хочется...