Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Sesje - zmienna nie jest przekazywana, problem
Pakinter
post 10.01.2005, 16:32:27
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.01.2005

Ostrzeżenie: (0%)
-----


Mam nastepujacy problem. Sa dwa skrypty sklep.php i sklep1.php w pierwszym robie takie cos session_register("tablicawyn"). Jest to zmienna tablicowa. Wszystko dziala jadnie do czasu wylaczenia przez uzytkownika ciasteczek. Wtedy po przejsciu do skryptu sklep1.php wywala blad ze nie zdefiniowana takiej zmiennej. Czy ktos moze mi pomoc rozwiazac ten problem? Z gory dzieki. A oto kody tych sklyptow

Sklep.php

  1. <center><h1>Sklep</h1></center><br>
  2. <h3>Towary:</h3><br>
  3. <table border=\"1\">
  4. <tr>
  5. <th>Nr</th> <th>Nazwa</th> <th>Cena towaru</th><th></th>
  6. </tr>
  7.  
  8. <?php
  9.  session_register(&#092;"tablicawyn\");
  10.  $plik=fopen(&#092;"towary.txt\",\"r\");
  11.  $tablica=file(&#092;"towary.txt\");
  12.  $ile=count($tablica);
  13.  echo &#092;"<form action=sklep.php method='POST'>\";
  14.  for($i=0;$i<$ile;$i++)
  15.  {
  16.  echo &#092;"<tr>\";
  17.  $tab=explode(&#092;" \",$tablica[$i]);
  18.  for($j=0;$j<3;$j++)
  19.  {
  20.  echo &#092;"<td>$tab[$j]</td>\";
  21.  }
  22.  echo &#092;"<td><input type=checkbox name=check[] value=$i></td>\"; 
  23.  echo &#092;"</tr>\"; 
  24.  }
  25.  echo &#092;"</table><br>\";
  26.  echo &#092;"<input type=hidden name=\".session_name().\"value=\".session_id().\">\";
  27.  echo &#092;"<input type=Submit value='Dodaj'><br>\";
  28.  echo &#092;"</form>\";
  29.  if($_SERVER[&#092;"REQUEST_METHOD\"]==\"POST\")
  30.  {
  31.  $wart=0;
  32.  $ile1=count($check);
  33.  for($i=0;$i<$ile1;$i++)
  34.  {
  35.  $rob=$check[$i];
  36.  $tab1=explode(&#092;" \",$tablica[$rob]);
  37.  for($j=0;$j<3;$j++)
  38.  $tablicawyn[$i][$j]=$tab1[$j];
  39.  $wart+=$tab1[&#092;"2\"];
  40.  }
  41.  echo &#092;"<br>Ilosc towarow=$ile1<br>\";
  42.  echo &#092;"Wartosc towarow=$wart\";
  43.  echo &#092;"<form action=sklep1.php method='GET'>\";
  44.  echo &#092;"<input type=hidden name=\".session_name().\"value=\".session_id().\">\";
  45.  echo &#092;"<input type=Submit value='Zamow'><br>\";
  46.  echo &#092;"<form>\";
  47.  }
  48. ?>


Sklep1.php


  1. <center><h1>Sklep</h1></center><br>
  2. <h3>Zamowienie</h3><br>
  3.  
  4.  
  5. <?php
  6. if(isset($Kupuje))
  7. {
  8. settype($tresc,&#092;"string\");
  9. for($i=0;$i<(count($_SESSION['tablicawyn']));$i++)
  10.  {
  11.  for($j=0;$j<4;$j++)
  12. $tresc=$tresc.$_SESSION['tablicawyn'][$i][$j].&#092;" \"; 
  13.  } 
  14. $adres=&#092;"adres@jdjd.pl\";
  15. $temat=&#092;"zamowienie\"; 
  16. mail($adres,$temat,$tresc); 
  17.  
  18. echo &#092;"<b>Zamowienie przyjeto<br></b>\";
  19. session_unregister(&#092;"tablicawyn\");
  20. echo &#092;"<a href='sklep.php'>Wroc do sklepu</a>\";
  21. }
  22. else
  23.  {
  24. echo &#092;"<table border='1'>\"; 
  25. echo &#092;"<tr>\";
  26. echo &#092;"<th>Nr</th> <th>Nazwa</th> <th>Cena towaru</th><th>Ilosc</th>\";
  27. echo &#092;"</tr>\";
  28.  
  29.  $razem=0;
  30.  $ile=count($_SESSION['tablicawyn']);
  31.  if($_SERVER[&#092;"REQUEST_METHOD\"]==\"POST\")
  32.  {
  33. for($i=0;$i<$ile;$i++)
  34.  {
  35.  $a[$i]=$ilosc[$i];
  36.  $_SESSION['tablicawyn'][$i][&#092;"3\"]=$a[$i];
  37.  $razem+=$ilosc[$i];
  38.  }
  39.  }
  40. else
  41. {
  42.  for($i=0;$i<$ile;$i++)
  43.  $a[$i]=&#092;"1\";
  44.  }
  45.  echo &#092;"<form action=sklep1.php method=POST>\";
  46.  for($i=0;$i<$ile;$i++)
  47.  {
  48.  echo &#092;"<tr>\";
  49.  for($j=0;$j<3;$j++)
  50. {
  51. echo &#092;"<td>\".$_SESSION['tablicawyn'][$i][$j].\"</td>\";
  52. }
  53.  echo &#092;"<td><input type=text name=ilosc[] value=\".$a[$i].\" size=2 maxlength=3></td>\";
  54.  echo &#092;"</tr>\";  
  55.  }
  56. echo &#092;"</table>\";
  57. echo &#092;"<table width=250><tr><td align=right><input type=Submit value='Zmien'></td></tr></table>\";
  58. echo &#092;"<input type=hidden name=\".session_name().\"value=\".session_id().\">\";
  59. echo &#092;"</form>\";
  60. if($_SERVER[&#092;"REQUEST_METHOD\"]==\"POST\")
  61.  {
  62. $DoZapl=0;
  63. for($i=0;$i<$ile;$i++)
  64.  {
  65.  $DoZapl+=$_SESSION['tablicawyn'][$i][&#092;"2\"]*$a[$i];
  66.  }
  67.  
  68.  echo &#092;"<b>Razem: $DoZapl zl, ilosc towarow: $razem</b>\";
  69.  echo &#092;"<form action=sklep1.php method=POST>\";
  70.  echo &#092;"<input type=hidden name=\".session_name().\"value=\".session_id().\">\";
  71.  echo &#092;"<input type=Submit name=Kupuje value=Kup>\";
  72.  echo &#092;"</form>\";
  73.  }
  74.  }//else isset($Kupuje)
  75. ?>
Go to the top of the page
+Quote Post
czachor
post 10.01.2005, 18:33:55
Post #2





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


używaj nie session_register("tablicawyn") tylko $_SESSION['tablicawyn'] = 'blah';


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
Pakinter
post 10.01.2005, 21:56:27
Post #3





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.01.2005

Ostrzeżenie: (0%)
-----


no wszedzie uzywam $_SESSION['tablicawyn'] a raz na poczatku pierwszego skryptu session_register("tablicawyn"); zeby dodac zmienna do sesji no i nie dziala sad.gif
Go to the top of the page
+Quote Post
crash
post 10.01.2005, 23:20:48
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

Ostrzeżenie: (0%)
-----


Manual:
Cytat
Przy użyciu $_SESSION (lub $HTTP_SESSION_VARS) nie powinno się używać session_register()


--------------------
Go to the top of the page
+Quote Post
Pakinter
post 10.01.2005, 23:36:17
Post #5





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.01.2005

Ostrzeżenie: (0%)
-----


Ok rozumiem. Wywalam juz ta session_register() Ale nadal mi nie dzialaja sesje bez cookies. Gdy wyswietlam id sesji zarowno w pierwszym skrypcie jak i drugim i gdy uzywam cookiekie id sesji jest takie samo. Gdy natomiast wylacze cookies w pierwszym i drugim skrypcie pokazuje sie calkiem inny id sesji. Gdzie lezy przyczyna?
Go to the top of the page
+Quote Post
scanner
post 11.01.2005, 07:35:33
Post #6





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Przenoszę: Skrypty -> php

Dział Skrypty służy do rozwiązywania problemów ze skryptami gotowymi, pobranymi z sieci!.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post
Pakinter
post 11.01.2005, 14:00:21
Post #7





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 10.01.2005

Ostrzeżenie: (0%)
-----


Juz doszedlem do jest zle ale nie wiem dlaczego tak sie dzieje

  1. <?php
  2.  echo &#092;"<form action=sklep1.php method=GET>\";
  3.  echo &#092;"<input type=hidden name=\".session_name().\"value=\".session_id().\">\";
  4.  echo &#092;"<input type=Submit value='Zamow'><br>\";
  5.  echo &#092;"<form>\";
  6. ?>


Otorz jak przechodze do drugiej strony przy uzyciu tego formularza to gubie sesje. Natomiast jak zamiast tego formularza dam link

  1. <?php
  2. echo &#092;"<a href=sklep1.php?\".SID.\">sklep</a>\";
  3. ?>

no to przechodzi do drugiej stronu i widzi sesje. Czy ktos moze mi wytlumaczyc dlaczego tak sie dzieje?

Ten post edytował Pakinter 11.01.2005, 14:00:54
Go to the top of the page
+Quote Post
scanner
post 11.01.2005, 14:35:25
Post #8





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




RTFM: http://pl2.php.net/manual/pl/ref.session.php
RTFM: http://pl2.php.net/manual/pl/install.confi...nable-trans-sid
Cytat
Istnieją dwie metody propagacji identyfikatora sesji:

    *Ciasteczka
    * Parametry URL'a

Moduł sesji obsługuje obie metody. Ciasteczka są metodą optymalną, ale ponieważ nie są one pewne (klienci nie muszą ich akceptować), nie możemy na nich polegać. Druga metora wstawia identyfikatory sesji bezpośrednio do URL'i.

php może to robić 'przezroczyście' jeśli został skompilowany z opcją --enable-trans-sid. Jeśli włączysz tą opcję, względne URI zostaną automatycznie podmienione tak, aby zawierały identyfikator sesji. Możesz także użyć stałej SID która jest definiowana jeśli klient nie wysłał odpowiedniego ciastka. SID jest albo w postaci nazwa_sesji=id_sesji lub pustym stringiem.


--------------------
scanner.info
Warto pamiętać: KISS, DRY
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.06.2025 - 07:29