Strict Standards: Non-static method Advanced_Permalinks::get() should not be called statically in /blog/wp-content/plugins/advanced-permalinks/advanced-permalinks.php on line 825

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method GoogleSitemapGeneratorLoader::Enable() should not be called statically in /blog/wp-includes/plugin.php on line 123

Warning: call_user_func_array() expects parameter 2 to be array, null given in /blog/wp-includes/plugin.php on line 123

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 942
Przesyłanie danych » egrafik.pl
BAZA WIEDZY
KURSY
Bazy danych w PHP
Kurs AdvancedAJAX
Kurs ASP
Kurs ASP.NET
Kurs C++
Kurs CSS
Kurs HTML
Kurs HTML drugi
Kurs JavaScript
Kurs MySQL
Kurs PHP
Kurs RSS
Kurs XHTML
Obiekty DOM
MANUALE
CSS1 - W3C
DOM - w budowie
PHP 2005
PHP 2006
Wyrażenia regularne
SHOUTBOX
STAT
Online: 13 | UU: 755

Strict Standards: Resource ID#116 used as offset, casting to integer (116) in /forum2/db/mysql4.php on line 223

Strict Standards: Resource ID#116 used as offset, casting to integer (116) in /forum2/db/mysql4.php on line 224
Przesyłanie danych
5 grudzień 2007

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Strict Standards: Only variables should be assigned by reference in /blog/wp-includes/post.php on line 114

Deprecated: Function eregi() is deprecated in /blog/wp-content/plugins/tpbc.php on line 96

1. Wysyłanie danych do użytkownika

W tej części zostanie pokazane jak połączyć VBScript z HTML oraz jak umieścić rezultat wykonania kodu VBScript w dokumencie HTML wysłanym do przeglądarki (klienta). Posłużę się przykładem, który informuje o godzinie na serwerze oraz o ilości godzin w stosunku do dnia 01-01-2000. Przykład zawiera funkcje operujące na dacie i czasie.

Przykład:

Kod: asp

<% @LANGUAGE = VBScript %>
<%
Option Explicit
Response.Expires = 0
Dim czasTeraz, czasZaGodzine, czasRoznica
czasTeraz = Time
czasZaGodzine = DateAdd("h", 1, czasTeraz)
czasRoznica = DateDiff("h", Now, #1/1/2000#)
%>
<HTML>
<BODY>
Witaj Użytkowniku.<BR>
Godzina na serverze: <% =czasTeraz %>.<BR>
Za godzinę czas na serwerze będzie: <% =czasZaGodzine %>.<BR>
<%
If czasRoznica > 0 Then
Response.Write "Jeszcze " & czasRoznica & " godzin "
Response.Write "do roku 2000.<BR>" & VbCrLf
ElseIf czasRoznica < 0 Then
Response.Write "Już " & Abs(czasRoznica) & " godzin minęło od "
Response.Write "rozpoczęcia roku 2000.<BR>" & VbCrLf
Else
Response.Write "Rok 2000 się właśnie rozpoczął.<BR>" & VbCrLf
Response.Write "<B>SZCZĘŚLIWEGO NOWEGO ROKU !</B><BR>" & VbCrLf
End If
%>
</BODY>
</HTML>

Kiedy zostanie otwarty ten plik w przeglądarce, na stronie pojawi się napis podobny do poniższego.

Witaj Użytkowniku.
Godzina na serwerze: 10:17:34 AM.
Za godzinę czas na serwerze będzie: 11:17:34 AM.
Już 8754 godzin minęło od rozpoczęcia roku 2000.

Jeśli podejrzy się źródło, zostanie wyświetlony następujący kod:

Kod: html4strict

<HTML>
<BODY>
Witaj Użytkowniku.<BR>
Godzina na serwerze: 10:17:34 AM.<BR>
Za godzinę czas na serwerze będzie: 11:17:34 AM.<BR>
Już 8754 godzin minęło od rozpoczęcia roku 2000.<BR>
</BODY>
</HTML>

Teraz zostaną opisane poszczególne linie kodu. Pierwsza z nich to:

Kod: asp

<% @LANGUAGE = VBScript %>

Dyrektywa @LANGUAGE została użyta w celu określenia języka skryptu dla pliku ASP. Ta komenda musi znajdować się w pierwszej linii przed jakimikolwiek innymi blokami kodu. Dyrektywa @LANGUAGE informuje IIS o użytym języku w skrypcie. Jej użycie nie jest konieczne, lecz zalecane, gdyż w razie zmiany w ustawieniach IIS dotyczących użytego języka w plikach *.asp, np. z VBScript na JScript, wszystkie pliki które będą zawierały komendy VBScript, a nie będą posiadały tej dyrektywy zwrócą błędy w składni.

Poniżej przedstawiona komenda VBScript nakazuje deklarację każdej użytej zmiennej z skrypcie, używając instrukcji Dim, Private, Public oraz ReDim.

Option Explicit

Komenda powinna się znajdować tuż po linii zawierającej dyrektywę @LANGUAGE. Po jej wpisaniu należy deklarować wszystkie zmienne przed ich użyciem. Takie rozwiązanie jest bardzo pomocne, gdy w skrypcie użyje się błędnie wpisanej zmiennej ponieważ w wyniku otrzyma się błąd w postaci: Variable undefined, w momencie wywołania go spod przeglądarki. W takim przypadku będzie wiadomo, że jakaś nazwa zmiennej została wpisana niepoprawnie. Zaoszczędzi to wielu godzin szukania błędu. Jeśli się stwierdzi, że skrypt działa poprawnie można tą linię usunąć, lecz w trakcie tworzenia i modyfikowania skryptu jest ona niemal nieodzowna. Na przykład jeśli w programie użyta zostanie zmienna nazwa i w jakimś miejscu, przez zupełny przypadek, wpisana zostanie zamiast nazwa np. nawza, wtedy przy braku tej komendy program potraktuje zmienną nawza jako nową zmienną, sformatuje ją, czyli ustali jej wartość na 0 lub ciąg o zerowej długości, a na stronie nie pojawi się zamierzona informacja przechowywana w zmiennej nazwa.

W czwartej linii znajduje się komenda

Kod: asp

Response.Expires = 0

Informuje ona przeglądarkę po jakim czasie zawartość strony traci ważność. Wartość określana jest w minutach. W naszym przypadku wynosi ona zero. Jeśli jest potrzeba określenia daty upływu ważności należałoby wpisać na przykład następującą komendę:

Kod: asp

Response.ExpiresAbsolute = #January 1, 2000 00:00:00#

W przypadku obu komend muszą one znaleźć się przed całą zawartością dokumentu formatu HTML oraz komendami Response.Write (chyba, że użyto komendy Response.Buffer = TRUE, ale o tym za chwilę). W przeciwnym wypadku przeglądarka pokaże błąd w postaci: Response object error (Header error). Błąd jest związany z tym, iż komenda Response.Expires została wysłana do przeglądarki po wcześniejszym przesłaniu nagłówka HTTP.

Instrukcja

Kod: asp

Dim czasTeraz, czasZaGodzine, czasRoznica

deklaruje użyte w skrypcie zmienne. Są one od siebie oddzielone przecinkiem. Kolenjne linie:

Kod: asp

czasTeraz = Time
czasZaGodzine = DateAdd("h", 1, czasTeraz)
czasRoznica = ("h", Now, #1/1/2000#)

określają wartości zadeklarowanych zmiennych. Pierwsza linia ustala wartość zmiennej czasTeraz na wartość aktualnej godziny serwera, druga ustawia wartość zmiennej czasZaGodzine na wartość zmiennej czasTeraz zwiększonej o jedną godzinę, zaś trzecia linia zapisuje do zmiennej czasRoznica wartość równą różnicy czasu aktualnego i daty 1/1/2000 określoną w godzinach. Jeśli bieżący czas jest przed datą 1/1/2000 to wartość czasRoznica jest dodatnia, zaś jeśli jest po tej dacie - zmienna przyjmuje wartość ujemną.
Zmienne mają już określone wartości, teraz należałoby je pokazać użytkownikowi w oknie przeglądarki. Do tego służy instrukcja

Kod: asp

<% Respone.Write(tekst) %>

lub inna równoważna, użyta w przykładzie

Kod: asp

<% =tekst %>

Linia 9, tj. %>, zamyka blok kodu VBScriptu.

Linie 10-14 zawierają kod HTML z wartościami zmiennych czasTeraz, czasZaGodzine oraz czasRoznica. W liniach 16-25 została użyta instrukcja warunkowa If. Instrukcja Response.Write wysyła do przeglądarki tekst. Może on zawierać zmienne i łańcuchy. Łączenie tekstu ze zmiennymi odbywa się za pomocą znaku &. Jeśli chcemy wysłać sygnał przejścia do następnej linii należy dołączyć stałą VbCrLf, np.

Kod: asp

Response.Write "Wartość=" & wartosc & ".<BR>" & VbCrLf

Buforowanie

Bufor jest magazynem, który przechowuje dane przez pewien czas. Użycie buforowania pozwala na umieszczenie komendy Response.Expires za kodem HTML lub instrukcją Response.Write. Przykład przedstawiający buforowanie:

Kod: asp

<% @LANGUAGE = VBScript %>
<%
Option Explicit
Response.Buffer = TRUE
Response.Expires = 60
%>
<HTML>
<BODY>
Witaj Użytkowniku.<BR>
Teraz widzisz wiadomość 1.
<%
Response.Clear
Response.Expires = 0
%>
<HTML>
<BODY>
To jest szybkowygasająca wiadomość.
<%
Response.Flush
%>
</BODY>
</HTML>
<%
Response.End
%>
Ta linia nigdy nie zostanie wysłana do przeglądarki.

Kiedy zostanie uruchomiony powyższy kod na ekranie przeglądarki pojawi się napis:

To jest szybkowygasająca wiadomość.

Dodatkowo przeglądarka zostanie poinformowana, że zawartość strony straci natychmiast ważność.
Linia zawierająca:

Kod: asp

Response.Buffer = TRUE

sygnalizuje, że strona będzie buforowana na serwerze i nie zostanie wysłana odpowiedź do przeglądarki klienta dopóki wszystkie instrukcje z bieżącej strony ASP nie zostaną przesłane lub dopóki nie zostaną wywołane metody Flush lub End obiektu Response. Komenda Response.Buffer musi znajdować się przed kodem HTML lub instrukcją Response.Write.

Linia zawierająca:

Kod: asp

Response.Expires = 60

określa czas utraty ważności strony po 60 minutach. Takie rozwiązanie jest użyteczne w przypadku, gdy zawartość strony jest zmieniana co maksymalnie dwie godziny.

Linie zawierające:

Kod: html4strict

<HTML>
<BODY>
Witaj Użytkowniku.<BR>
Teraz widzisz wiadomość 1.

są przechowywane w buforze (Response.Buffer = TRUE), ale nie zostaną nigdy wysłane do przeglądarki, ponieważ bufor jest czyszczony komendą:

Kod: asp

Response.Clear

Także w kolejnej linii, tj. Response.Expires=0, ustawione jest natychmiastowy upływ ważności strony.
Następnie, specjalna, szybkowygasająca wiadomość jest przechowywana w buforze. Należy zauważyć, że musisz zaopatrzyć stronę we wszystkie znaczniki takie jak <HTML> lub <BODY> po tym, jak wyczyszczony zostanie bufor. Jeśli wymagane jest wysłanie w trybie natychmiastowym zawartości bufora do przeglądarki należy wykorzystać następującą instrukcję:

Kod: asp

Response.Flush

Kolejne linie:

Kod: html4strict

</BODY>
</HTML>

zostają wysłane do przeglądarki i zamkną dokument HTML.
Inną metodą obiektu Response jest End. Komenda:

Kod: asp

Response.End

nakazuje serwerowi WWW zakończyć przetwarzanie skryptu i wysłać bieżący rezultat. Wszystkie linie znajdujące się pod tą komendą nie zostaną wykonane (nie zostaną przesłane do przeglądarki).

Przekierowanie użytkownika do innej strony

Przekierowanie użytkownika do innej strony można zastosować w przypadku:

-autoryzacji - kiedy użytkownik nie jest zalogowany, może zostać przekierowany do strony, na której może się zalogować.
-formularza - kiedy formularz na stronie ASP jest wysłany sam sobie i następuje sprawdzenie poprawności wprowadzonych danych. Jeśli dane są niepoprawne, wtedy zostaje wysłany komunikat o błędzie wraz z oryginalną formą formularza. Jeśli formularz został wypełniony poprawnie, wtedy użytkownik zostaje przekierowany do innej strony.

W celu dokonania przekierowania należy wywołać metodę Redirect obiektu Response. Przykład:

Kod: asp

Response.Redirect "/katalog/nowastrona.asp"

lub równoważne

Kod: asp

Response.Redirect("/katalog/nowastrona.asp")

Uwaga! Żadne dane wyjściowe nie mogą znaleźć się przed metodą Redirect.

Formatowanie ustawień regionalnych

Postać daty w różnych standardach wygląda odmiennie, czy to dla użytkowników anglojęzycznych, czy niemieckich. Domyślne ustawienia regionalne serwera są odpowiedzialne za jej wygląd. Ustawienia te można zmieniać korzystając z właściwości LCID obiektu Session. Poniżej została przedstawiona tabela z wartościami dla różnych ustawień regionalnych.

Nazwa regionu LCID Data i czas
angielski (australijski) 3081 26/01/99 2:37:46
angielski (kanadyjski) 4105 26/01/99 2:37:46 AM
angielski (UK) 2057 26/01/99 02:37:46
angielski (amerykański) 1033 1/26/99 2:37:46 AM
francuski (standard) 1036 26/01/99 02:37:46
niemiecki (standard) 1031 26.01.99 02:37:46
japoński 1041 99/01/26 2:37:46
rosyjski 1049 26.01.99 2:37:46
hiszpański (współczesny) 3082  

2. Odbieranie danych od użytkownika

Zmienne środowiskowe

Czasem jest potrzeba uzyskania informacji na temat typu przeglądarki klienta, adresu IP, itp. W tym celu można posłużyć się grupą ServerVariables obiektu Request. Przykładem wykorzystania (odczytania) zmiennej środowiskowej jest poniższy zapis:

Kod: asp

sciezkaURL = Request.ServerVariables("SCRIPT_NAME")

W przykładzie do zmiennej sciezkaURL zostanie zapisana rzeczywista ścieżka wykonywanego skryptu.
Teraz zostaną omówione ważniejsze zmienne środowiskowe:

SCRIPT_NAME - rzeczywista ścieżka do wykonywanego skryptu
CONTENT_LENGTH - informacje jakie zostały wysłane od klienta (użytkownika) przy pomocy metody POST do serwera
ALL_RAW - wszystkie nagłówki HTTP wysłane od przeglądarki wywołane uruchomieniem skryptu
HTTP_HeaderName - nazwa nagłówka HTTP
HTTP_USER_AGENT - nazwa przeglądarki, jej wersja i system operacyjny
HTTP_ACCEPT_LANGUAGE - preferowane języki
HTTP_REFERER - adres strony, która wywołała bieżący skrypt (stronę)
REMOTE_ADDR - adres IP klienta
SERVER_NAME - nazwa domeny serwera (np. www.nazwa.com), wykorzystywana w przypadku wielu domen na jednym serwerze
QUERY_STRING - zawartość wypełnionego i wysłanego formularza

Formularze

a) Metoda GET

Użycie metody GET sprawi, że wszystkie dane umieszczone w wypełnionym formularzu zostaną dołączone do adresu URL i będą odczytywalne od strony serwera poprzez użycie grupy Request.QueryString. Przykładowy adres po wysłaniu formularza, którego metodą jest GET, może wyglądać następująco:

http://www.nazwa.com/plik.asp?pole1=wartosc1&pole2=wartosc2&pole3=wartosc3

Wartością zwróconą poprzez wywołanie komendy Request.QueryString("pole2") będzie wartosc2.

b) Metoda POST

W przeciwieństwie do metody GET, metoda POST nie dołącza danych z formularza do adresu URL. Dane od strony serwera są odczytywane przy pomocy zbioru Request.Form.

Przykład odczytania zawartości pola tekstowego z formularza, który używa metody POST. Fragment dokumentu HTML:

Kod: html4strict

<FORM ACTION="plik.asp" METHOD="POST">
Podaj imię: <INPUT TYPE="Text" NAME="imie"><BR>
Podaj nazwisko: <INPUT TYPE="Text" NAME="nazwisko"><BR>
<INPUT TYPE="Submit" NAME="submit" VALUE="Wyslij">
</FORM>

Odczytanie pola z imieniem odbywa się poprzez wpisanie komendy:

Kod: asp

Request.Form("imie")

zaś odczytanie pola z nazwiskiem:

Kod: asp

Request.Form("nazwisko")

Podobnie dzieje się w przypadku metody GET, z tą różnicą, że zamiast Request.Form wpisać należy Request.QueryString. Przydatne funkcje:

Trim(łańcuch) - wycina wszystkie spacje znajdujące się na początku łańcucha do momentu napotkania innego znaku
isNumeric(dana) - zwraca wartość TRUE jeśli dana jest liczbą, w przeciwnym wypadku zwraca wartość FALSE
CInt(liczba) - konwertuje liczbę na liczbę całkowitą
CLng(liczba) - konwertuje liczbę na liczbę całkowitą długą
CStr(łańcuch) - konwertuje łańcuch na łańcuch (ciąg znaków)
isDate(dana) - zwraca wartość TRUE jeśli dana jest datą, w przeciwnym wypadku zwraca wartość FALSE
Replace(łańcuch, ciąg1, ciąg2) - zamienia każdy ciag1 na ciag2 napotkany w łańcuchu


Autor: Krzysztof Stelmach
Strona pochodzi z http://www.stelmach.info/

WordPress database error: [Incorrect file format 'wp_comments']
SELECT * FROM wp_comments WHERE comment_post_ID = '624' AND comment_approved = '1' ORDER BY comment_date desc

Dodaj komentarz









 
 
| | | |
Copyright © 2006-2013 egrafik.pl | Kontakt | Reklama | Projekty domów
jocker