Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z $_SESSION
Forum PHP.pl > Forum > Przedszkole
kuba_pilach
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...
wookieb
Wywal tego unseta i wróć do podstaw obsługi sesji.
kuba_pilach
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...
wookieb
A jak myślisz co robi twój unset w twoim przykładzie?
kuba_pilach
Dobra, usunąłem i nic nie zmieniło się...
krzywy36
  1. $wynikzapytania = $_SESSION['id'];

powinno być na odwrót
kuba_pilach
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] => )
Istalacar
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.
kuba_pilach
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
-Istalacar-
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.
kuba_pilach
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?
erix
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.
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.