Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Problem z $_SESSION
kuba_pilach
post 12.03.2011, 17:28:14
Post #1





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Witam,
Mam następujący problem:
Biorę wynik zapytania mssql do sesji:
  1. $wynikzapytania = $_SESSION['id'];

Jak w następnym pliku zrobię:
  1. echo $_SESSION['id'];

To mi napisze, ale jak jeszcze w kolejnym pliku to już mi usuwa...
A w pierwszym pliku, z którego pobieram ten wynik zapytania, używam wyszukiwarki... przed użyciem innej wyszukiwarki wypisuje mi poprawnie, ale po użyciu tej drugiej wyszukiwarki już wyczyszcza sesję...
Tam gdzie ma napisać tą sesję dałem:
  1. print_r($_GET);
  2. print_r($_SESSION);

I napisało mi:
Kod
Array ( ) Array ( [iduslugi] => Array ( [0] => 37 ) [id] => )

Dałem wszędzie na początku pliku:

A i dałem zakończenie sesji na końcu:
  1. unset($_SESSION['id']);

Wie ktoś co mam źle?questionmark.gif Bardzo proszę o pomoc i dzięki z góry...
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
wookieb
post 12.03.2011, 17:30:18
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Wywal tego unseta i wróć do podstaw obsługi sesji.
Powód edycji: [wookieb]:


--------------------
Go to the top of the page
+Quote Post
kuba_pilach
post 12.03.2011, 17:33:55
Post #3





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


A może jaśniej?
Bo dużo mi ten post twój nie pomógł...
Jeszcze raz bardzo proszę i dzięki z góry...
Go to the top of the page
+Quote Post
wookieb
post 12.03.2011, 17:37:03
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A jak myślisz co robi twój unset w twoim przykładzie?


--------------------
Go to the top of the page
+Quote Post
kuba_pilach
post 12.03.2011, 17:59:06
Post #5





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Dobra, usunąłem i nic nie zmieniło się...
Go to the top of the page
+Quote Post
krzywy36
post 12.03.2011, 18:02:28
Post #6





Grupa: Zarejestrowani
Postów: 370
Pomógł: 43
Dołączył: 1.12.2007
Skąd: Kędzierzyn Koźle

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


  1. $wynikzapytania = $_SESSION['id'];

powinno być na odwrót


--------------------
pretty as a shit.
Go to the top of the page
+Quote Post
kuba_pilach
post 12.03.2011, 18:14:26
Post #7





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Nadal to samo...
A i napiszę kawałek kodu, z którego ma to brać...
  1. <table class="z" border="1" frame="void" rules="none">
  2. <?php
  3. for ($i=0; $i <$ile_znalezionych; $i++) {
  4. ?>
  5. <?php
  6. $wiersz = mssql_fetch_assoc($wynik);
  7. echo "<tr>";
  8. echo "<td><p><strong>".($i+1).". </td>";
  9. echo stripslashes("<td>".$wiersz['Knt_Nazwa1']." ".$wiersz['Knt_Nazwa2']."</td>");
  10. $_SESSION['id'] = $wiersz['Knt_Nazwa1'];
  11. echo "<td><a href=\"step1_2.php?a=dod&amp;id={$wiersz['Knt_Nazwa1']}\"><img src=images/ikona.png></a></td>";?>
  12. <?php
  13.  
  14. }
  15. ?>
  16. </table>
  17.  
  18. <?php
  19. }
  20. ?>

A w następnym pliku:
  1. <?php
  2. include 'connection.php';
  3. $a = trim($_REQUEST['a']);
  4. $id = trim($_GET['id']);
  5.  
  6. $id = $_SESSION['id'];


I nadal w tym trzecim pliku:
Kod
Array ( ) Array ( [iduslugi] => Array ( [0] => 3 [1] => 13 ) [testowa] => i wyglada, ze dziala dobrze [id] => )
Go to the top of the page
+Quote Post
Istalacar
post 12.03.2011, 18:23:27
Post #8





Grupa: Zarejestrowani
Postów: 108
Pomógł: 4
Dołączył: 3.03.2007

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


Wróć do podstaw, bo nie masz pojęcia jak się sesji używa. Koledzy wypunktowali wszystkie błędy, które zrobiłeś, a Ty dalej swoje.
Tutaj masz dokładnie wszystko opisane:
http://pl2.php.net/manual/pl/function.session-start.php
W języku polskim. Przeczytaj, popraw, jak nadal nie będzie działało to wróć tutaj.
Go to the top of the page
+Quote Post
kuba_pilach
post 12.03.2011, 18:40:46
Post #9





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Ale muszę też napisać, że DAŁEM session_start(); wcześniej, na początku pliku... Dodać SID też próbowałem...
Próbowałem też dać ob_start(); ale też nic z tego...
Co jeszcze może być powodem tego błędu... Czy mam dać całe kody?questionmark.gif
Go to the top of the page
+Quote Post
--Istalacar--
post 12.03.2011, 18:52:24
Post #10





Goście







ob_start służy do czegoś zupełnie innego, jeśli masz i nie wiesz do czego służy to wywal.

Najprostsze użycie sesji:
  1. <?php
  2. $_SESSION['kolor'] = 'zielony';
  3. ?>

następnie na drugiej stronie:
  1. <?php
  2. echo $_SESSION['kolor'];
  3. ?>


upewnij się, że wszystko masz tak samo i jeśli tak to wtedy wklej całe kody.
Go to the top of the page
+Quote Post
kuba_pilach
post 12.03.2011, 19:00:15
Post #11





Grupa: Zarejestrowani
Postów: 224
Pomógł: 3
Dołączył: 24.12.2010

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


Mam tak samo... Lecz bardziej skomplikowany przykład...
Dobra, daję kody:
step1.php
  1. <?php
  2. ?>
  3. <html>
  4.  
  5. <head>
  6. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  7. <title>Wybieranie opcji</title>
  8. <link rel="stylesheet" type="text/css" href="css/styles.css" />
  9. </head>
  10.  
  11. <body>
  12. <?php
  13. if ($a != dod) {
  14. ?>
  15. <h1>Wyszukiwanie</h1>
  16.  
  17. <form action="step1.php" method="post">
  18. <select name="metoda_szukania">
  19. <option value="KnT_Kod">Kod</option>
  20. <option value="Knt_Nazwa1">Nazwa</option>
  21. </select>
  22. <br />
  23. WprowadŸ poszukiwane wyrażenie:<br />
  24. <input name="wyrazenie" type="text" size="40">
  25. <br />
  26. <input type="submit" name="submit" value="Szukaj">
  27. </form>
  28.  
  29. <?php
  30. }
  31.  
  32.  
  33. if ($_POST['submit']) {
  34.  
  35. // utworzenie krótkich nazw zmiennych
  36. $metoda_szukania=$_POST['metoda_szukania'];
  37. $wybor=$_POST['wybor'];
  38. $wyrazenie=trim($_POST['wyrazenie']);
  39.  
  40. $wyrazenie = trim($wyrazenie);
  41.  
  42. if (!$metoda_szukania || !$wyrazenie) {
  43. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  44. }
  45.  
  46. $metoda_szukania = addslashes($metoda_szukania);
  47. $wyrazenie = addslashes($wyrazenie);
  48. }
  49.  
  50. include 'connection.php';
  51.  
  52. $zapytanie = "select * from CDN.Kontrahenci where ".$metoda_szukania." like '%".$wyrazenie."%'";
  53. $wynik = mssql_query($zapytanie);
  54.  
  55. $ile_znalezionych = mssql_num_rows($wynik);
  56.  
  57. echo "<p>Iloœć znalezionych pozycji: ".$ile_znalezionych."</p>";
  58. ?>
  59. <table class="z" border="1" frame="void" rules="none">
  60. <?php
  61. for ($i=0; $i <$ile_znalezionych; $i++) {
  62. ?>
  63. <?php
  64. $wiersz = mssql_fetch_assoc($wynik);
  65. echo "<tr>";
  66. echo "<td><p><strong>".($i+1).". </td>";
  67. echo stripslashes("<td>".$wiersz['Knt_Nazwa1']." ".$wiersz['Knt_Nazwa2']."</td>");
  68. $_SESSION['id'] = $wiersz['Knt_Nazwa1'];
  69. echo "<td><a href=\"step1_2.php?a=dod&amp;id={$wiersz['Knt_Nazwa1']}&amp;'. SID .'\"><img src=images/ikona.png></a></td>";?>
  70. <?php
  71.  
  72. }
  73. ?>
  74. </table>
  75.  
  76. <?php
  77. }
  78. ?>
  79.  
  80.  
  81. </body>
  82. </html>

step1_2.php (tu zapisuję sesję)
  1. <?php
  2. ?>
  3. <html>
  4. <head>
  5. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  6. <title>Wybieranie usług</title>
  7. <link rel="stylesheet" type="text/css" href="css/styles.css" />
  8. </head>
  9.  
  10. <body>
  11. <?php
  12. include 'connection.php';
  13. $a = trim($_REQUEST['a']);
  14. $id = trim($_GET['id']);
  15.  
  16. $_SESSION['id'] = $id;
  17. $opytanie = mssql_query("SELECT * FROM CDN.Kontrahenci WHERE Knt_Nazwa1='$id'");
  18. $wynikopytania = mssql_fetch_assoc($opytanie);
  19.  
  20. echo "Wybrany kontrahent: ".$wynikopytania['Knt_Nazwa1']." ".$wynikopytania['Knt_Nazwa2'];
  21.  
  22. ?>
  23. <hr />
  24. <h1>Wybieranie usług</h1>
  25.  
  26. <form action="step1_2.php" method="post">
  27. <select name="metoda_szukania2">
  28. <option value="Twr_Nazwa">Nazwa</option>
  29. <option value="Twr_Kod">Kod</option>
  30. </select>
  31. <br />
  32. WprowadŸ poszukiwane wyrażenie:<br />
  33. <input name="wyrazenie2" type="text" size="40">
  34. <br />
  35. <input type="submit" name="submit2" value="Szukaj">
  36. </form>
  37.  
  38.  
  39.  
  40.  
  41. <form action="step3.php" method="post">
  42. <?php
  43. if ($_POST['submit2']) {
  44.  
  45. // utworzenie krótkich nazw zmiennych
  46. $metoda_szukania2=$_POST['metoda_szukania2'];
  47. $wyrazenie2=trim($_POST['wyrazenie2']);
  48.  
  49. $wyrazenie2 = trim($wyrazenie2);
  50.  
  51. if (!$metoda_szukania2 || !$wyrazenie2) {
  52. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  53. }
  54.  
  55. $metoda_szukania2 = addslashes($metoda_szukania2);
  56. $wyrazenie2 = addslashes($wyrazenie2);
  57. }
  58.  
  59. include 'connection.php';
  60.  
  61. $pytanie = "select * from CDN.Towary where ".$metoda_szukania2." like '%".$wyrazenie2."%' and Twr_Typ='0'";
  62. $uzyskanie = mssql_query($pytanie);
  63.  
  64. $ile_znalezionychu = mssql_num_rows($uzyskanie);
  65.  
  66. echo "<p>Iloœć znalezionych pozycji: ".$ile_znalezionychu."</p>";
  67. for ($u=0; $u <$ile_znalezionychu; $u++) {
  68. ?>
  69. <?php
  70. $r = mssql_fetch_assoc($uzyskanie);
  71. echo "<p><strong>".($u+1).". ";
  72. echo stripslashes($r['Twr_Nazwa']);
  73. echo '<input name="iduslugi[]" value="'.$r['Twr_TwrId'].'" type="checkbox" /><br />';
  74.  
  75. }
  76. ?>
  77. <form action="step3.php" method="post">
  78. <input type="submit" value="zapisz"/>
  79. </form>
  80. <?php
  81. }
  82. ?>
  83. </body>
  84. </html>


step3.php (tu mi nie wyświetla)
  1. <?php
  2. print_r($_GET);
  3. print_r($_SESSION);
  4. ?>
  5.  
  6. <html>
  7.  
  8. <head>
  9. <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-2">
  10. <title>Wybieranie usług</title>
  11. <link rel="stylesheet" type="text/css" href="css/styles.css" />
  12. </head>
  13.  
  14. <body>
  15. <?php
  16. include 'connection.php';
  17. if ($_POST['iduslugi']) {
  18. ?>
  19. <table class="z" border="1" frame="void" rules="none">
  20. <?php
  21. foreach ($_POST['iduslugi'] as $idu) {
  22. $_SESSION['iduslugi'] = $_POST['iduslugi'];
  23. $wypytanie = mssql_query("select * from CDN.Towary where Twr_TwrId='$idu' ");
  24. while ($wyp = mssql_fetch_assoc($wypytanie)) {
  25. echo "<tr>";
  26. echo "<td>".$wyp['Twr_Nazwa']."</td>";
  27. echo "</tr>";
  28.  
  29. }
  30. }
  31. echo "<h1>".$_SESSION['id']."</h1>";
  32. ?>
  33. </table>
  34. <?php
  35.  
  36. }
  37.  
  38. ?>
  39. </body>
  40. </html>

I jak? Wiecie już co mam źle?
Go to the top of the page
+Quote Post
erix
post 14.03.2011, 14:08:07
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
I jak?

A dzięki, może być.

Cytat
Wiecie już co mam źle?

Nie. Nie napisałeś, co się TERAZ dzieje. A to była odpowiedź na zadane pytanie.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
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: 14.08.2025 - 03:13