Автор Тема: Как да се включа сесийте?  (Прочетена 10481 пъти)

mitakataka

  • Напреднали
  • *****
  • Публикации: 35
    • Профил
Как да се включа сесийте?
« Отговор #15 -: Aug 16, 2006, 11:23 »
Абе, не ви ли омръзна от този 'сесиЙ'? Щото доколкото гледах правописа последния път - пише се 'сесиИ'.
ед.ч. - сесиЯ
мн.ч. - сесиИ
Хайде да се научим да пишем на български...

А иначе виж какво ти дава phpinfo() - има ли раздел 'session'? Ако да тогава рови в php.ini; ако не - значи не е компилирано със сешън съпорт което много ме учудва понеже пакета на убунту си е със сесии по подразбиране (ако не си си го компилирал ти де...)
Активен

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Как да се включа сесийте?
« Отговор #16 -: Aug 16, 2006, 11:57 »
Цитат (_NetCutter_ @ Авг. 16 2006,10:59)
@boyan7640 нали точно това ми е проблема!Че не работят сесийте!
Моля ви помогнете!Какъв е тоя пакет за сесийте, щото аз не намерих такъв?

Ако това е действително кода, който ползваш никъде няма session_start(), който трябва да се изпрати пред всички други хедъри към браузъра. Малко ми е чудно как работят сесиите на друга машина без session_start().

Дай наистина и изхода от phpinfo().

Ако нямаш достъп до може да променяш променливите чрез функцията ini_set().
Активен

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
Как да се включа сесийте?
« Отговор #17 -: Aug 16, 2006, 12:23 »
Ето какво пише за сесиИте в phpinfo()
http://kvvpics.hit.bg/snapshot12.png
Активен

Linux - Connecting People!

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Как да се включа сесийте?
« Отговор #18 -: Aug 16, 2006, 12:40 »
ОК!
Пробвай се със следните два примерни скрипта и кажи какъв е резултата:
script1.php:
Примерен код

<?php
session_start();
$HTTP_SESSION_VARS['color']='blue';
?>


script2.php:
Примерен код

<?php
session_start();
if(isset($HTTP_SESSION_VARS['color'])) echo 'Value of $HTTP_SESSION_VARS[color] is: '.$HTTP_SESSION_VARS['color'];
else echo '$HTTP_SESSION_VARS[color] is NOT set';
?>


Естествено преди да изпълниш втория скрипт трябва да си стартирал първия за да се инициализира променливата.
Активен

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
Как да се включа сесийте?
« Отговор #19 -: Aug 16, 2006, 13:30 »
Примерен код
$HTTP_SESSION_VARS[color] is NOT set

Просто не работят и тва си му е  ':angry:'
Ще помоля Михаил Милев или някой друг да ми даде линк към тоя пакет,щото не го намирам. . .
edit:Моя грешка!MySQL ми е версия: 5.0.22-Debian_0ubuntu6.06-log



Активен

Linux - Connecting People!

senser

  • Напреднали
  • *****
  • Публикации: 1328
    • Профил
Как да се включа сесийте?
« Отговор #20 -: Aug 16, 2006, 15:14 »
Ако се съди по резултата от phpinfo() РНР-то си работи с включени сесии т.е. не би трябвало да е в това проблема и според мен не трябва нищо допълнително да иснталираш.
Прегледай логовете при старт на Апача, както и при обръщане към .рнр файл със сесийни променливи - получават ли се някакви грешки. Пробвай също да вдигнеш нивото за грешки в php.ini и кажи дали им някакъв ефект.
Активен

  • Гост
Как да се включа сесийте?
« Отговор #21 -: Aug 16, 2006, 16:12 »
Няма смисъл да ти търся този пакет, защото виждам че ти имаш sessions за php. Сега е върпоса да открием защо не работят, ще копирам примера от senser, но ще го променя, защото той използва променливи несъществуващи в php5.
script1.php:
Примерен код
<?php
session_start();
$_SESSION['color']="blue";
?>
<a href="script2.php">Go to Script2.php</a>

script2.php:
Примерен код
<?php
session_start();
if(isset($_SESSION['color']))
              echo "Value of color is: ".$_SESSION['color'];
else echo "Color is NOT set";
?>

Давай директно Copy&Paste в два файла и тествай.
Активен

boyan7640

  • Напреднали
  • *****
  • Публикации: 65
    • Профил
Как да се включа сесийте?
« Отговор #22 -: Aug 16, 2006, 16:39 »
Не че те подценявам _NetCutter_, но погледни си все пак правата на директорията, в която се пазят файловете за всяка сесия. В твоя случай това е: /var/lib/php5 !

При мене правата са такива:
Примерен код
drwxrwx--- 2 root apache 4096 Aug 16 16:31 session


Ако има грешка в тях веднага се получава warning, но това зависи и от error_reporting променливата в php.ini. Нещо такова се показва:
Примерен код
Warning: session_start() [function.session-start]: open(/var/lib/php/session/sess_u54smigcqced0cn7o9glk9rrq6, O_RDWR) failed: Permission denied (13) in ...


Не случайно по горе ти писаха да си промениш тази опция в php.ini на:
Примерен код
error_reporting = E_ALL


Голяма битка тези PHP сесии '<img'> !
Активен

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
Как да се включа сесийте?
« Отговор #23 -: Aug 17, 2006, 10:46 »
Примерен код
Color is NOT set

@boyan7640 извини ме моля те за тъпия ми въпрос,ама как да си проверя правата!Мисля че е от тях защото не мога да отворя папката през Konqueror-a '<img'>
Активен

Linux - Connecting People!

redcure

  • Напреднали
  • *****
  • Публикации: 914
    • Профил
Активен

Debian testing 2.6.18, Enlightenment DR17

http://www.debian.org/doc/manuals/apt-howto/index.en.html

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
Как да се включа сесийте?
« Отговор #25 -: Aug 17, 2006, 12:32 »
Действително е от правата,защото като зададох :
Примерен код
sudo chmod 777 /var/lib/php5/

Започнаха вътре да се записват сесиите,но те сега са недостъпни и не се четат!Даже след затваряне на браузъра не се и трият! ':crazy:'
Как да направя да се четат тея сесии?
Активен

Linux - Connecting People!

peaceburn

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Как да се включа сесийте?
« Отговор #26 -: Aug 17, 2006, 14:27 »
Момче, изчетох темата и това с директорията ми се наби още от първата страница дето беше пуснал скрийншит! Промени session_save_path или там както се казваше в php.ini да ти сочи в /tmp (поне временно, докато разработваш, после може да се наложи да го секюрваш).
Активен

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
Как да се включа сесийте?
« Отговор #27 -: Aug 17, 2006, 18:27 »
Еми направих го,ама и в /tmp sess-файловете пак са с "катинарче" и пак не се четат, нито се трият след изключване на браузъра!
Да не би да е нещо в настройките на php.ini?
Ако искате може да кача файлът некъде и да ви дам да го прегледате?
Баахти сесиите! ':crazy:'
Активен

Linux - Connecting People!

_NetCutter_

  • Напреднали
  • *****
  • Публикации: 513
    • Профил
Как да се включа сесийте?
« Отговор #28 -: Aug 17, 2006, 18:30 »
Ето областа от файлът който се отнася за сесиите:
Примерен код
[Session]
; Handler used to store/retrieve data.
session.save_handler = files

; Argument passed to save_handler.  In the case of files, this is the path
; where data files are stored. Note: Windows users have to change this
; variable in order to use PHP's session functions.
;
; As of PHP 4.0.1, you can define the path as:
;
;     session.save_path = "/tmp"
;
; where N is an integer.  Instead of storing all the session files in
; /path, what this will do is use subdirectories N-levels deep, and
; store the session data in those directories.  This is useful if you
; or your OS have problems with lots of files in one directory, and is
; a more efficient layout for servers that handle lots of sessions.
;
; NOTE 1: PHP will not create this directory structure automatically.
;         You can use the script in the ext/session dir for that purpose.
; NOTE 2: See the section on garbage collection below if you choose to
;         use subdirectories for session storage
;
; The file storage module creates files using mode 600 by default.
; You can change that by using
;
;     session.save_path = "N;MODE;/path"
;
; where MODE is the octal representation of the mode. Note that this
; does not overwrite the process's umask.
session.save_path = /tmp

; Whether to use cookies.
session.use_cookies = 1

; This option enables administrators to make their users invulnerable to
; attacks which involve passing session ids in URLs; defaults to 0.
; session.use_only_cookies = 1

; Name of the session (used as cookie name).
session.name = PHPSESSID

; Initialize session on request startup.
session.auto_start = 0

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

; The path for which the cookie is valid.
session.cookie_path = /tmp

; The domain for which the cookie is valid.
session.cookie_domain = http://localhost

; Handler used to serialize data.  php is the standard serializer of PHP.
session.serialize_handler = php

; Define the probability that the 'garbage collection' process is started
; on every session initialization.
; The probability is calculated by using gc_probability/gc_divisor,
; e.g. 1/100 means there is a 1% chance that the GC process starts
; on each request.

; This is disabled in the Debian packages, due to the strict permissions
; on /var/lib/php5.  Instead of setting this here, see the cronjob at
; /etc/cron.d/php5, which uses the session.gc_maxlifetime setting below
session.gc_probability = 1
session.gc_divisor     = 100

; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440

; NOTE: If you are using the subdirectory option for storing session files
;       (see session.save_path above), then garbage collection does *not*
;       happen automatically.  You will need to do your own garbage
;       collection through a shell script, cron entry, or some other method.
;       For example, the following script would is the equivalent of
;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
;          cd /path/to/sessions; find -cmin +24 | xargs rm

; PHP 4.2 and less have an undocumented feature/bug that allows you to
; to initialize a session variable in the global scope, albeit register_globals
; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
; You can disable the feature and the warning separately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 1
session.bug_compat_warn = 1

; Check HTTP Referer to invalidate externally stored URLs containing ids.
; HTTP_REFERER has to contain this substring for the session to be
; considered as valid.
session.referer_check =

; How many bytes to read from the file.
session.entropy_length = 16

; Specified here to create the session id.
session.entropy_file = /dev/urandom

;session.entropy_length = 16

;session.entropy_file = /dev/urandom

; Set to {nocache,private,public,} to determine HTTP caching aspects
; or leave this empty to avoid sending anti-caching headers.
session.cache_limiter = nocache

; Document expires after n minutes.
session.cache_expire = 180

; trans sid support is disabled by default.
; Use of trans sid may risk your users security.
; Use this option with caution.
; - User may send URL contains active session ID
;   to other person via. email/irc/etc.
; - URL that contains active session ID may be stored
;   in publically accessible computer.
; - User may access your site with the same session ID
;   always using URL stored in browser's history or bookmarks.
session.use_trans_sid = 0

; Select a hash function
; 0: MD5   (128 bits)
; 1: SHA-1 (160 bits)
session.hash_function = 0

; Define how many bits are stored in each character when converting
; the binary hash data to something readable.
;
; 4 bits: 0-9, a-f
; 5 bits: 0-9, a-v
; 6 bits: 0-9, a-z, A-Z, "-", ","
session.hash_bits_per_character = 4

; The URL rewriter will look for URLs in a defined set of HTML tags.
; form/fieldset are special; if you include them here, the rewriter will
; add a hidden <input> field with the info which is otherwise appended
; to URLs.  If you want XHTML conformity, remove the form entry.
; Note that all valid entries require a "=", even if no value follows.
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="
Активен

Linux - Connecting People!

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Как да се включа сесийте?
« Отговор #29 -: Aug 18, 2006, 00:32 »
Работят ли ти сесиите? Пробва ли скриптовете, които ти дадоха хората малко по-нагоре в темата?
Активен