|
Kierunek
Informatyka |
||||
|
|
||||
|
Instrukcja do ćwiczeń laboratoryjnych nr: |
3 |
Nazwa przedmiotu: |
||
|
Temat PHP
|
Tryb studiów: stacjonarny |
|||
|
Czas trwanie ćw. 2x45
min |
||||
|
Autor materiałów: dr Marcin Skuba |
||||
1. Treści programowe:
PHP, programowanie skryptów wykonywanych po stronie
serwera.
2. Cel zajęć:
Celem zajęć jest opanowanie podstawowych
umiejętność programowania w języku PHP. Deklaracja zmiennych, operacje
arytmetyczno logiczne, deklaracja funkcji, tablice i inne. Przekazywanie
wartości z formularzy do serwera i z serwera na stronę www.
3. Materiały dydaktyczne
PHP
to język programowania wykorzystywany na stronach WWW po stronie serwera.
Link do pełnej dokumentacji
https://www.w3schools.com/php/default.asp
Uruchomienie lokalnego
serwera Apache i MySQL

Strona powinna zostać
zapisana w folderze aplikacji XAMPP np. C:\xampp\htdocs\moja_strona
Jeśli plik ma nazwę index.php możemy taką stronę uruchomić podając w polu
adresu przeglądarki tylko nazwę folderu
Jeśli nawa pliku będzie
inna należy go wpisać, np.:
localhost/moja_strona/nazwa_pliku.php
Przykład ulokowania
<!DOCTYPE html>
<html>
<body>
<?php
echo "Mój
pierwszy skrypt PHP”;
?>
</body>
</html>
Operatory arytmetyczne:
|
Operator |
Name |
Example |
Result |
|
+ |
Dodawanie |
$x + $y |
Suma $x i $y |
|
- |
Odejmowanie |
$x - $y |
Różnica $x i $y |
|
* |
Mnożenie |
$x * $y |
Iloczyn $x i $y |
|
/ |
Dzielenie |
$x / $y |
Iloraz $x i $y |
|
% |
Modulo |
$x % $y |
Modulo $x $y |
|
** |
Potęgowanie |
$x ** $y |
Liczba $x podniesiona do $y potęgi |
Operatory porównania:
|
Operator |
Name |
Example |
Result |
|
== |
Equal |
$x == $y |
zwraca true jeśli $x jest równe $y |
|
=== |
Identical |
$x === $y |
zwraca true jeśli $x jest równe $y,
oraz róne są typy |
|
!= |
Not equal |
$x != $y |
zwraca true jeśli $x jest różne od $y |
|
<> |
Not equal |
$x <> $y |
zwraca true jeśli $x jest różne od $y |
|
!== |
Not identical |
$x !== $y |
zwraca true jeśli $x nie jest równe
$y, lub są różne tytpy |
|
> |
Greater than |
$x > $y |
zwraca true jeśli $x jest większe od
$y |
|
< |
Less than |
$x < $y |
zwraca true jeśli $x jest mniejsze od
$y |
|
>= |
Greater than or equal to |
$x >= $y |
zwraca true jeśli $x jest większe lub róne $y |
|
<= |
Less than or equal to |
$x <= $y |
zwraca true jeśli $x jest mniejsze lub
równe $y |
|
<=> |
Spaceship |
$x <=> $y |
Zwraca liczbę całkowitą mniejszą, równą lub większą od zera, w
zależności od tego, czy $x jest mniejsze, równe lub większe niż $y.
Wprowadzone w PHP 7. |
Deklaracja zmiennych (brak typów)
$txt = "Hello world!"; //przypisanie wartości tekstowej
$x = 5; //
przypisanie wartości całkowitej
$y = 10.5; //
przypisanie wartości zmienno-przecinkowej
Wyświetlanie wartości zmiennych na stronie
$txt = "Wojtek";
echo "Cześć $txt!";
lub
$txt = "Wojtek";
echo "Cześć " .$txt . "!";
Funkcja zwracająca typ oraz wartość
$x
= 5985;
var_dump($x);
/int(5985)
Rzutowanie typów:
// Rzutowanie float to int
$x = 12345.876;
$int_cast = (int)$x;
echo $int_cast;
// Rzutowanie string to int
$x =
"12345.876";
$int_cast = (int)$x;
echo $int_cast;
Definicja stałej
$r=2;
define("pi", 3.14);
$pole = 4*pi*$r**2;
echo "pole=".$pole;
Instrukcja warunkowa if
if (condition) {
//kod wykonywany gdy warunek jest prawdziwy
} else {
kod wykonywany gdy warunek jest fałszywy
}
Przykład:
$godzina= date("H");
if ($godzina < "18") {
echo "Dzień dobry!";
} else {
echo "Dobry wieczór!";
}
Instrukcja warunkowa switch-case
switch (n) {
case 1:
// kod wykonywany gdy n=1;
break;
case 2:
// kod wykonywany gdy n=2;
break;
case 3:
//
kod wykonywany gdy n=3;
break;
...
default:
code to be executed if n is
different from all labels;
}
Petla
while
while
(condition is true) {
// wykonywany kod
}
Przykład:
while($x <= 5) {
echo "The
number is: $x <br>";
$x++;
}
Petla
do-while
do {
code to be executed;
} while (condition is true);
Przykład:
do {
echo "The
number is: $x <br>";
$x++;
} while ($x <= 5);
Pętla for
for (init counter; test counter; increment counter) {
code to be executed;
}
Przykład:
for ($x
= 0; $x <= 10; $x++) {
echo "The
number is: $x <br>";
}
Pętla
foreach
foreach
($array as $value) {
code to be executed;
}
Przykład:
$colors = array("red", "green", "blue", "yellow");
foreach ($colors as $value) {
echo "$value
<br>";
}
Funkcje
function functionName() {
code to be executed;
}
Przykład deklaracji i wywołania funkcji niezwracającej i niepobierającej wartości:
function writeMsg() {
echo "Hello
world!";
}
writeMsg(); // wywołanie funkcji
Przykład deklaracji i wywołania funkcji pobierającej wartości oraz niezwracającej wartości:
function ustawImie($fname) {
echo "Cześć $fname<br>";
}
ustawImie("Jan");
ustawImie("Janina");
ustawImie("Wojtek");
Przykład deklaracji i wywołania funkcji pobierającej wartości i zwracającą wynik
function dodcaj(int $a, int $b) {
return $a + $b;
}
echo dodaj (5, 5); // 10
echo dodaj (5, “5”); // 10
echo dodaj (5, "5 days"); //
10
przykład funkcji zwracającej wartość określonego typu:
function dodaj(float $a, float $b) : int {
return (int)($a + $b);
}
echo dodaj(1.2, 5.2); //
6
Tablice
$cars = array("Volvo", "BMW", "Toyota");
echo "Lubię " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".<br>";
$cars[3]="Fiat";
foreach ($cars as $value) {
echo "$value <br>";
}
Formularze
Wysyłanie danych
<html>
<body>
<form action="witam.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit" value="wyślij">
</form>
</body>
</html>
Odbieranie
danych (w pliku witam.php)
<html>
<body>
Witam <?php echo $_POST["name"]; ?><br>
Twój adres email: <?php echo $_POST["email"]; ?>
</body>
</html>
Przekazywanie
wartości z php do javascript
<div id="element" style="color:
red;"></div>
<script>
var srednia =
"<?=$zmienna_php ?>"
document.getElementById("element").innerHTML=srednia;
</script>
Przykład wykorzystania zmiennej sesyjnej oraz przekierowanie
do innej strony
Plik witaj.php

Plik index.php

Pobieranie danych z bazy
danych
Przykładowa baza danych o nazwie „firma”

Przykład pliku php, z którego
zostanie wysłana prośba o pobranie danych z bazy danych „index.php”
<!DOCTYPE HTML>
<HTML lang="pl">
<head>
</head>
<body>
<center>
<form
action="select_datebase.php" method="post">
Podaj
id pracownika:
<input type="text" name="id"/>
<input type="submit" value="Pobierz
rekord z bazy danych"/>
</form>
</center>
</body>
</html>
Przykład pliku "select_datebase.php" zawierającego skrypt połącznia z bazą i
pobrania imienia i nazwiska pracownika o wskazanym id
<?php
$id =
$_POST['id'];
$host="localhost";
$bd_user="root";
$bd_password="";
$bd_name="firma";
$con
= @mysqli_connect($host, $bd_user,
$bd_password, $bd_name );
if($con){
$sql = "SELECT * FROM pracownicy
WHERE id=".$id;
mysqli_query($con,"SET CHARSET
utf8");
mysqli_query($con,"SET NAMES 'utf8'
COLLATE 'utf8_general_ci'");
$result
= mysqli_query($con, $sql);
$wiersz=mysqli_fetch_assoc($result);
$imie=$wiersz['imie'];
$nazwisko=$wiersz['nazwisko'];
echo
"rekord: ".$imie." ".$nazwisko;
mysqli_close($con);
}
else{
echo
"connection not success!";
}
?>
Zadania
Zadanie 1.
Napisz skrypt php
dodający dwie liczby wprowadzone w pole tekstowe oraz wyświetlający wynik w
nowej stronie. Skrypt powinien się wykonać w momencie naciśnięcia przycisku z
etykietą „Dodaj”.
Zadanie 2.
Napisz skrypt wyświetlający na stronie
tekst „Nowoczesne techniki programowania” tyle razy ile zostanie podane w polu
tekstowym.
Zadanie 3.
Napisz skrypt php
dodający dwie liczby wprowadzone w pole tekstowe oraz wyświetlający wynik na
tej samej stronie, pod formularzem. Wynik powinien być wyświetlony jako tekst
wielkości 30 pikseli w kolorze czerwonym.
Skrypt wykona się w momencie naciśnięcia przycisku z etykietą „Dodaj”.
Zadanie 4.
Napisz skrypt, który pobiera dane z
bazy danych oraz wyświetla je na stronie internetowej. Dane w bazie powinny
dotyczyć produktów w sklepie (id, nazwa, cena ). Utwórz bazę oraz dodaj kilka
przykładowych rekordów. Na stronie głównej umieść formularz umożliwiający
wpisanie identyfikatora towaru, który ma zostać wyszukany w bazie i wyświetlony
na stronie.
Zadanie 5. (opcjonalnie)
Napisz program wg własnego pomysłu
wykorzystujący zmienne sesyjne.