Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Sesja czasowa.
Forum PHP.pl > Forum > Przedszkole
Salur
Witam, jak mogę stworzyć sesję która po 5 minutach zniknie?
Salur
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.
Turson
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. }
Salur
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.
Turson
time() zwraca aktualny czas w formacie unixowym. Dodajesz do tego 60*5=300 (czyli 60sekund * 5 co daje 5 minut)
Salur
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. }

Turson
Napisałem, że do time() masz dodać 300...
Salur
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ć.
com
musiałbyś pokombinować coś z geolokacja http://us3.php.net/manual/en/book.geoip.php wink.gif
Salur
Kurczę, nie ma jakiegoś prostszego sposobu na to? może na ciasteczkach? pomógłby ktoś?
com
możesz na cookie ale te można oszukać smile.gif
Turson
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
com
no to w sesji zapisuj informacje że wysłany został formularz smile.gif
i tak jak powiedział Turson smile.gif
Salur
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. }
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.