pasjaonline.pl
as
as
as
as
PHP w praktyce
autor

Hubert Galiński

date

W moim pierwszym wpisie dotyczącym PHP pokażę Wam jak napisać prosty system zamówień.
Nie jest to nic profesjonalnego – to po prostu przykład służący rozwinięciu naszych umiejętności. Do zrozumienia tego artykułu potrzebna jest znajomość języka opisowego HTML oraz podstawy PHP. W artykule pokażę kod, a następnie go wytłumaczę.

Na samym początku należy stworzyć plik o nazwie index.php (ten plik jest domyślnie uruchamiany jako pierwszy na stronach). Cały kod tego pliku wygląda tak:

<html>
	<head>
		<title>Złóż zamówienie</title>
	</head>
	<body>
		<h1>Złóż swoje zamówienie:</h1>
		<form method="GET" action="zamowienie.php"> <!---------------1--------------->
			<i>Monitor (1000PLN)</i>
			<input type="text" name="monitory" /> <!---------------2--------------->
			<i>Klawiatura (150PLN)</i>
			<input type="text" name="klawiatury" />
			<i>Procesor (500PLN):</i>
			<input type="text" name="procesory" />
			<input type="submit" value="Zatwierdź" />
		</form>
	</body>
</html>

1. Tutaj jest powiedziane, że wszystkie dane pomiędzy znacznikami „<form> </form>” będą wysłane metodą „GET” (Informacja co to jest GET i POST jest nieistotna na tym poziomie, wytłumaczę ją w następnym artykule.).

2. To jest znacznik, który mówi, że prześle dane do serwera i będą one dostępne w tablicy pod indeksem, który jest podany w atrybucie „name” – w tym przypadku „monitory”.

Dwa podane wyżej punkty wyjaśniają najważniejsze kawałki kodu.

<html>
	<head>
		<title>Informacje dotyczące zamówienia</title>
	</head>
	<body>
		<?php //---------------1---------------
			$monitory = $_GET['monitory']; //---------------2---------------
			$klawiatury = $_GET['klawiatury'];
			$procesory = $_GET['procesory'];

			$smonitory = $monitory * 1000; //---------------3---------------
			$sklawiatury = $klawiatury * 150;
			$sprocesory = $procesory * 500;

			$suma = $smonitory + $sklawiatury + $sprocesory; //---------------4---------------

//---------------5---------------
echo <<<START
	<h1>Zamówienie potwierdzone!</h1>
<table border="1px">
	<thead>
		<td>Nazwa</td>
		<td>Sztuk</td>
		<td>Cena</td>
		<td>Suma</td>
	</thead>

	<tbody>
		<tr>
			<td>Monitor</td>
			<td>$monitory</td>
			<td>1000PLN</td>
			<td>{$smonitory}</td>
		</tr>
		<tr>
			<td>Klawiatura</td>
			<td>$klawiatury</td>
			<td>150PLN</td>
			<td>{$sklawiatury}</td>
		</tr>
		<tr>
			<td>Procesor</td>
			<td>$procesory</td>
			<td>500PLN</td>
			<td>$sprocesory</td>
		</tr>
	</tbody>
<b>Suma: $suma</b>
</table>
START;
		?> <!-----------------1--------------->
	</body>
</html>

1. Znacznik „<?php” oznajmia serwerowi, który odbiera żądanie, że tutaj jest zawarty skrypt PHP. Kod nie może być wykonany do końca jako PHP ponieważ może być dalej np. JavaScript, dlatego jest znacznik zamykający „?>” – chociaż osoby które wiedzą więcej na temat tego języka nie używają znacznika zamykającego.

2. Pamiętacie jak mówiłem w pierwszym punkcie że dane będą wysłane do serwera? Właśnie tutaj je odbieramy. $_GET[”] to taka tablica (superglobalna) ze wszystkimi danymy przesłanymi z poprzedniego pliku tutaj. Indeksem jest wszystko to, co znajduje się pomiędzy kwadratowymi nawiasami – właśnie dlatego w poprzednim pliku w znaczniku „input” nazywaliśmy dane, aby teraz je odebrać i nie pomylić. Analogicznie do tego przykładu pobieramy dane o ilości kupionych przedmiotów w dalszej części kodu.

3. Tutaj przypisujemy do nowej zmiennej (zaczynającej się od litery s jak suma), która oznacza sumę za dany przedmiot (cena * ilość). Postępujemy w ten sam sposób dalej.

4. Do zmiennej „suma” przypisujemy wszystkie wartości które zdefiniowaliśmy (poprzedni punkt).

5. Jak może się domyślasz (lub wiesz) instrukcja echo wyświetla coś na stronie. Tutaj zrobiliśmy „super instrukcję” (tak to nazwałem w celach tego poradnika). Pozwala ona nam na wyświetlanie kodu HTML (czyli języka opisowego) ze zmiennymi, które zdefiniowaliśmy wcześniej. Pamiętajmy o znaczniku, który zamyka tą „super funkcję”. Należy również pamiętać o tym że po znaczniku, który kończy tę funkcję nie może być niczego – nawet białych znaków. Czemu używamy „super instrukcji”? Zobacz jak to by wyglądało gdybyśmy nie użyli tej „super instrukcji”.

echo "
	<h1>Zamówienie potwierdzone!</h1>
<table border="1px">
	<thead>
		<td>Nazwa</td>
		<td>Sztuk</td>
		<td>Cena</td>
		<td>Suma</td>
	</thead>

	<tbody>
		<tr>
			<td>Monitor</td>
			<td>" . $monitory . "</td>
			<td>1000PLN</td>
			<td>" . $smonitory . "</td>
		</tr>
		<tr>
			<td>Klawiatura</td>
			<td>" . $klawiatury . "</td>
			<td>150PLN</td>
			<td>" . $sklawiatury . "</td>
		</tr>
		<tr>
			<td>Procesor</td>
			<td>" . $procesory . "</td>
			<td>500PLN</td>
			<td>" . $sprocesory . "</td>
		</tr>
	</tbody>
<b>Suma:" . $suma . "</b>
</table>"

Prawda, że wygląda to okropnie?
Podsumowanie.
* Do tego malutkiego projektu należy utworzyć dwa pliki index.php oraz zamowienie.php – nazwa drugiego może być zmieniona, ale trzeba zmienić również troszkę kodu.
* Do przesyłania danych z formularzy możemy użyć dwóch metod – GET oraz POST.
* Plik PHP zaczynamy znacznikiem <?php, a kończymy ?> – w dalszym etapie nauki dowiesz się że można nie zamykać tego znacznika.
* Aby odebrać dane w pliku .php należy wyciągnąć je z dużej tablicy ($_GET[] lub $_POST[]) na podstawie indeksu.
* Warto jest używać „super instrukcji” do wyświetlania kodu HTML połączonego ze zmiennymi z PHP.

Ten wpis dobiegł końca. Mam nadzieję, że nauczyliście się czegość pożytecznego 😉

  • Michał Perłakowski

    „Prawda, że wygląda to okropnie?” Tak, ten artykuł wygląda okropnie. Nie ma nawet zabezpieczeń przed XSS.

    • http://pasjaonline.pl PasjaOnline.pl

      Jest to artykuł skierowany raczej do osób początkujących – dlatego też nie pojawiły się żadne informacje o zabezpieczeniach.

      • event15

        Właśnie z tego powodu powinny się obowiązkowo pojawić takie informacje.