Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Cache
spenalzo
post
Post #1





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Podczas wypełniania formularza sprawdzana jest poprawność wypełnienia pól. Jeżeli jakieś pola są puste, to użytkownik dostaje link do cofnięcia się (poprzez JS). I tutaj jest problem: mimo że nie wysłałem nigdzie nagłówków o cache'u a mimo to przeglądarka pokazuje, że strona wygasła... Co z tym zrobić?

Dodam, że korzystam z IE 6.0
Go to the top of the page
+Quote Post
lark
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Gorzów Wielkopolski

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


Ja to robię tak...
[php:1:ad16090aa4]<?php
//Obsługa formularza, jeśli go zatwierdzono
if(eregi ("^[[:alnum:]]+$", $HTTP_POST_VARS[author])) {
$a = TRUE;
} else {
$a = FALSE;
print("Proszę podać swoje imię, ewentualnie nick.<BR>");
}

//Sprawdzenie czy użytkownik wprowadził adres email w poprawnym formacie
if(eregi("^([[:alnum:]]|_|.|-)+@([[:alnum:]]|.|-)+(.)([a-z]{2,4})$", $HTTP_POST_VARS[email])) {
$b = TRUE;
} else {
$b = FALSE;
print("Proszę wprowadzić poprawny adres e-mail.<BR>");
}

//Jeżeli dane spełniają; wszystkie kryteria zarejestrowananie nowego użytkownika
if($a AND $(IMG:http://forum.php.pl/style_emoticons/default/cool.gif)
{

?>[/php:1:ad16090aa4]

I jak delikwent nie wypełni pola, lub wypełni źle, to również cofam go przez java script:history.back() i działa jak złoto. Pola wypełnione nadal są wypełnione. I nic nie wygasa. Acha używam tylko Mozilli, ale wątpię aby to miało jakieś znaczenie.
Go to the top of the page
+Quote Post
rzseattle
post
Post #3





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


jesli w adresie URL masz ?zmienna=costam to przegladarka uznaje strone za potrzebujaca odswiezenia do poprawnego dzialania.

najprostszy sposob na rozwiazanie problemu to w js napisac cos co sprawdzi ci poprawnosc formularza na miejscu bez przekierowywania
np cos takiego
Kod
function sprawdz(form)

{

var i;

for (i=0;i<form.length;i++)

{

  if (form.elements[i].type=="text")

  {

   if(form.elements[i].value=="")

   {

    return false;

   }

  }

}

}
Go to the top of the page
+Quote Post
spenalzo
post
Post #4





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


No tak jak napisałem, używam javascriptu a strona wygasa. Należy zauwzyć także, że jeżeli jest to wina IE 6.o to jest problem bo około 30% ludzi używa tej wersji.

Ale problem rozwiązałęm już - zapisuję całe dane w sesji, cofam użytkownika normalnym linkiem i wklejam tekst do formularza. Tzn. nie napisałem jeszcze tego, ale raczej będzie działać.
Go to the top of the page
+Quote Post
lark
post
Post #5





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Gorzów Wielkopolski

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


Cytat
jesli w adresie URL masz ?zmienna=costam to przegladarka uznaje strone za potrzebujaca odswiezenia do poprawnego dzialania.


Bzdury opowiadasz... normalnie bzdury.
Poza tym sprawdzenie formularza przez JS to lekkie nieporozumienie.
Go to the top of the page
+Quote Post
spenalzo
post
Post #6





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
jesli w adresie URL masz ?zmienna=costam to przegladarka uznaje strone za potrzebujaca odswiezenia do poprawnego dzialania.

No faktycznie mam - ?krok=2. Ale czy tak jest? Chyba że w IE 6.0 bo np. w Mozilli czy IE 5.0 takie formularze działały OK.
Go to the top of the page
+Quote Post
e-Gandalf
post
Post #7





Grupa: Przyjaciele php.pl
Postów: 195
Pomógł: 0
Dołączył: 7.07.2003
Skąd: Warszawa

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


Sprawdzenie formularza przez JS to moim zdaniem obowiazkowa rzecz w kazdym formularzu. Dzieki temu uzytkownik bez potrzeby tysiecy przeladowan wie gdzie popelnil blad.

Jednoczesnie, obowiazkowo TRZEBA sprawdzic tez forumlarz po stronie serwera, poniewaz Rule Nr1 - Never trust the User.
Co do cofania, to zamiast cofac, mozna wymusic reload... wowczas na pewno przeladuje.
Go to the top of the page
+Quote Post
lark
post
Post #8





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Gorzów Wielkopolski

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


Cytat
No faktycznie mam - ?krok=2. Ale czy tak jest? Chyba że w IE 6.0 bo np. w Mozilli czy IE 5.0 takie formularze działały OK.


addcomments.php?id=9 - taki URL mam skrypcie który sprawdza formularz.
Sprawdziłem właśnie w IE6 nie wygasa strona, a sprawdzam tym sposobem co opisałem. Powrót przez JS jest błyskawiczny, a formularz sprawdzam tylko Server-Side.
Go to the top of the page
+Quote Post
spenalzo
post
Post #9





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Sprawdziłem jeszcze raz i wygasa - mogę Wam zrobić AVIka ze zrzutem ekranu :-D
Go to the top of the page
+Quote Post
rzseattle
post
Post #10





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
Poza tym sprawdzenie formularza przez JS to lekkie nieporozumienie.

a czego ci brakuje w takiej weryfikacji - wyrażenia regularne są i czego więcej do szczescia trzeba. Oczywiście jezeli chcesz porównać dane z forma np z danymi z bazy danych to juz nie js no ale wtedy mozesz zrobic zwyklego linka a values do inputow wyslac sesja.
Js ma ta zalete ze mozna w nim wychwycic wszystkie bledy w stylu "podaj email: hdssdsk." itd co jest bardzo wygodne i dla ciebie (nie zasmiecasz kodu php pobiezna weryfikacja) i dla usera (szybka akcja, brak przeladowania, focus na zle wypełnione pole)

Wiec czemu mowisz ze to nieporozumienie?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Cytat
Bzdury opowiadasz... normalnie bzdury.


Fakt nie jestem pewien (opisałem jedynie własne obserwacje) no ale moze ktos w koncu definitywnie wyjasni jak z tym jest?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)
Go to the top of the page
+Quote Post
spenalzo
post
Post #11





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Dobra, chłopcy, już rozwiązałem swój problem :-) Nie zagryzajcie się!
Go to the top of the page
+Quote Post
rzseattle
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


To teraz moze powiiesz jak go rozwiazales?
Go to the top of the page
+Quote Post
lark
post
Post #13





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 3.05.2003
Skąd: Gorzów Wielkopolski

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


Cytat
Wiec czemu mowisz ze to nieporozumienie?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Chociażby dlatego, że user sobie może wyłączyć w przeglądarce obsługę JS i cała Twoja robota idzie na marne.
Go to the top of the page
+Quote Post
spenalzo
post
Post #14





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Cytat
Ale problem rozwiązałęm już - zapisuję całe dane w sesji, cofam użytkownika normalnym linkiem i wklejam tekst do formularza. Tzn. nie napisałem jeszcze tego, ale raczej będzie działać.


Cytat
Chociażby dlatego, że user sobie może wyłączyć w przeglądarce obsługę JS i cała Twoja robota idzie na marne.

Właśnie dlatego nie mogę się przekonać do JS.
Go to the top of the page
+Quote Post
e-Gandalf
post
Post #15





Grupa: Przyjaciele php.pl
Postów: 195
Pomógł: 0
Dołączył: 7.07.2003
Skąd: Warszawa

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


Cytat
a czego ci brakuje w takiej weryfikacji - wyrażenia regularne są i czego więcej do szczescia trzeba.
[..]
Wiec czemu mowisz ze to nieporozumienie?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Bo JSa nie mozesz byc pewien. JS jest dla uzytkownika, ale nie mozesz oprzec sie wylacznie na JS sprawdzajac czy email jest prawidlowym adresem. Albo czy pole name nie jest puste.

Cytat
Fakt nie jestem pewien (opisałem jedynie własne obserwacje) no ale moze ktos w koncu definitywnie wyjasni jak z tym jest?(IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)


Przegladarka ZAWSZE zaladuje strone w dwoch wypadkach:

1) reload
2) nowy URL (czyli np. mozemy dawac losowa zmienna w URLu zawsze inna...)

Reszta zalezy od przegladarki - czasem wystarczy ustawic META no-cache, czasem nie...

Jesli np. wysylasz formularz i cos nie poszlo, warto zrobic z poziomu php reload ze wskazaniem na adres formularza
Go to the top of the page
+Quote Post
spenalzo
post
Post #16





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

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


Dodam jeszcze, że przy kliknięciu "Back" czy "Forward" strona również wygasa i to że linki są w postaci strona.php/zm1/zm2/.
Go to the top of the page
+Quote Post
rzseattle
post
Post #17





Grupa: Przyjaciele php.pl
Postów: 554
Pomógł: 0
Dołączył: 4.04.2002
Skąd: Tychy

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


Cytat
Chociażby dlatego, że user sobie może wyłączyć w przeglądarce obsługę JS i cała Twoja robota idzie na marne.

w sumie to tu masz racje, ale i tak mysle ze wiekszosc z nas nie musi sie obawiac ze ktos wylaczy js bo wtedy i tak najwyzej co moze zrobic to podac dane a nie uzyskac dostep do danych (identyfikacja zawsze i tak jest na servie) a js jest bardzo wygodny (jak juz wczesniej wspominalem) i jak dla mnie to taki system ma o wiele węcej plusow niz minusow pozatym mozna zawsze zrobic weryfikacje i w php i w js
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.12.2025 - 21:39