Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> [PHP][MySQL]Formularz POST - odświeżanie strony, zablokowanie dodawania duplikatów
xajart
post 18.10.2009, 14:27:59
Post #1





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Mam problem z rozwiązaniem tego i mam wielką prośbę do was o pomoc z tym.


Mam formularz do uploadowania plików graficznych. Plikom przy uploadowaniu zmieniana jest nazwa na "index.rozszerzenie", gdzie index to jest identyfikator z bazy danych.
Proces wyglada tak użytkownik sobie wybiera plik który chce uploadować, skrypt dodaje do BD nowy wpis, pobierany jest identyfikator tego wpisu i zmieniana jest nazwa pliku, następnie plik wędruje do odpowiedniego katalogu. 


Niestety kiedy odświeże okno plik znowu ładowany jest da katalogu pod inna nazwą (czyli nowym identyfikatorem). Nie wiem jak to zrobić by sprawdzać czy taki plik już nie istnieje. 

Mogłbym wrzucać pliki na serwer w oryginalnych nazwach wtedy za pomocą selecta bym sprawdził czy w bazie danych istnieje taka nazwa, niestety osoba dla której jest ten skrypt robiony chciała aby na serwerze pliki były hronologicznie uporządkowane wg identyfikatorów - wiec takie rozwiązanie odpada. Wieć nie mam jak sprawdzić czy w bazie danych taki plik został już dodany. Czy można to jakoś inaczej rozwiazać i jeżeli tak to jak? Myślałem by sprawdzać na podstawie datatime uploadowanego pliku, ale dajmy na to że ustawie jakiś limit czasu a użytkownik po dłuższym czasie odświezy okno to znowu doda ten sam plik do BD. 

Jak to rozwiązać czy stworzyc dodatkowa kolumnę w BD i zapisywać w niej oryginalna nazwe uploadowanego pliku i na tej podstawie sprawdzać - proszę o jakąś radę bo nie mam pojęcia jak to rozwiązać.

Go to the top of the page
+Quote Post
KuKa
post 18.10.2009, 14:41:33
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 24.03.2008

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


Możesz zrobić tak jak napisałeś z dodatkową kolumną, albo po poprawnym uplodowaniu pliku przekierować użytkownika na inna stronę za pomocą header()... i wtedy po odświeżeniu nic się nie stanie.
Go to the top of the page
+Quote Post
potreb
post 18.10.2009, 15:49:36
Post #3





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


lub dać dla pola w tabeli klucz unique, wtedy nie zapisze AND if(!zapytanie) nie wysyła pliku.


--------------------

Go to the top of the page
+Quote Post
MateuszS
post 18.10.2009, 16:25:57
Post #4





Grupa: Zarejestrowani
Postów: 1 429
Pomógł: 195
Dołączył: 6.10.2008
Skąd: Kraków/Tomaszów Lubelski

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


a moze sesje sie na cos zdadza. Tam gdzie masz formularz daj

  1. session_start(); // w 1szej linijce
  2.  
  3. $_SESSION['kontrolna']=1;


a tam gdzie masz plik wykonywalny php


  1. session_start(); //w pierwszej linii
  2.  
  3. if($_SESSION['kontrolna']==1) {
  4. // uploaduj
  5. $_SESSION['kontrolna']=2;
  6. } else {
  7. header('Location: strona.php');
  8. }


--------------------
O! Zimniok :P
Go to the top of the page
+Quote Post
xajart
post 19.10.2009, 20:46:52
Post #5





Grupa: Zarejestrowani
Postów: 141
Pomógł: 1
Dołączył: 2.12.2008

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


Dziękuje wam wasza pomoc była przydatna, co do sesji to przychodził mi taki pomysł do głowy ale nie wiedziałem jak go zastosować. Co do tego Unique to muszę o tym poczytać bo nigdy tego nie stosowałem. 
Go to the top of the page
+Quote Post
nospor
post 20.10.2009, 07:40:19
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale przeglądajmy przyklejony tematy...
http://forum.php.pl/index.php?showtopic=44...t=0&start=0


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post

Closed 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: 19.07.2025 - 09:51