Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Sesje a zapis do pliku
Forum PHP.pl > Forum > Przedszkole
pjamorski
Mam to:

Kod
<?php

session_start();
$name = $_SESSION['imie'];
$surname = $_SESSION['nazwisko'];
$nick = $_SESSION['nazwa'];
$password = $_SESSION['haslo'];
$zbior = array($name, $surname, $nick, $password);

$plik_zapis = fopen('rejestr.txt', 'a+');
fwrite($plik_zapis, implode(' ',$zbior));
  $plik_zapis = fopen('rejestr.txt', 'a+');

  fwrite($plik_zapis, '|');
fclose($plik_zapis);
?>


Ten skrypt dział mi jak ale przestał jak otworzyłem sesje i zmienne są zapisane w globalnej tablicy $_SESSION, z $_REQUEST gra muzyka, tutaj przestała. Może ktoś pomóc?
nospor
do kodu php uzywaj bbcode PHP

"NIe dziala" - co nie dziala? Jak odpalasz skrypt to ci myszki skaczą po ekranie?Nastepuje format dysku twardego?
precyzuj problem ktory omawiasz.

A moze po prostu do pliku zapisuja sie puste dane? ZNaczy ze w sesji nic nie ma.
  1. <?php
  2. print_r($_SESSION);
  3. ?>

I zobacz czy masz tam cos czy nie.
pjamorski
Ale opierdachy dostaje blinksmiley.gif

Zaimplemetowałem
print_r($_SESSION); i wyświetla mi się z pliku taki komunikat, nie zapisuje mi danych do pliku

Array ( [zbior] => Array ( [0] => [1] => [2] => [3] => ) )

to powyżej jest wyświetlone, nie wiem jak sobie poradzic z problemem sciana.gif
nospor
Cytat
Ale opierdachy dostaje
Moze dzieki temu nastepnym razem opiszesz precyzyjniej problem. Doswiadczenie na forum pokazuje ze jak sie nie opierdzieli delikwenta to nie pamieta, a jak sie opierdzieli to wiekszy odsetek zapamietuje smile.gif

No to do sesji ci nie zapisuje danych. Bledu musisz szukac podczas zapisywania.

A czemu ci wyswietlilo:Array ( [zbior] => Array ( [0] => [1] => [2] => [3] => ) )
To jest w sesji? A jakim cudem? podobno w sesji masz imie, nazwisko, nazwa, haslo a nie zadne zbior.
-parzygnat-
A czy przed linijka: session_start();
wysylasz jakikolwiek kod html do przegladarki??
Bo jezeli tak to sesja Ci nie bedzie dzialac musisz buforowac dane
pjamorski
Kod HTML mam w pliku formularza tylko, skrypt z sesja jest bez HTML.
Tez się zdziwilem po tym co mi się wyswietliło, przeciez widać co mam w zmiennej zbior zapisane. Kurcze siedze nad tym i nie mogę tego rozwalić, próbuje dalej, jak macie jakieś rozwiązania to proszę o pomoc. Walcze dalej, pozdr
nospor
ps: a register_globals masz wyłączone? Bo jesli masz wlączone to one potrafią z sesją cuda robic winksmiley.jpg
pjamorski
A jak mogę wyłączyć te globalne przeszkadzacze jeżeli są włączone i może jak sprawdzic czy są włączone? W mym skrypcie nic o tym nie piszą party.gif
nospor
jesli masz dostep do php.ini do wyszukaj tam register_globals i ustaw na Off a nastepnie restart apache
Jesli nie masz dostepu do php.ini do poprzez .htaccess:
Kod
php_flag register_globals off
pjamorski
OMG!!! Mam wyłączone na OFF sciana.gif , narazie mur nie do przejścia ale nie poddaje się dry.gif
Próbowałem przez fputs() ale też nie chce mi zapisać nic do pliku, zapisuje tylko ten znak "|", bo tak w skrypcie ma kończyć linijke. Kurcze bez użycia sesji działa a tak to się uparło wredne dry.gif

Oto kody moich skryptów:
index.php

  1. <?php
  2. $formularz = "
  3. <html><head>
  4. <title>sesje</title>
  5. </head>
  6. <body>
  7.  <form method='POST' action='rejestr.php'>
  8.  imie: <input type='text' name='imie'/>
  9.  nazwisko: <input type='text' name='nazwisko'/>
  10.  twoja nazwa: <input type='text' name='nazwa'/>
  11.  haslo: <input type='password' name='haslo'/<br><br>
  12.  <input type='submit' value='Rejestruj'/><input type='reset' value='Kasuj'/>
  13.  </form>
  14.  Jeżeli jesteś zalogowany, proszę wejdź do serwisu <a href='wejdz.php'> wejście</a>
  15.  <a href='rejestr.php'> KLIK </a>
  16. </body></html>
  17. ";
  18. echo $formularz;
  19. ?>



rejestr.php

  1. <?php
  2. // stworzenie sessi i operacje na danych zarejestrowanych uzytkownikow
  3. session_start(); // otwieram sesje i pod zmienne implementuje dane z formularza
  4. $name = $_SESSION['imie'];
  5. $surname = $_SESSION['nazwisko'];
  6. $nick = $_SESSION['nazwa'];
  7. $pass = $_SESSION['haslo'];
  8. //$_SESSION['zbior'] = array($name, $surname, $nick, $password); // zapis serii danych do zmiennej sesji
  9. $zbior = array($name, $surname, $nick, $pass);
  10.  
  11.  // tworze plik w ktorym zapisuje dane, wszystko zapisuje do jednego pliku i odziel
    a dane znakiem "|"
  12.  $plik_zapis = fopen('rejestr.txt', "a+"); 
  13.  fwrite($plik_zapis, implode(" ",$zbior)); 
  14. $plik_zapis = fopen('rejestr.txt', "a+"); 
  15. fwrite($plik_zapis, "|");
  16.  fclose($plik_zapis);
  17.  
  18.  
  19.  
  20.  echo $zbiory;
  21. ?>


Czy może mi ktoś pomóc w moim problemie, nie moge zapisać do pliku tych badziewiastych sesji sciana.gif
nospor
no dobra, a w ktorym miejscu zapisujesz formularz do sesji? Jakos nigdzie nie widze.
nowotny
Ale to nie ma nic wspólnego z sesją to co tu pokazujesz... Musisz skorzystać z tablicy $_POST a nie $_SESSION... dane z formularza się w sesji automagicznie nie zapiszą... :/
pjamorski
Czy możesz mi napisać jak mogę to zrobić? Nie chcę namieszać dry.gif

Może tak?

[php]
nospor
Cytat
Kolego nowotny wiem, że z GET i POST i RQAUEST to sięda zrobić, ale przy sesjach to czytałem, że nie zabardzo można tak przeskakiwać z tym. Ja bym chciałaby sesja trwała do końca założenia pliku. I żeby pracowała z tymi danym
No tak, ale najpier do tej sesji musisz cos wlozyc by sie w niej znalazlo. W tym przypadku musisz najpierw dane z forma wlozyc do sesji.
pjamorski
Zgadza się , pare minut temu zaskoczyłem. Dzięki i biorę się do pracy, to forum jest bajera party.gif
guitar.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.