[ Pobierz całość w formacie PDF ]
.Także i w tym przypadku, większość kodu powinna być nam znana, a zatem objaśnienia będą dość ogólne.Szerszych objaśnień można jednak poszukać w poprzednich rozdziałach książki!lTak jak dotychczas, rozpocznij od załadowania pliku konfiguracyjnego, otwarcia połączenia z serwerem i wyselekcjonowania bazy danych dla aplikacji.Zagadnienie to powinno być Ci już znane jak własna kieszeń, a poniższy fragment kodu będzie śnił Ci się po nocach!l<?// viewthread.php// Case Study 3: Forum - Foundation PHP for Flash// Dołączamy plik konfiguracyjnyinclude('common.php');// Otwieramy połączenie z bazą danych$link = dbConnect();lKolejną operacją będzie budowa zapytania odczytującego wszystkie wypowiedzi w wybranym wątku (identyfikowanym przez zmienną $threadID, przekazywanej z filmu Flasha) i zwracającego je do Flasha.l// Budujemy zapytanie odczytujące wątek$query = "SELECT * FROM forumPosts WHERE threadID = $threadID ORDER BY posted ASC";lNastępnie, zapytanie musi ulec wykonaniu, generując komunikat o błędzie, w razie niepowodzenia.l// Wykonujemy zapytanie$result = @mysql_query($query);// Jeśli wykonanie zapytania nie powiodło się.if (!$result) {// Informujemy Flasha o błędzie i opuszczamy skryptfail("Couldn't fetch posts from database");}lJeżeli wszystko się powiedzie, funkcja mysql_num_rows odczyta liczbę wypowiedzi w wybranym wątku.l// Sprawdzamy liczbę wypowiedzi w tym wątku$postCount = @mysql_num_rows($result);lNastępnie, liczbę wypowiedzi, zapisujemy w pierwszej zmiennej, odsyłanej do Flasha.l// Przygotowujemy zmienną przechowującą wynik$output = "&postCount=$postCount";lDalej pojawia pętla for, przetwarzająca kolejne wypowiedzi, zwracane przez polecenie SELECT.l// Dla każdej zwróconej wypowiedzi.for ($count = 0; $count < $postCount; $count++) {lPierwszą czynnością, jaką należy wykonać w pętli, to odczytanie, za pomocą funkcji mysql_fetch_array kolejnej wypowiedzi ze zbioru wyników MySQL i zwrócenie w postaci tablicy.l// Ekstrahujemy z bazy danych szczegóły wypowiedzi$post = mysql_fetch_array($result);$userID = $post['userID'];$message = stripslashes($post['message']);$posted = strftime("%d/%m/%y %H:%M", $post['posted']);Jeszcze raz tworzymy odpowiednie zmienne.Operacja ta obejmuje usunięcie ukośników ze wszystkich, wymagających tego, elementów oraz konwersję unixowych znaczników czasowych, za pomocą funkcji strftime.lKolejny fragment powinien być Ci znany z poprzedniego skryptu.Służy on do odczytywania szczegółów dotyczących użytkownika, który przesłał wypowiedź, przy wykorzystaniu zmiennej $userID, przechowywanej wraz z bieżącą wypowiedzią w forumPosts.l// Budujemy i uruchamiamy zapytanie odczytujące nazwę// i tytuł użytkownika, który utworzył wypowiedź$query = "SELECT username, title FROM forumUsers WHERE userID = $userID";$result2 = @mysql_query($query);// Ekstrahujemy z wyniku informację o użytkowniku$user = @mysql_fetch_array($result2);$username = $user['username'];$userTitle = $user['title'];lZbliżając się do zakończenia skryptu, należy dodać uzyskane szczegóły do zmiennej $output, przygotowując ją do odesłania do Flasha.l// Dopisujemy szczegóły wypowiedzi do wyniku$output.= "&post".$count."Author=".urlencode($username);$output.= "&post".$count."Date=".urlencode($posted);$output.= "&post".$count."UserTitle=".urlencode($userTitle);$output.= "&post".$count."Message=".urlencode($message);}lNa koniec, zachowane wyniki zostaną odesłane do Flasha.Ponadto, dodana zostanie zmienna, informująca Flasha o powodzeniu operacji.Ostatnim zabiegiem będzie zamknięcie połączenia z serwerem MySQL.lSkrypt postnew.phpPo opracowaniu skryptów odpowiedzialnych za wizualną stronę działania aplikacji, czas zwrócić uwagę ku skryptom, które umożliwią nam dopisywanie i manipulacje danymi.Pierwszym, który trafi od nasz mikroskop, jest postnew.php.Jego zadanie, to współpraca z sekcją Post New filmu Flasha, co ma umożliwić tworzenie i umieszczanie nowych wątków na tablicy ogłoszeniowej.lRęka w górę, jeśli rozpoznajesz pierwszy fragment kodu! Rozpoznają go chyba wszyscy! A zatem, czyńmy swoją powinność.l<?// postnew.php// Case Study 3: Forum - Foundation PHP for Flash// Dołączamy plik konfiguracyjnyinclude('common.php');// Otwieramy połączenie z bazą danych$link = dbConnect();Pomyśl tylko, jak często trzeba byłoby wpisywać kod połączenia z bazą danych, gdyby nie utworzony wcześniej plik common.php!lPo otwarciu połączenia z bazą danych, możesz użyć funkcji auth, zapisanej podczas tworzenia pliku common.php, do zweryfikowania informacji przekazanych przez film Flasha z danymi użytkownika.l// Autoryzacja dostępu użytkownika do bazy danych$userID = auth($username, $password);Gwoli przypomnienia, jeśli wspomniana dopatrzy się zgodności podanych informacji z zawartymi w bazie danych, zwraca identyfikator userID.W przeciwnym razie funkcja zwraca wartość -1.lSprawdzając tę wartość możesz stwierdzić, czy weryfikacja użytkownika przebiegła pomyślnie [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl matkasanepid.xlx.pl
.Także i w tym przypadku, większość kodu powinna być nam znana, a zatem objaśnienia będą dość ogólne.Szerszych objaśnień można jednak poszukać w poprzednich rozdziałach książki!lTak jak dotychczas, rozpocznij od załadowania pliku konfiguracyjnego, otwarcia połączenia z serwerem i wyselekcjonowania bazy danych dla aplikacji.Zagadnienie to powinno być Ci już znane jak własna kieszeń, a poniższy fragment kodu będzie śnił Ci się po nocach!l<?// viewthread.php// Case Study 3: Forum - Foundation PHP for Flash// Dołączamy plik konfiguracyjnyinclude('common.php');// Otwieramy połączenie z bazą danych$link = dbConnect();lKolejną operacją będzie budowa zapytania odczytującego wszystkie wypowiedzi w wybranym wątku (identyfikowanym przez zmienną $threadID, przekazywanej z filmu Flasha) i zwracającego je do Flasha.l// Budujemy zapytanie odczytujące wątek$query = "SELECT * FROM forumPosts WHERE threadID = $threadID ORDER BY posted ASC";lNastępnie, zapytanie musi ulec wykonaniu, generując komunikat o błędzie, w razie niepowodzenia.l// Wykonujemy zapytanie$result = @mysql_query($query);// Jeśli wykonanie zapytania nie powiodło się.if (!$result) {// Informujemy Flasha o błędzie i opuszczamy skryptfail("Couldn't fetch posts from database");}lJeżeli wszystko się powiedzie, funkcja mysql_num_rows odczyta liczbę wypowiedzi w wybranym wątku.l// Sprawdzamy liczbę wypowiedzi w tym wątku$postCount = @mysql_num_rows($result);lNastępnie, liczbę wypowiedzi, zapisujemy w pierwszej zmiennej, odsyłanej do Flasha.l// Przygotowujemy zmienną przechowującą wynik$output = "&postCount=$postCount";lDalej pojawia pętla for, przetwarzająca kolejne wypowiedzi, zwracane przez polecenie SELECT.l// Dla każdej zwróconej wypowiedzi.for ($count = 0; $count < $postCount; $count++) {lPierwszą czynnością, jaką należy wykonać w pętli, to odczytanie, za pomocą funkcji mysql_fetch_array kolejnej wypowiedzi ze zbioru wyników MySQL i zwrócenie w postaci tablicy.l// Ekstrahujemy z bazy danych szczegóły wypowiedzi$post = mysql_fetch_array($result);$userID = $post['userID'];$message = stripslashes($post['message']);$posted = strftime("%d/%m/%y %H:%M", $post['posted']);Jeszcze raz tworzymy odpowiednie zmienne.Operacja ta obejmuje usunięcie ukośników ze wszystkich, wymagających tego, elementów oraz konwersję unixowych znaczników czasowych, za pomocą funkcji strftime.lKolejny fragment powinien być Ci znany z poprzedniego skryptu.Służy on do odczytywania szczegółów dotyczących użytkownika, który przesłał wypowiedź, przy wykorzystaniu zmiennej $userID, przechowywanej wraz z bieżącą wypowiedzią w forumPosts.l// Budujemy i uruchamiamy zapytanie odczytujące nazwę// i tytuł użytkownika, który utworzył wypowiedź$query = "SELECT username, title FROM forumUsers WHERE userID = $userID";$result2 = @mysql_query($query);// Ekstrahujemy z wyniku informację o użytkowniku$user = @mysql_fetch_array($result2);$username = $user['username'];$userTitle = $user['title'];lZbliżając się do zakończenia skryptu, należy dodać uzyskane szczegóły do zmiennej $output, przygotowując ją do odesłania do Flasha.l// Dopisujemy szczegóły wypowiedzi do wyniku$output.= "&post".$count."Author=".urlencode($username);$output.= "&post".$count."Date=".urlencode($posted);$output.= "&post".$count."UserTitle=".urlencode($userTitle);$output.= "&post".$count."Message=".urlencode($message);}lNa koniec, zachowane wyniki zostaną odesłane do Flasha.Ponadto, dodana zostanie zmienna, informująca Flasha o powodzeniu operacji.Ostatnim zabiegiem będzie zamknięcie połączenia z serwerem MySQL.lSkrypt postnew.phpPo opracowaniu skryptów odpowiedzialnych za wizualną stronę działania aplikacji, czas zwrócić uwagę ku skryptom, które umożliwią nam dopisywanie i manipulacje danymi.Pierwszym, który trafi od nasz mikroskop, jest postnew.php.Jego zadanie, to współpraca z sekcją Post New filmu Flasha, co ma umożliwić tworzenie i umieszczanie nowych wątków na tablicy ogłoszeniowej.lRęka w górę, jeśli rozpoznajesz pierwszy fragment kodu! Rozpoznają go chyba wszyscy! A zatem, czyńmy swoją powinność.l<?// postnew.php// Case Study 3: Forum - Foundation PHP for Flash// Dołączamy plik konfiguracyjnyinclude('common.php');// Otwieramy połączenie z bazą danych$link = dbConnect();Pomyśl tylko, jak często trzeba byłoby wpisywać kod połączenia z bazą danych, gdyby nie utworzony wcześniej plik common.php!lPo otwarciu połączenia z bazą danych, możesz użyć funkcji auth, zapisanej podczas tworzenia pliku common.php, do zweryfikowania informacji przekazanych przez film Flasha z danymi użytkownika.l// Autoryzacja dostępu użytkownika do bazy danych$userID = auth($username, $password);Gwoli przypomnienia, jeśli wspomniana dopatrzy się zgodności podanych informacji z zawartymi w bazie danych, zwraca identyfikator userID.W przeciwnym razie funkcja zwraca wartość -1.lSprawdzając tę wartość możesz stwierdzić, czy weryfikacja użytkownika przebiegła pomyślnie [ Pobierz całość w formacie PDF ]