Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Sesja czasowa.
Salur
post 1.07.2015, 08:34:05
Post #1





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Witam, jak mogę stworzyć sesję która po 5 minutach zniknie?
Go to the top of the page
+Quote Post
Turson
post 1.07.2015, 08:36:50
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


http://stackoverflow.com/questions/520237/...fter-30-minutes
Go to the top of the page
+Quote Post
Salur
post 1.07.2015, 08:58:47
Post #3





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Kurcze, nie potrafię tego stworzyć, dokładniej chodzi mi o to że w jednym pliku po wykonaniu ifa zapisuje sesję a w drugim pliku odpytuję, jesli sesja jest aktywna to wysiwetlam to a jesli nie to cos innego.
Go to the top of the page
+Quote Post
Turson
post 1.07.2015, 09:01:03
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


No to w pierwszym pliku w ifie tworzysz
  1. $_SESSION['expireTime'] = 12344566789; //unixowy czas wygaśnięcia

w drugim pliku
  1. if(isset($_SESSION['expireTime']) && $_SESSION['expireTime'] <= time()){
  2. //ok
  3. }
Go to the top of the page
+Quote Post
Salur
post 1.07.2015, 09:10:05
Post #5





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Okej, dziekuje, jeszcze jakbyś mi mógł podpowiedzieć jak wyglądało by 5 minut w czasie unixowym. Chcę zrobić tak aby po każdym wysłaniu formularza (jesli bedzie zabita sesja) aktywowało sesję na 5 minut.

Ten post edytował Salur 1.07.2015, 09:11:40
Go to the top of the page
+Quote Post
Turson
post 1.07.2015, 09:14:00
Post #6





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


time() zwraca aktualny czas w formacie unixowym. Dodajesz do tego 60*5=300 (czyli 60sekund * 5 co daje 5 minut)
Go to the top of the page
+Quote Post
Salur
post 1.07.2015, 09:20:04
Post #7





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Niestety nie zabija sesji, jeśli coś źle napisałem, proszę o poprawienie.

Pierwszy plik:
  1. $_SESSION['expireTime'] = 300;


Drugi:
  1. if(isset($_SESSION['expireTime']) && $_SESSION['expireTime'] <= time()){
  2.  
  3. echo "<span><img src='img/succes_icon.png'></img>";
  4. echo "<br>";
  5. echo "<p>Wiadomosc została wysłana!<br></p>";
  6. echo "<p style='color:red;'>* Dozwolona tylko jedna wiadomosc na 5 minut!</p>";
  7. }else{
  8.  
  9. ?>
  10. formularz
  11. <?php
  12. }

Go to the top of the page
+Quote Post
Turson
post 1.07.2015, 09:24:23
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Napisałem, że do time() masz dodać 300...
Go to the top of the page
+Quote Post
Salur
post 1.07.2015, 10:22:48
Post #9





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Dziekuję. Ostatni myślę że już problem mam.

Sesja zapisuję się dla wszystkich komputerów a chce aby zapisała się tylko dla tego z którego jest wysyłany formularz. Dodam że strona bez logowania więc, nie wiem jak to zrobić.


Ten post edytował Salur 1.07.2015, 12:31:59
Go to the top of the page
+Quote Post
com
post 1.07.2015, 12:37:34
Post #10





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


musiałbyś pokombinować coś z geolokacja http://us3.php.net/manual/en/book.geoip.php wink.gif
Go to the top of the page
+Quote Post
Salur
post 1.07.2015, 12:39:30
Post #11





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Kurczę, nie ma jakiegoś prostszego sposobu na to? może na ciasteczkach? pomógłby ktoś?
Go to the top of the page
+Quote Post
com
post 1.07.2015, 13:29:49
Post #12





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


możesz na cookie ale te można oszukać smile.gif
Go to the top of the page
+Quote Post
Turson
post 1.07.2015, 13:30:50
Post #13





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Cytat(Salur @ 1.07.2015, 11:22:48 ) *
Sesja zapisuję się dla wszystkich komputerów a chce aby zapisała się tylko dla tego z którego jest wysyłany formularz. Dodam że strona bez logowania więc, nie wiem jak to zrobić.

To ustawiaj sesje tylko dla tych którzy wyślą formularz
Go to the top of the page
+Quote Post
com
post 1.07.2015, 13:36:15
Post #14





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


no to w sesji zapisuj informacje że wysłany został formularz smile.gif
i tak jak powiedział Turson smile.gif

Ten post edytował com 1.07.2015, 13:37:40
Go to the top of the page
+Quote Post
Salur
post 1.07.2015, 13:49:12
Post #15





Grupa: Zarejestrowani
Postów: 179
Pomógł: 0
Dołączył: 28.12.2014

Ostrzeżenie: (20%)
X----


Ustawiłem stały czas 2 minut dla każdego usera lecz znów uwczesny problem. Sesja nie znika. Czasem znika czasem nie, ktoś wie czemu tak jest? , poniżej kod:

PLIK 1
  1. if(isset($_SESSION['expireTime']) && $_SESSION['expireTime'] <= time()){
  2.  
  3. echo '<div style="position: relative; top: -17px;">
  4. <form action="kontakt.php" method="POST">
  5. <input type="text" maxlength="45" placeholder="email@strona.pl" name="email" id="email">
  6. <br width="50%">
  7. <textarea style="width: 309px; height: 105px;resize: none;" name="opis" id="opis" placeholder="Tresc wiadomosci..." maxlength="225"></textarea>
  8. <br><br>
  9. <input type="submit" value="" id="przycisk" name="przycisk" />
  10. </form>
  11. </div>
  12. <p style="position: relative;top: -54px;font-size: 12px;left: -7px;width: 267px;display: inline;">*Piszac wiadomosc postaraj sie zachowac poprawnosc jezykowa.</p>
  13. <p style="position: relative;top: -64px;right: -147px;font-size: 12px;width: 150px;">(info) Odpiszemy w czasie 48h.</p>';
  14.  
  15. }else{
  16.  
  17. echo "<span><img src='img/succes_icon.png'></img>";
  18. echo "<br>";
  19. echo "<p>Doreczanie wiadomosci!<br></p>";
  20. echo "<p style='color:red;'>* Wiadomość dozwolona raz na 2 minuty!</p>";
  21.  
  22. }
  23. ?>


PLIK2

  1. if($dalej){
  2.  
  3. $emailTo = "l";
  4. $subject = 'y.';
  5.  
  6. $body .= " bla bla";
  7.  
  8. $headers = "Content-type: text/html; charset=utf8";
  9.  
  10. mail($emailTo, $subject, $body, $headers);
  11.  
  12. $_SESSION['expireTime'] = time() + 120;
  13.  
  14. $_POST = array();
  15.  
  16. header("Location: index.php"); exit;
  17.  
  18.  
  19. }


Ten post edytował Salur 1.07.2015, 14:04:48
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: 29.03.2024 - 00:34