RicoRoco - HOME Azure
Witamy, Gość. Zaloguj się lub zarejestruj
Skull       Skull       Skull
  HOME   FORUM   CHAT HELP SEARCH CALENDAR DOWNLOADS GALLERY LOGIN REGISTER  
Theme
Zawsze?

Recent
*

  Strony: [1]   Bottom Do dołu
 Wyślij ten topic  |  Drukuj 
ico Autor          Topic: PHP w przykładach.... dla zielonych  [Przeczytany 5860 razy]
0 użytkowników i 1 Gość przegląda ten wątek.
Moderator
*****
Offline
17-01-2011, 22:17:12
Topic Starter
 Poland Mężczyzna
Poland
 
DATA: [19-02-2007, 20:32:15]PHP w przykładach.... dla zielonych
Link:  http://ricoroco.com/tpnew/index.php?topic=140.msg289#msg289  
Proponuję tutaj zamieszczać proste skrypty php wraz z krótkim wytłumaczeniem o co w nim biega. Chodzi o to, aby pokazać, że język PHP wcale nie jest taki trudny, jakby się mógł wydawać, przez co zachęci webmasterów korzystających do tej pory jedynie z HTML (XHTML) do nauki tego barwnego języka.

Na początek prościutki skrypt kalkulatora

Kalkulator

GeSHi -› Code: [select]
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
    <title>Kalkulator</title>
</head>
<body>
    <h1>KALKULATOR</h1>
<FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
Liczba 1: <INPUT TYPE="text" NAME="liczba1" SIZE="12"> <br>
Liczba 2: <INPUT TYPE="text" NAME="liczba2" SIZE="12"> <br><br>
Wybierz: <br>
dodawanie<INPUT TYPE="radio" NAME="obliczanie" VALUE="dodaj"> &nbsp;&nbsp;
odejmowanie<INPUT TYPE="radio" NAME="obliczanie" VALUE="odejmij"> &nbsp;&nbsp;
mnozenie<INPUT TYPE="radio" NAME="obliczanie" VALUE="pomnoz"> &nbsp;&nbsp;
dzielenie<INPUT TYPE="radio" NAME="obliczanie" VALUE="podziel"> <br> <br>
<INPUT TYPE="submit" VALUE="Oblicz"> &nbsp;&nbsp;
<INPUT TYPE="reset" VALUE="Wyczy&#182;ć"> <br>
</FORM>
<hr width="40%" align="LEFT" size="2" />

<?php

$liczba1 = $_POST['liczba1'] ;
$liczba2 = $_POST['liczba2'] ;
$obliczanie = $_POST['obliczanie'] ;

    if($obliczanie=="dodaj") {
        $wynik=$liczba1+$liczba2;
        }
    else if($obliczanie=="odejmij") {
        $wynik=$liczba1-$liczba2;
        }
    else if($obliczanie=="pomnoz") {
        $wynik=$liczba1*$liczba2;
        }
    else if($obliczanie=="podziel") {
        $wynik=$liczba1/$liczba2;
        }

    echo "Wynik: <b>$wynik</b>";

?>
</body>
</html>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.027s | speed:44.16 KB/s



Wyjaśnienia:
Użyliśmy tutaj połączenia prostego formularza HTML ze skryptem php. Z oczywistych względów pomijam opis html'a.

Pierwsze co rzuca nam się oczy to atrybut action z wpisem: <?php echo $_SERVER['PHP_SELF']; ?>, gdzie  $_SERVER['PHP_SELF']; oznacza tablicę zmiennych środowiskowych .... ble ble ble. Poprostu chodzi o to, aby akcja była wykonana w obrębie tego pliku. Równie dobrze można by wpisać action="obliczaj.php" i nazwać tak samo cały plik. Efekt będzie taki sam.

Jako że przy pewnych ustawieniach serwera dostęp do danych formularza może być utrudniony, dodajemy krótkie nazwy zmiennych:

$liczba1 = $_POST['liczba1'] ;
$liczba2 = $_POST['liczba2'] ;
$obliczanie = $_POST['obliczanie'] ;


Z kilku powyższych linijek kodu można by zrezygnować, ale wówczas w pliku konfiguracyjnym serwera wartość register_globals musi być ustawiona na on. Niezależnie od tego, jak mamy ustawiony serwer, krótkie nazwy zmiennych proponuję zostawić.

W formularzu zastosowano INPUT TYPE="radio", pozwoli to na wykonanie unikalnego działania, obliczenia.

   if($obliczanie=="dodaj")
    {
    $wynik=$liczba1+$liczba2;
    }
   else if($obliczanie=="odejmij")
    {
    $wynik=$liczba1-$liczba2;
    }


Instrukcje warunkowe if, else if jak sama nazwa wskazuje służą do postawiania warunków. Czyli np. "jeżeli coś tam jest równe czemuś tam to zrób tak i siak. Na naszym przykładzie będzie to: " jeżeli zaznaczono pole dodaj to zsumuj liczbę 1 i 2 i przypisz ją do zmiennej $wynik. Jeżeli zaś wybrano pole odejmij to odejmij liczbę pierwszą  od drugiej i przypisz ją do zmiennej $wynik" itd.
Kilka razy padło słowo "zmienna", pewnie zastanawiasz się co to takiego. Jest to nic innego jak pamięć podręczna przechowująca jakieś dane, w php poprzedzona znakiem $. Zwróć uwagę na nazwy pól w formularzu oraz na nazwy zmiennych - one nie są przypadkowe, bo właśnie w ten sposób mamy dostęp do danych formularza!

echo "Wynik: $wynik"; wyświetli obliczony wcześniej wynik.

Powyższy kod zapisz pod dowolną nazwą ( byle z rozszerzeniem *.php) i wgraj na serwer. Sprawdź efekt działania.

A tak powinno to wyglądać w formie surowej:





EDIT'ka:

Może fajniej byłoby popatrzyć, jak wygląda to w oryginale..:

Kalkulator by Paps:



Last Edit: 07-05-2008, 18:59:20 by: Rico Roco IP IP Zapisane
Moderator
*****
Offline
17-01-2011, 22:17:12
Topic Starter
 Poland Mężczyzna
Poland
 
DATA: [28-03-2007, 02:02:22]Odp: PHP w przykładach.... dla zielonych
Link:  http://ricoroco.com/tpnew/index.php?topic=140.msg333#msg333 Post #1 
Kilka filmów w odtwarzaczu multimedialnym

GeSHi -› Code: [select]
<html>
<head>
    <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
</head>
<body>

<object type="video/x-ms-wmv" data=" <?php echo $_POST['film']; ?>" width="330" height="275">
<param name="src" value="<?php echo $_POST['film']; ?>">
<param name="autostart" value="false">
<param name="controller" value="true">
</object><br>

<form action="index.php" method="post">

<?php
$katalog = './filmy/';
$katal = opendir($katalog);
while($plik = readdir($katal)) {
    if (($plik!='.')&&($plik!='..'))
    {
    echo '<input type="radio" name="film" value="./filmy/'.$plik.'">'.$plik.' <br>';
    }
}
    closedir ($katal);
?>

<input type="submit" value=" wybierz film">
</form>
</body>
</html>
// Created by GeSHi 1.0.8.10 | code: -› [code=PHP] | load:0.030s | speed:22.60 KB/s



Wyjaśnienia:
W tym przykładzie zastosowany został osadzony obiekt multimedialny (Windows Media Player) + formularz. Oczywiście można użyć dowolnego obiektu multimedialnego, zależnie od potrzeb.
Do pełnego działania potrzebny jest jeszcze pusty katalog o nazwie filmy. Tam właśnie będziemy wrzucać wszystkie filmy, a efekt tego od razu ujrzymy na stronie w postaci pól radio wraz z nazwą filmu.

Zacznijmy od formularza.
action="index.php" method="post"
akcję wykoujemy w pliku index.php i tak powinien być nazwany cały stworzony plik. Można również użyć wspomnianego we wcześniejszym poście <?php echo $_SERVER['PHP_SELF']; ?>

$katalog = './filmy/';
$katal = opendir($katalog);
while($plik = readdir($katal))


Tworzymy zmienną $katalog i przypisujemy do niej nazwę katalogu w którym będą filmy.
Otwieramy katalog "filmy" i przypisujemy do zmiennej $katal
Czytamy otworzony katalog, przypisując ją do zmiennej $plik. Korzystamy z pętli while, aby mieć dostęp do wszystkich plików. Pętla while będzie tak długo pracować aż nie przeczyta wszystkich plików w warunku $plik = readdir($katal).

if (($plik!='.')&&($plik!='..')) Wspomniana wcześniej pętla przeczyta wszystko z katalogu. Z tym że my nie chcemy zobaczyć na naszej stronie kropeczek będących w strukturze katalogu uniksowego.
Jeżeli nie wiadomo o czym pisze, można usunąć wspomnianą linię z kodu. Efekt będzie widoczny

echo '<input type="radio" name="film" value="./filmy/'.$plik.'">'.$plik.'
';
Wyświetlamy listę pól radio w formularzu.
name="film" przyda się do formularza, bo do tego miejsca będziemy się odwoływać.
value="./filmy/'.$plik.' ścieżka dostępu dla filmu.
'.$plik.' nazwa filmu

closedir ($katal); zamykamy katalog filmy

<?php echo $_POST['film']; ?> wstawiamy w obiekt multimedialny w miejsce gdzie powinna byś ścieżka do pliku. Odwołujemy się tutaj do pola radio które zaznaczy użytkownik.

Oto przykład:




Last Edit: 05-12-2008, 09:12:21 by: Rico Roco IP IP Zapisane
Moderators
*****
Offline
11-06-2008, 20:51:25
 
DATA: [23-05-2007, 21:52:42]Odp: PHP w przykładach.... dla zielonych
Link:  http://ricoroco.com/tpnew/index.php?topic=140.msg410#msg410 Post #2 
Nie studiowałem jeszcze całych skryptów odtwarzacza i kalkulatora, ale nie bardzo rozumiem, po co wskazanie na wykonywany plik w tagu <form> w atrybucie action. Przecież, gdy będzie on pusty, przeglądarka domyślnie prześle dane do tej samej strony. Tak więc wynik działania skryptu z $_SERVER['PHP_SELF'] i bez będzie dokładnie taki sam.


IP IP Zapisane
Moderator
*****
Offline
17-01-2011, 22:17:12
Topic Starter
 Poland Mężczyzna
Poland
 
DATA: [24-05-2007, 11:52:47]Odp: PHP w przykładach.... dla zielonych
Link:  http://ricoroco.com/tpnew/index.php?topic=140.msg414#msg414 Post #3 
Tak, to prawda
zastosowanie pustego atrybutu action="" da identyczny rezultat.
Pytasz po co $_SERVER['PHP_SELF']?
Cały temat jest swojego rodzaju tutorialem, a celem jest podanie pewnej dawki informacji. Ponadto uważam, że dobrym zwyczajem jest jednak wpisanie ścieżki, gdzie ma zostać wykonana akcja i nieważne czy przez $_SERVER['PHP_SELF'] czy też ręczne wklepanie nazwy pliku.

PdM zachęcam do rozwijania tematu, wpisywania kolejnych tutków.

PS
Do wszystkich:
Chciałbym, aby w tym wątku wpisywać tylko tutoriale, dzięki temu zostanie zachowana czytelność.
1. Jeżeli macie jakieś uwagi natury technicznej, proszę najpierw skontaktować się z autorem danego posta via PM.
2. Jeżeli chcecie rozwinąć, zmodyfikować któryś z przykładów, to po prostu załóżcie nowy temat.



IP IP Zapisane
Strony: [1]   TOP^Do góry
 Wyślij ten topic  |  Drukuj 
On-Line: 1 Robot, 2 Gości, 0 Użytkowników

Google
 
Skocz do:  

* Share This Topic..
In a forum
[BBCode]
In a site/blog
[xHTML]
Geo Visitors MapTinyPortal v1.0.5 beta 1© Bloc
07-06-2025, 17:23:14