Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: hurtowe rejestrowanie zmiennych
Forum PHP.pl > Forum > PHP
ennics
czy rozsądne będzie hurtowe rejestrownie zmiennych poprzez
wczytanie tablicy $_POST tym sposobem ?

  1. <?php
  2.  
  3.   foreach ( $_POST as $zmienna => $wartosc )
  4.   {
  5.     $_SESSION['$zmienna'] = $wartosc;
  6.   }
  7.  
  8. ?>


kodu jeszcze nie sprawdzałem w działaniu...
aleksander
jeżeli chcesz do $_SESSION skopiować całą tablicę $_POST, szybciej będzie:
  1. <?php
  2. $_SESSION = $_POST
  3. ?>
sf
Jak dla mnie nie będzie to rozsądne bo każdy sobie będzie mógł stworzyć taką sesję wysyłając przez post swoje zmienne. Nawet będzie mógł zmienić już istniejącą sesję na swoją wartość.
ennics
dzieki olo,
hmm, jest jeszcze opcja tego typu
że w formularzu którym przesyłam zmienne użytkownicy nie zawsze
wypełniają wszystkie pola - ergo, nazwy zmiennych są przesyłane
ale brak w nich wartości... czy wtedy w sesji pojawią się puste zmienne ?
jak ustawić pętle żeby nie dopuszczała do rejestrownia "pustych"
zmiennych ?

edit.

Cytat
każdy sobie będzie mógł stworzyć taką sesję wysyłając przez post swoje zmienne. Nawet będzie mógł zmienić już istniejącą sesję na swoją wartość.

hmm, nie wiem czy dobrze rozumuję. tablica $_POST jest już "określona" przez formularz, jak można przesłać do niej dodatkowe dane ?
pozatym, dane wynikowe nie mają wpływu na działanie aplikacji, jeśli użytkownik je zmieni pojawią się błędne wpisy w bazie danych i błędnie wygenerowny dokumnet .rtf (.doc)
invx
  1. <?php
  2. $_POST[nazwa] = &#092;"to co chcesz eby sie rownala\";
  3. ?>

albo
  1. <?php
  2. $_POST[nazwa] = $_POST.&#092;"dodatkowe info\";
  3. ?>
ennics
invx, dzięki za odp (przyda się winksmiley.jpg ale nie o to mi chodziło smile.gif
pisałem w kontekście wypowiedzi sf.

btw, sprawdziłem, niby działa coś w tym sytlu
  1. <?php
  2.  
  3. $_SESSION = $_POST;
  4. foreach ( $_SESSION as $zmienna => $wartosc )
  5. {
  6. echo &#092;"$zmienna : $wartosc<br>n\";
  7. }
  8.  
  9. ?>

ale jak przechodzę do następnego okna to wysypuje się wszystko
(wygląda to tak jakby niszczyło całą sesjie) i wraca do okna logowania winksmiley.jpg
invx
bo $_SESSION nadpisuje pusta $_POST

musisz dac warunek
  1. <?php
  2.  
  3. if ( !empty ( $_POST[nazwa] ) )
  4. {
  5. $_SESSION[nazwa] = $_POST[nazwa];
  6. }
  7.  
  8. ?>


P.S.
a jak by nie szlo to jeszcze isset() dozuc w warunku
sf
Cytat(ennics @ 2005-01-27 20:18:23)
Cytat
każdy sobie będzie mógł stworzyć taką sesję wysyłając przez post swoje zmienne. Nawet będzie mógł zmienić już istniejącą sesję na swoją wartość.

hmm, nie wiem czy dobrze rozumuję. tablica $_POST jest już "określona" przez formularz, jak można przesłać do niej dodatkowe dane ?
pozatym, dane wynikowe nie mają wpływu na działanie aplikacji, jeśli użytkownik je zmieni pojawią się błędne wpisy w bazie danych i błędnie wygenerowny dokumnet .rtf (.doc)

Można zrezlizować takie coś za pomocą fsockopen" title="Zobacz w manualu PHP" target="_manual. Możesz wysłać co chcesz. Dlatego też zostały wprowadzone tablice globalne takie jak $_GET, $_POST. Ty poprostu chcesz hurtowo przekierować wszystko co wysyła się za pomocą POST do sesji, bez jakiejkolwiek kontroli co jest wysyłane.

Także wszystkie skrypty spamerskie operują na tym działaniu fsockopen" title="Zobacz w manualu PHP" target="_manual. Chyba nie myślałeś, że skrypt wchodzi na stronę, wypełnia pola i wysyła posta? tongue.gif
ennics
hehe, nie sf, taki naiwny nie jestem biggrin.gif

tak będzie dobrze:
  1. <?php
  2.  
  3.   foreach ( $_POST as $zmienna => $wartosc )
  4.   {
  5.     if ( !empty( $_POST[$zmienna] ) )
  6.     {
  7.       $_SESSION[$zmienna] = $_POST[$zmienna];
  8.     }
  9.   }
  10.   print_r ($_SESSION);
  11.  
  12. ?>
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.