Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nie działa sesja - banalne
Forum PHP.pl > Forum > Przedszkole
server100
Mam dwa pliki. Chcę do drugiego pliku przesłać zmienną zarejestrowaną w pierwszym pliku. Na moim domowym serwerze Apache2 poprawnie wyświetla się tylko plik 1. Niestety zmienna nie jest przekazywana do drugiego pliku i pokazuje się komunikat:

Kod
Notice: Undefined variable: dana in C:\public_html\sesja\2.php on line 3


Plik: 1.php
  1. <html>
  2. <body>
  3. <?php
  4. $dana = &#092;"Michal\";
  5. session_register (&#092;"dana\");
  6. ?>
  7. <p>Dana sesyjna: <?php echo(&#092;"$dana\"); ?> zostala zarejestrowana</p>
  8. <p>Link do drugiego <a href=\"2.php\">pliku</a></p>
  9. </body>
  10. </html>


Plik: 2.php
  1. <?php 
  2. echo(&#092;"$dana\");
  3. ?>


A oto mój plik php.ini
Kod
[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.
session.save_path = C:\WebServer\sessions

; 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 = /

; The domain for which the cookie is valid.
session.cookie_domain =

; 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.

session.gc_probability = 1
session.gc_divisor     = 1000

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

; 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 seperately. At this time,
; the warning is only displayed, if bug_compat_42 is enabled.

session.bug_compat_42 = 0
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 = 0

; Specified here to create the session id.
session.entropy_file =

;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

; 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=fakeentry"


Jest to przykład książkowy. Nie wiem w czym problem ?
Pomóżcie. sad.gif
tts
Sprobuj tak:
1.php
  1. <?php
  2. $_SESSION['dana'] = 'Michal'; // skrocilem Twoj zapis, poza tym nie uzywa sie juz funkcji session_register ()
  3. ?>
  4. <html>
  5. <body>
  6. <p>Dana sesyjna: <?php echo $_SESSION['dana']; ?> zostala zarejestrowana</p>
  7. <p>Link do drugiego <a href=\"2.php\">pliku</a></p>
  8. </body>
  9. </html>

2.php
  1. <?php 
  2. echo $_SESSION['dana'];
  3. ?>
server100
Wielkie dzięki za pomoc. Tak się składa, że ja już wiem jak rozwiązać mój problem używając funkcji
  1. <?php
  2. ?>
. Przeanalizowałem wydruk phpinfo z innego Unixowego serwera i zauważyłem, że on miał włączony
Kod
register_globals    On
. Też ustawiłem w pliku php.ini na "On" i wszystko gra smile.gif
Twój sposób wykorzystuje tablicę i też jest dobry. Dzięki.
tts
"Moj" sposob powinien dzialac przy obu ustawieniach register_globals, Swoja droga jezeli dopiero sie uczysz php to dobrym pomyslem jest sie uczyc pracy na zmiennych tablicowych (przy wylczonym register_globals) bo jest to std. ustawienie wiekszosci serwerow w sieci.
Coyote
Dawaj session_start() przed jakim kolwiek kodem html .... znaqczy <HTML> <body> itp ....
tts
innego wyjscia nie ma bo z reguly sesja idzie po ciastkach i musi zostac zestawiona zanim przesle sie cokolwiek do przedladarki...
Coyote
chyba ze ktos ma wylaczone ciastka ... poczytaj o sesjach w manualu ...
tts
@Coyote: mysle, ze server100 juz dawno sie od dyskusji odlaczyl, kiedy znalazl rozwiazanie...;-)
prostujac, uzupelniajac, etc.. (niepotrzebne skreslic ;-) ): niezaleznie od tego w jaki sposob przechowywany i przekazywany jest klucz sesji, jezeli nie zainicjuje sie jej ponad htmlem (i pewnie jeszcze ponad paroma innymi dyrektywami php...), lubia sie dziac rozne dziwne rzeczy, a najbardziej widoczna z nich jest rozsypywanie sie htmla w przegladarce...
Coyote
hehe:) widze ze tylko my tu prowadzimy rozwaniania biggrin.gif masz racje .... temat out smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.