Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Przedszkole _ [PHP]Sesja czasowa.

Napisany przez: Salur 1.07.2015, 08:34:05

Witam, jak mogę stworzyć sesję która po 5 minutach zniknie?

Napisany przez: Turson 1.07.2015, 08:36:50

http://stackoverflow.com/questions/520237/how-do-i-expire-a-php-session-after-30-minutes

Napisany przez: Salur 1.07.2015, 08:58:47

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.

Napisany przez: Turson 1.07.2015, 09:01:03

No to w pierwszym pliku w ifie tworzysz

  1. $_SESSION['expireTime'] = 12344566789; //unixowy czas wygaśnięcia

w drugim pliku
  1. if(http://www.php.net/isset($_SESSION['expireTime']) && $_SESSION['expireTime'] <= http://www.php.net/time()){
  2. //ok
  3. }

Napisany przez: Salur 1.07.2015, 09:10:05

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.

Napisany przez: Turson 1.07.2015, 09:14:00

time() zwraca aktualny czas w formacie unixowym. Dodajesz do tego 60*5=300 (czyli 60sekund * 5 co daje 5 minut)

Napisany przez: Salur 1.07.2015, 09:20:04

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. }


Napisany przez: Turson 1.07.2015, 09:24:23

Napisałem, że do time() masz dodać 300...

Napisany przez: Salur 1.07.2015, 10:22:48

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ć.

Napisany przez: com 1.07.2015, 12:37:34

musiałbyś pokombinować coś z geolokacja http://us3.php.net/manual/en/book.geoip.php wink.gif

Napisany przez: Salur 1.07.2015, 12:39:30

Kurczę, nie ma jakiegoś prostszego sposobu na to? może na ciasteczkach? pomógłby ktoś?

Napisany przez: com 1.07.2015, 13:29:49

możesz na cookie ale te można oszukać smile.gif

Napisany przez: Turson 1.07.2015, 13:30:50

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

Napisany przez: com 1.07.2015, 13:36:15

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

Napisany przez: Salur 1.07.2015, 13:49:12

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(http://www.php.net/isset($_SESSION['expireTime']) && $_SESSION['expireTime'] <= http://www.php.net/time()){
  2.  
  3. http://www.php.net/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. http://www.php.net/echo "<span><img src='img/succes_icon.png'></img>";
  18. http://www.php.net/echo "<br>";
  19. http://www.php.net/echo "<p>Doreczanie wiadomosci!<br></p>";
  20. http://www.php.net/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. http://www.php.net/mail($emailTo, $subject, $body, $headers);
  11.  
  12. $_SESSION['expireTime'] = http://www.php.net/time() + 120;
  13.  
  14. $_POST = http://www.php.net/array();
  15.  
  16. http://www.php.net/header("Location: index.php"); http://www.php.net/exit;
  17.  
  18.  
  19. }

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)