Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zabezpieczenie przed duplikowaniem danych
Forum PHP.pl > Forum > Przedszkole
nikos
Witam!
Chcę stworzyć funkcję w PHP,która będzie pełnić kilka funkcji.
Otóż chciałbym na stronie umieścić panel gdzie użytkownicy będą podawali swoje dane, np imię, nazwisko, telefon. Potem z zapisanych na stronie na koniec miesiąca będzie losowany jeden, który coś wygra.

Myślałem na początku aby zapisywać dane do pliku tekstowego. A potem za pomocą innej funkcji losować te dane. Hmm niestety nie wiem jak zabezpieczyć funkcję przed tym aby ten sam użytkownik nie wpisał swoich danych kilka razy.
Oto źródła.
1.Funkcja zapisująca dane:
CODE


$imie = $_POST['imie'];
$nazwisko = $_POST['nazwisko'];
$telefon = $_POST['telefon'];
$dane = $imie."\t".$nazwisko."\t".$telefon."\n";

// przypisanie zmniennej $file nazwy pliku
$file = "users.txt";

// uchwyt pliku, otwarcie do dopisania
$fp = fopen($file, "a");

// blokada pliku do zapisu
flock($fp, 2);

// zapisanie danych do pliku
fwrite($fp, $dane);

// odblokowanie pliku
flock($fp, 3);

// zamknięcie pliku
fclose($fp);
echo 'dane zapisane!!!';
?>

Następnie Funkcja losująca dane z pliku


CODE
$d=date("d");
if ($d==30)
{
$tablica=file("users.txt");
$liczba_wpisow=count($tablica);
$los=mt_rand (0,$liczba_wpisow-1);
echo $tablica[$los];
}
else {echo 'losowanie już niedługo';
echo $d;}
echo "
liczba wszystkich wpisów:".$liczba_wpisow;
?>


Czy da się to zrobić? jeszcze jedno czy da się np ustawić w PHP aby funkcja została wykonana tylko raz np 28dnia każdego miesiąca? questionmark.gif

Czy może lepiej zrobić bazę w MYSQL ? niestety jeszcze nie wiem jak to zrobić
Proszę o jakieś wskazówki.
ikssde
O wiele lepiej zrobić tablice w bazie mysql smile.gif Co do wywoływania tego skryptu to poczytaj o CRONie
trike
a jak nie, to zczytaj plik i sprawdz np za pomoca strpos() czy dany podciag istnieje
nikos
Cytat(trike @ 30.03.2009, 15:16:26 ) *
a jak nie, to zczytaj plik i sprawdz np za pomoca strpos() czy dany podciag istnieje


Tzn mógłbyś napisać jak to zrobić?
CODE

// wczytanie pliku
$plik = file_get_contents('plik.txt');
echo $plik;
?>


Czy tak? następnie użycie funkcji strpos()
Dzięki za odpowiedzi co do wykorzystania MYSQL to nie wiem jak się za to za bardzo wziąć
trike
mozesz to zrobic tak jak piszesz:
  1. <?php
  2. $plik = file_get_contents('plik.txt');
  3. if (strpos($plik,"Jan Kowalski")) {
  4. echo "Osoba juz istnieje!";
  5. }
  6. ?>


musisz zwracac uwage na wielkosc liter, wydaje mi sie ze strpos rozroznia male i duze litery, dla pewnosci dobrze zastosowac strtoupper() lub strtolower()
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.