Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pętla, która sprawdza, czy takie coś już było
-=Lukasz=-
post 6.11.2008, 16:45:04
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.08.2008

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


Witam.



Wie ktoś jak napisać pętle, która sprawdza z danego pliki .txt, czy dane słowo/link wpisany do formularza znajduje się w bazie?
Go to the top of the page
+Quote Post
phpion
post 6.11.2008, 16:48:53
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(-=Lukasz=- @ 6.11.2008, 18:45:04 ) *
sprawdza z danego pliki .txt, czy dane słowo/link wpisany do formularza znajduje się w bazie?

Ale namieszałeś:
- formularz -> plik
- formularz -> baza
- plik -> baza
? Czym jest źródło danych i gdzie ma sprawdzać?
Go to the top of the page
+Quote Post
-=Lukasz=-
post 6.11.2008, 16:58:33
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.08.2008

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


Po wpisaniu do textu w formularz.php leci do warunki.txt i sprawdza, czy dany link może być dodany do bazy, potem zapisuje go do baza.txt

Ma sprawdzać, czy w baza.txt istnieje dany plik/link wpisany do formularza.
Go to the top of the page
+Quote Post
phpion
post 6.11.2008, 17:07:56
Post #4





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




http://pl.php.net/manual/pl/function.fgets.php

Masz tu idealny przykład (przykład nr 1). Wystarczy dodać warunek $buffer == $dane_z_formularza i w przypadku spełnienia w którymkolwiek wierszu nie dopuścić do zapisu danych. Dodajesz 2 linijki i po zabawie (+ oczywiście zapis do pliku).
Go to the top of the page
+Quote Post
-=Lukasz=-
post 6.11.2008, 17:53:16
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 27.08.2008

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


Nie mam pojęcia jak to zrobić. :/



Pomógłbyś? Byłbym bardzo wdzięczny.
Go to the top of the page
+Quote Post
phpion
post 6.11.2008, 17:57:54
Post #6





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Cytat(-=Lukasz=- @ 6.11.2008, 19:53:16 ) *
Nie mam pojęcia jak to zrobić. :/

Cóż, bywa.

Cytat(-=Lukasz=- @ 6.11.2008, 19:53:16 ) *
Pomógłbyś?

Wydaje mi się, że pomogłem w wystarczającym stopniu.

Cytat(-=Lukasz=- @ 6.11.2008, 19:53:16 ) *
Byłbym bardzo wdzięczny.

To niestety nie będziesz.

Podałem ci link do gotowego skryptu odczytującego plik linia po linii. Wystarczy, że dodasz warunek, o którym pisałem wcześniej. Jeśli warunek jest spełniony ustawiasz wartość $znaleziono = true (wcześniej, przed fopen() dajesz $znaleziono = false aby zainicjować zmienną odpowiednią wartością) i robisz break aby niepotrzebnie nie sprawdzać dalej. Po wyjściu z pętli i po zamknięciu pliku sprawdzasz wartość $znaleziono. Jeśli to false to dopisujesz nowe dane do pliku (bo nie znaleziono ich w pliku); w przeciwnym wypadku nie robisz nic.

Próbuj!
Go to the top of the page
+Quote Post
marcio
post 6.11.2008, 18:01:56
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Eh.. nie chce napisac jakiejs bomby bo nie sprawdzalem ani nic a dzis nie ufam mojej logice tu masz jak by to mialo mniej wiecej wygladac ale nie wiem czy zadziala:
  1. <?php
  2. if(isset($_POST['sprawdz'])) {
  3.  
  4. $file = file('plik.txt');
  5. $explode = explode('r\n', $file);
  6. $count = count($explode);
  7.  
  8. for($i = 0; $i < $count; $i++) if($explode[$i] != $_POST['link']) {
  9.  
  10. $fp = fopen('plik.txt', 'w+');
  11. if(fwrite($fp, $_POST['link'].'r\n')) echo('Zapisano link');
  12. fclose($fp);
  13.  
  14.   }
  15. else echo('Taki link juz istnieje');
  16. }
  17. ?>

Oczywiscie dodaj jakas filtracje to raz dwa to dodaj blokowanie pliku podczac zapisywania.

P.S i nie wiem czy nie bedziesz musial zmienic zeby zapisywalo zawsze na koncu/poczatku pliku bo nie pamietam na pamiec czy tryb "w+" to robi, i kazdy link w pliku plik.txt powinien byc w nowej lini

Ten post edytował marcio 6.11.2008, 18:03:35


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.07.2025 - 18:35