Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Odliczanie w rejestracji
Forum PHP.pl > Forum > Przedszkole
Magik125
Witam...
Nie wiem jak zrobić żeby po zarejestrowaniu usera z tego samego ip trzeba było odczekać np. 2 godziny
pojas
Jeśli chodzi Ci o to, żeby użyszkodnik musiał odczekać 2h żeby dodonać nowej rejestracji to możesz zapisać ip i czas rejestracji w bazie danych, a przy samej rejestracji sprawdzać czy nie ma wpisu z pobranym ip: jeśli jest - sprawdzasz godziny. Przy mniejszym odstępie czasu niż 2h wyśiwetlasz komunikat, a przy większym zapisujesz nową godzinę i rozpoczynasz rejestrację.

Innego sensu takiej blokady nie widzę... ( np. po rejestracji czekać 2h do pierwszego zalogowania )
Magik125
Zrobiłem w bazie z polem ip ale w skrypcie jest cos zle ze nie sprawdza.

  1. <?php
  2. function rejestracja ($user, $pass1, $pass2, $email, $ip){
  3.  
  4. if($user == '' || $pass1 == '' || $pass2 == '' || $email == '') {
  5.  
  6. echo 'Wypełnij pola';
  7.  
  8. }
  9.  
  10. else {
  11.  
  12. if($pass1 != $pass2) {
  13. echo 'Hasla sa bledne';
  14. }
  15.  
  16. else {
  17.  
  18. include('connect.php');
  19.  
  20. $zap1 = "SELECT * FROM users WHERE user = '$user' && ip = '$ip' ";
  21. $wyk1 = mysql_query($zap1);
  22. $count = mysql_num_rows($wyk1);
  23.  
  24. if($count >= 1) {
  25. echo "Taka nazwa juz istnieje lub nie możesz mieć dwóch kont.";
  26. }
  27. else {
  28.  
  29. $mysql = "INSERT INTO users VALUES ('', '$user', '$pass1', '$email', '$ip')";
  30.  
  31. $wykonaj1 = mysql_query($mysql);
  32.  
  33. echo 'Zarejestrowany :)';
  34.  
  35. }
  36. }
  37.  
  38. }
  39. }
  40. ?>



Mam coś takiego
pojas
Cytat
ale w skrypcie jest cos zle ze nie sprawdza
Nie widze instrukcji sprawdzającej odstęp czasu.

Może coś w tym stylu guitar.gif
  1. <<?php
  2.  
  3. $ip = $_SERVER['REMOTE_ADDR']; // IP użytkownika
  4.  
  5. $result = mysql_query( "SELECT `register_time` FROM `users` WHERE `register_ip`='$ip'");
  6.  
  7. if($row = mysql_fetch_array( $result )) // jeśli coś znaleziono
  8. {
  9. // różnica czasów - napisz/znajdź odpowiednią funkcję
  10. // zwracającą rożnicę dat w jednostkach godzin
  11. $time_left = odejmij_czasy( $row['register_time'] - date( 'Y-m-d H:i:S' ) );
  12.  
  13. if( $time_left < 2 ) // mniej niż 2 ( jednostki godzin )
  14. {
  15. // komunikat, zatrzymuje rejestrację
  16. }
  17. } else // nie znaleziono wpisu z takim IP
  18. {
  19. // rejestracja
  20. // sprawdza inne możliwości: puste dane, istniejący login
  21. }
  22.  
  23. ?>


edit: Nie rozważyłem przypadku, gdy jest kilka userów zarejestrowanych z jednego IP, ale jeśli zrozumiesz o co chodzi, może napiszesz coś dobrego i sprawnego guitar.gif
Magik125
Dzięki działa smile.gif
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.