Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Restrykcja pliku .php
playdewu
post
Post #1





Grupa: Zarejestrowani
Postów: 41
Pomógł: 0
Dołączył: 12.07.2013

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


Cześć.
Mam sobie skrypt:
  1. <?php
  2. $tablica = array(
  3. 0 => 'http://forum.php.pl',
  4. 1 => 'http://google.pl',
  5. 2 => 'http://wp.pl'
  6. );
  7.  
  8. $day = $row['last_day']; // w tej zmiennej zakładam, że masz ostatni numer dnia tygodnia, zgodny z funkcją date(), czyli 0 (dla Niedzieli) aż do 6 (dla
  9.  
  10. Soboty).
  11. if ( $day !== date("w", time()) )
  12. {
  13. echo '<center><a href="'.$tablica[(date("w", time()))].'" id="loading-link" TARGET="_blank"><img src="images/webshop/KT.png"></a></center>';
  14. $sql = "update ..."; // tutaj aktualizujesz tą zmienną $day, na obecny dzień, pobierasz ją z tej funkcji: date("w", time())
  15. }
  16. ?>

Skrypt ten co dzień aktualizuje wartość href pobierając ją z $tablicy.

I teraz dwa pytania:
1. Jak nadać takiemu odnośnikowi dzienny limit wejść? (osoba może wejść w dany odnośnik tylko raz dziennie, potem odnośnik się "blokuje")
2. Jak nadać sprawdzanie czy osoba jest zalogowana? Jeżeli niezalogowana, nie może zobaczyć treści danego skryptu.

Forum stoi na systemie plików phpBB by Przemo 1.12.7.
Będę niezmiernie wdzięczny za pomoc, jest mi to bardzo potrzebne.

Ten post edytował playdewu 26.08.2014, 10:11:46
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Michael2318
post
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Ad. 2:

  1. if ( $userdata['session_logged_in'] )
  2. {
  3. echo 'osoba jest zalogowana, pokaż jej ten skrypt tutaj';
  4. }
  5. else
  6. {
  7. echo 'Nie jesteś zalogowany! Zaloguj się: <a href="login.php">CLICK</a>';


Ad. 1:

Po kliknięciu w odnośnik twórz ciastko - funkcja setcookie - i potem przy klikaniu sprawdzaj czy ciacho istnieje - jeśli tak to odrzucaj próbę kliknięcia w link. Możesz do tego celu wykorzystać evercookies (google -> javascript evercookies). Jeśli to jest tylko dla zalogowanych użytkowników - w tabeli z userami stwórz pole tinyint(1) NOT NULL DEFAULT 0. Po kliknięciu w link aktualizuj pole na wartość 1 i jeśli to pole dla danego usera jest równe 1 - odrzucaj jego "kliknięcie".

Do tego należałoby zapisywać czas, kiedy to pole zostało zaktualizowane na wartość 1. Potem odbierasz ten czas i sprawdzasz czy to ten sam dzień na podstawie czasu czy też nie. Jeśli nie to aktualizuj po zalogowaniu usera, to pole na wartość 0 z powrotem.

EDIT:

Albo po prostu stwórz jedno pole z samym czasem: int(11) NOT NULL i po kliknięciu pchaj tam czas. Przy próbie kliknięcia w link, pobieraj od usera ten czas i rób taki warunek:

  1. if ( ($row['last_clicked']+86400) < time())
  2. {
  3. // zezwalasz na kliknięcie bo od ostatniego kliknięcia mineło wiecej niz 24h
  4. // pamiętaj tez o aktualizacji pola z czasem na czas obecny
  5. }
  6. else
  7. {
  8. die('odczekaj 24h od ostatniego klikniecia'); // wysiwetlasz blad bo minelo mniej niz 24h
  9. }


Ten post edytował Michael2318 26.08.2014, 10:29:32
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 07:02