Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Obrona przed wieloma zakładkami w przeglądarkach..., Jak zablokować możliwość otwierania wielu zakładek na raz w przeglądar
ksenonlogin
post
Post #1





Grupa: Zarejestrowani
Postów: 123
Pomógł: 3
Dołączył: 29.10.2011

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


Witam

Chcę wprowadzić do mojego cms-a w panelu administratora ograniczenie polegające na możliwości przeglądania tylko jednej aktywnej zakładki, natomiast przy otwarciu dodatkowej zakładki przy aktywnej pozostałej ma być wyświetlane ostrzeżenie zamiast treści docelowej danej zakładki.

Z takiego systemu korzystają obecnie strony banków, więc jest to możliwe - tylko jak to zrobić bez zbędnego kombinowania...?


Z góry dzięki za odpowiedzi czy jakieś wskazówki (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Z takiego systemu korzystają obecnie strony banków,
O ile na stronie banku rozumiem taki motyw, to jakby mi ktoś kazał działać na takim cms, gdzie nie mogę mieć kilku zakładek, to nieźle bym w myślach tego kogoś zjechał....
Go to the top of the page
+Quote Post
uupah5
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 18
Dołączył: 4.09.2010
Skąd: warszawa

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


Cytat
Chcę wprowadzić do mojego cms-a w panelu administratora ograniczenie polegające na możliwości przeglądania tylko jednej aktywnej zakładki, natomiast przy otwarciu dodatkowej zakładki przy aktywnej pozostałej ma być wyświetlane ostrzeżenie zamiast treści docelowej danej zakładki.

jedna z możliwych implementacji:
buttony/linki i inne elementy nawigacyjne opierasz o <input>
całość zawarta jest w formularzu gdzie w polu hidden dajesz zakodowane dane związane z sesją, identyfikujące usera i kontekst.
otwarcie strony w nowej karcie nie będzie możliwe - strona w nowej zakładce nie będzie zawierała danych z pola hidden, czyli niezbędne będzie zalogowanie na każdej nowej zakładce (efekt jakbyś pracował jednocześnie w niezależnych przeglądarkach)
to zarys rozwiązania, opisałem główne elementy występujące po stronie klienta.

Go to the top of the page
+Quote Post
hind
post
Post #4





Grupa: Zarejestrowani
Postów: 142
Pomógł: 24
Dołączył: 30.03.2009
Skąd: Rokitno Szlacheckie

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


przede wszystkim to JS albo formularze POST
Go to the top of the page
+Quote Post
Thommee
post
Post #5





Grupa: Zarejestrowani
Postów: 12
Pomógł: 0
Dołączył: 8.08.2010

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


  1. <?php
  2.  
  3. $currentCode = isset($_GET['currentCode']) ? $_GET['currentCode'] : '';
  4.  
  5. if (isset($_SESSION['expecedCode'])) {
  6. if ($_SESSION['expecedCode'] !== $currentCode) {
  7. // session_destroy();
  8. throw new Exception('Nieautoryzowany dostęp');
  9. }
  10. }
  11.  
  12. $expectedCode = sha1(session_id() . microtime(true));
  13. $_SESSION['expecedCode'] = $expectedCode;
  14.  
  15.  
  16. ?>
  17. <!DOCTYPE html>
  18. <html lang="pl">
  19. <head>
  20. <meta charset="utf-8">
  21. <script type="text/javascript" src="jquery.js"></script>
  22. <script type="text/javascript">
  23. var currentCode = '<?php echo $expectedCode?>';
  24.  
  25. $(document).ready(function(){
  26. $("a").live('click', function(e){
  27. e.preventDefault();
  28. location.href = $(this).attr('href') + '&currentCode=' + currentCode;
  29. });
  30. $('form').live('submit', function(){
  31. $(this).attr('action', $(this).attr('action') + '&currentCode='+currentCode);
  32. });
  33. });
  34.  
  35. </script>
  36. </head>
  37. <body>
  38. <a href="?some=data">link</a>
  39. <p><?php echo date('H:i:s'); ?></p>
  40. </body>
  41. </html>
  42.  


Masz tutaj prosty przykład "na szybko". Potrzeba jquery.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 09:44