Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php i mysql] jak zabezpieczyc sie przed refresh?
rml
post 30.03.2005, 01:38:28
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


witam,

jest skrypt powiedzmy dodaj.php ktory obsluguje polecenie dodania do bazy danych rekordu.

user uruchamia go linkiem i skrypt dodaje do bazy danych odpowiednie wpisy podawane przez <form>.
ale w momencie gdy user nacisnie refresh wszystkie te dane sa dodawane jeszcze raz! co zrobic zeby sie przed tym zabezpieczyc?

i niestety nie moge zrobic tak, ze jesli dany wpis juz istnieje to ma nie wpisywac, bo wpisuje zmienna ktora bycmoze trzeba bedzie wpisac ponownie...


pozdro,
rml.

Ten post edytował rml 30.03.2005, 01:39:20
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
dr_bonzo
post 30.03.2005, 02:14:42
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Przekierowac go na inna strone: header() -> szukaj na forum.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
rml
post 30.03.2005, 21:26:29
Post #3





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


a czy sa inne sposoby?
Go to the top of the page
+Quote Post
dr_bonzo
post 30.03.2005, 22:39:03
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Oczywiscie mozna to zrobic w php a nie w JS: setcookie()
Cookiesy zabezpiecza cie przed refreshem (tzn przypadkowym odswierzeniem strony) ale user moze usunac/zablokowac cookie i bedzie mogl dodawac rekordy.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
rml
post 30.03.2005, 23:04:18
Post #5





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


ha,

widzicie... zbieranie IP to jest idea - ale nie w moim przypadku - moze napisze konkretnie o co mi chodzi:

mam koszyk do ktorego ktos dodaje produkt - 1 szt. i teraz na stronie ktora sie pokazuje jako wynik dodania do koszyka - jesli on kliknie refresh to skrypt doda kolejna sztuke do koszyka...

co zrobic zeby tak sie nie dzialo?
Go to the top of the page
+Quote Post
hwao
post 31.03.2005, 06:41:56
Post #6


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




  1. <?php
  2. echo '<pre>'.print_r( $_SERVER, true ).'</pre';
  3. // wybierz sobie linka a potem go
  4.  
  5. header( 'Location: '.$_SERVER['xxx'] );
  6.  
  7. ?>

Wtedy ulega "oczyszczeniu" post
Go to the top of the page
+Quote Post
rml
post 2.04.2005, 18:44:52
Post #7





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


wszystko super, ale...

nie bardzo rozumiem zasade dzialania tego header()...

wykumalem linie:

  1. <?php
  2.  
  3. header( 'Location: '.$_SERVER['SCRIPT_NAME'] );
  4.  
  5. ?>


ale gdzie mam ja wstawiac? na poczatku pliku ktory chce zabezpieczyc przed refresh? czy na koncu? co to jest Location: ? w html w head nigdy nie widzialem czegos takiego...


pozdro,
rml.
Go to the top of the page
+Quote Post
vala
post 2.04.2005, 19:23:05
Post #8





Grupa: Zarejestrowani
Postów: 123
Pomógł: 0
Dołączył: 12.01.2005

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


Location - miejsce w ktore header odsyla
a uzywa sie tego miej wiecej w ten sposob
  1. <?php
  2.  
  3.  
  4. if(mysql_query($bleble))
  5. {
  6.  header( 'Location: '.$_SERVER['SCRIPT_NAME'] );
  7. }
  8.  
  9.  
  10. ?>



poprostu przekierowujesz sie na strone przed formem....wtedy juz refresh nie bedzie dzialac


--------------------
Warsztat: Easy PHP 1.7:Apache 1.3.27|PHP 4.3.3|PHPMYADMIn 2.5.3|MYSQL 4.0.15
Go to the top of the page
+Quote Post
rml
post 2.04.2005, 21:47:12
Post #9





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


wszystko fajnie, tylko ze jak cos takiego robie to on krzyczy ze headersy zostaly juz wyslane i ze nie moze tego odpalic...


regs,
rml.
Go to the top of the page
+Quote Post
strife
post 2.04.2005, 22:30:05
Post #10





Grupa: Przyjaciele php.pl
Postów: 2 605
Pomógł: 96
Dołączył: 22.10.2004
Skąd: UK

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


Cytat(rml @ 2005-04-02 20:47:12)
wszystko fajnie, tylko ze jak cos takiego robie to on krzyczy ze headersy zostaly juz wyslane i ze nie moze tego odpalic...


regs,
rml.

Witam,

Wpisz na początku ob_start();

Pozdrawiam!


--------------------
Go to the top of the page
+Quote Post
rml
post 19.04.2005, 00:36:15
Post #11





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 13.03.2005

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


hehe - wrocilem do tematu smile.gif bo nie jest specjalnie palacy winksmiley.jpg ale, wiecie co? to ob_start() nie pomoglo smile.gif nadal wywala warning, ze headersy zostaly wyslane...

any ideas?


pozdro,
rml.
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.08.2025 - 02:10