Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: po wybraniu opcji select następuje wylogowanie
Forum PHP.pl > Forum > Przedszkole
john_doe
Witam,
poniżej przedstawiam szkielet/wycinek jednej ze stron. Opiszę problem po kolei. Loguję się do systemu -> otwieram stronę którą wkleiłem poniżej->mam pole select z wyborem miesięcy, poniżej jakieś tam zestawienie odnoszące się do okresu z wybranego pola select->domyślnie otwiera się na bieżącym miesiącu-> i tutaj problem np. otwieram tą strone domyślnie zestawienie za wrzesień jednak gdy wybiorę np sierpień wylogowuje mnie ...

  1. <?php
  2.  
  3. if ( isSet($_SESSION['id'] ) )
  4. {
  5.  
  6. print '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">';
  7.  
  8. print '<html xmlns="http://www.w3.org/1999/xhtml">
  9. <head>
  10. <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"/>
  11.  
  12. <title>....:::: ANALYZER ::::....</title>
  13.  
  14. <style type="text/css" media="all">@import "/analyzer/css/style.css";</style>
  15.  
  16. <style type="text/css" media="all">@import "/analyzer/css/example1.css";</style>
  17. <style type="text/css" media="all">@import "/analyzer/css/podswietlenie_wierszy.css";</style>
  18.  
  19. <script type="text/javascript" src="/analyzer/css/ie5.js"></script>
  20. <script type="text/javascript" src="/analyzer/css/DropDownMenuX.js"></script>
  21. ';
  22.  
  23.  
  24. } else print '<META HTTP-EQUIV=Refresh CONTENT="0; URL=/analyzer/index.php">';
  25.  
  26. ?>
  27.  
  28. </head>
  29.  
  30. <body>
  31.  
  32. <?php
  33.  
  34. $today = getdate();
  35. $year = $today[year];
  36. $month = $today[mon];
  37. $id = $_SESSION['xlid'];
  38.  
  39. include('../../templates/header.php');
  40. include('../../funkcje/returnsAkwMakroregions.php');
  41. include('../../funkcje/returnGidsAkw.php');
  42. include('../../db/conection.php');
  43. include('../../querries/plansQuerries.php');
  44.  
  45. ?>
  46.  
  47. <br />Wybierz miesiąc <br />
  48. <select onChange="window.location.href=this.options[this.selectedIndex].value;">
  49. <option>Wybierz</option>
  50. <option value="http://analyzer/analizy/plans/index.php?id=7">lipiec</option>
  51. <option value="http://nalyzer/analizy/plans/index.php?id=8">sierpień</option>
  52. <option value="http://analyzer/analizy/plans/index.php?id=9">wrzesień</option>
  53. </select>
  54. <br /><br />
  55. <table class="tabela"> <!-- TUTAJ ZACZYNA SIĘ GŁÓWNA TABELKA Z PLANAMI -->
  56. <tr>
  57. <th scope="col">PH</th>
  58. <th scope="col">ROK</th>
  59. <th scope="col">M-C</th>
  60. <th scope="col">WYKONANIE</th>
  61. <th scope="col">PLAN</th>
  62. <th scope="col">STATUS</th>
  63. <th scope="col">BRAKUJE</th>
  64. <th scope="col">% WYKONANIA</th>
  65. </tr>
  66. <?php
  67.  
  68. foreach ($dbh->query( $PLANS_COUNTER_MONTHLY ) as $row)
  69. {
  70. if( $row[8] < 100 )
  71. {
  72. $rowColor = '#F85300';
  73. }else $rowColor = '#BEE48C';
  74.  
  75. print '<tr bgcolor="' . $rowColor . '">';
  76.  
  77. print '<td>' . $row[1] .'</td>';
  78. print '<td>' . $row[2] .'</td>';
  79. print '<td>' . $row[3] .'</td>';
  80. print '<td>' . number_format( $row[4], 2, ', ', ' ' ) .'</td>';
  81. print '<td>' . number_format( $row[5], 2, ', ', ' ' ) .'</td>';
  82. print '<td>' . $row[6] .'</td>';
  83. print '<td>' . number_format( $row[7], 2, ', ', ' ' ) .'</td>';
  84. print '<td>' . number_format( $row[8], 2, ', ', ' ' ) .'</td>';
  85.  
  86. print '</tr>';
  87. }
  88. print '</table>';
  89.  
  90. ?>
  91.  
  92. <?php
  93. include('../../templates/footer.inc');
  94. ?>
  95.  
  96. </body>
  97. </html>



dlaczego? coś nie tak z
onChange="window.location.href=this.options[this.selectedIndex].value;

pozdrawiam
erix
Ok, a identyfikator sesji jest już w ciastku, czy jeszcze nie?
Ociu
Proszę nadać jakiś sensowny tytuł tematowi.
john_doe
w ciastku nie trzymam id sesji.
wszystko info trzymam w zmiennych sesyjnych.
nospor
no to skoro nie trzymach id w ciastku to w czym trzymasz? No przeciez serwer musi wiedziec jaką sesje ma postawic. A jak nigdzie nie trzymasz tego id to nie wie i za kazdym razem stawia nową.

ps: a moze trzymasz tylko o tym nie wiesz winksmiley.jpg domyslnie to jest wlasnie w ciastku i to bez twojej wiekszej wiedzy
john_doe
tak jest nospor.
Ogólnie po zalogowaniu w tablicy $_SESSION trzymam wszystkie potrzebne informacje.
dalej na każdej stronie odpalam session_start();

więc skoro jest coś o czym nie wiem to wydaje mi się że id jest w ciastku smile.gif

Generalnie loguję się ... spaceruję po aplikacji i wszystko działa jednak w tej opcji menu po wybraniu pola select wylogowuje. Gdy się ponownie zaloguje i zrobie to samo to już jest oki.

erix
Zobacz, czy cały czas masz ten sam identyfikator.

Bo na mur coś jest z tym nie tak. ;]
john_doe
hej, możesz mi napisać jak to sprawdzić?
erix
Włącz sobie podgląd ciastek/innych zmiennych (vide: Firebug czy DragonFly) i sprawdzaj, czy ciastko sesyjne ma tę samą wartość.

Poza tym, jest taka fajna funkcja session_id.
john_doe
sprawdziłem id sesji.
dziwna sprawa bo id sesji jest taki sam jednak w przypadku gdy pojawia się błąd wyświetla na chwilę stronę z tym samym id po czym wylogowuje czyli działa ten mój myk w instrukcji warunkowej na początku strony

  1. <META HTTP-EQUIV=Refresh CONTENT="0; URL=/analyzer/index.php">


a to jest strona logowania. Wszędzie tak mam w całej aplikacji i działa ok. Jednak tutaj nie wiem. Mam dziwne przeczucie, że jest to sprawka akcji onChange przypisanej do <select>
erix
Może tak być. Zaraz po zalogowaniu w linkach jest dopisywany SID (ciastko jest wysyłane następnym razem), więc i to sprawdź.

Osobną kwestią jest serwer - na innym jest to samo?
john_doe
hej,
to na bank pole select z akcją onChange.
Gdy dałem zwykłe linki jest OK.
Chciałbym jednak poprawić to tak by zachować sposób wybierania z pola <select> i by od razu przenosiło.

erix
To dopisuj stałą SID do tych URL...
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.