Radionica programiranje 14. u 22 - sigurnosni korisnik u phpMyAdmin

Dobra večer. Ovdje Ivica Kartelo. Počnimo.
Potrebno predznanje Radionica1 - PHP prvi put
Potrebno predznanje Radionica 8 - Baza podataka prvi put
Naučite relacijske baze podataka po mojoj knjizi Access 2000, koju možete skinuti besplatno ovdje.
Ovdje radimo bazu Mariva iz knjige Access 2000, ali u PHP-MySQL verziji.

Kopirajte ovaj SQL u svoj tekst editor i pohranite pod imenom polaznici_tecaja.sql

CREATE DATABASE IF NOT EXISTS `mariva`;

USE `mariva`;

DROP TABLE IF EXISTS `polaznici_tecaja`;




CREATE TABLE `polaznici_tecaja` (

`id_polaznika` int AUTO_INCREMENT NOT NULL,

`ime` VARCHAR(10),

`prezime` VARCHAR(20),

`ulicaibroj` VARCHAR(50),

`grad` VARCHAR(50),

`postanski_broj` VARCHAR(5),

`telefon` VARCHAR(7),

`datum_rodjenja` DATETime,

`mjesto_rodjenja` VARCHAR(20),

`opcina` VARCHAR(20),

`drzava_rodjenja` VARCHAR(40) DEFAULT 'Republika Hrvatska',

`biljeske` LONGTEXT,

INDEX (`prezime`),

PRIMARY KEY (`id_polaznika`)

) ENGINE=myisam DEFAULT CHARSET=utf8;

SET autocommit=1;

#

# Dumping data for table 'polaznici_tecaja'

#
INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ana', 'Karka', 'Mosećka 123', 'Trogir', '21220', '365-077', '1990-09-02 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Ima školu svaki dan u međuturnusu, od 11 do 16.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ana-Marija', 'Širinić', 'Velebitska 14', 'Split', '21000', '47-356', '1990-04-03 00:00:00', 'Trogir', 'Split', 'Republika Hrvatska', 'Engleski vrtić.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Andrijana', 'Pavić', 'Karlovačka 11', 'Split', '21000', '456-987', '1986-05-04 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Dino', 'Ravel', 'Uvala Firule 43', 'Split', '21000', '566-555', '1968-05-04 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Talijanski 2');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Dobrila', 'Grace', 'Supavlova 16', 'Split', '21000', '432-675', '1975-06-05 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Dražen', 'Jerkunica', 'Vukovarska 421', 'Split', '21000', '888-545', '1950-07-07 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Matko', 'Glavac', 'Mosećka 72', 'Split', '21000', '431-908', '1951-07-13 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Engleski vrtić.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Grgo', 'Vale', 'Velebitska 321', 'Split', '21000', '456-088', '1978-02-11 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Hrvoje', 'Banić', 'Vukovarska 342', 'Split', '21000', '345-955', '1990-01-07 00:00:00', 'Omiš', 'Omiš', 'Republika Hrvatska', 'Engleski vrtić.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ines', 'Merina', 'Vinkovačka 56', 'Split', '21000', '532-786', '1984-02-23 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ivana', 'Anković', 'Dražanac 17', 'Split', '21000', '456-789', '1974-09-18 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Fakultet joj je srijedom i četvrtkom i ujutro i poslijepodne.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ivanka', 'Blajić', 'Vukovarska 432', 'Split', '21000', '344-999', '1990-10-02 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Talijanski početnik.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ivana', 'Majde', 'Velebitska 267', 'Split', '21000', NULL, '1980-06-24 00:00:00', 'Omiš', 'Omiš', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ivan', 'Tijardović', 'Domovinskog rata 17', 'Omiš', '21000', '345-876', '1950-08-15 00:00:00', 'Trogir', 'Split', 'Republika Hrvatska', 'Može poslije podne, srijedom i petkom');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Kora', 'Dražanac 17', 'Split', '21000', '456-999', '1985-07-12 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Karla', 'Giljan', 'Šibenska 17', 'Split', '21000', '456-654', '1972-07-02 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Talijanski početnik.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Lidija', 'Pirs', 'Tijardovićeva 12', 'Split', '21000', '432-187', '1962-10-16 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Magda', 'Kriletić', 'Drniška 32', 'Split', '21000', '366-879', '1990-07-05 00:00:00', 'Orebić', 'Orebić', 'Republika Hrvatska', 'Engleski vrtić.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Marta', 'Ivić', 'Poljička cesta 54', 'Split', '21000', '341-897', '1986-03-07 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Marin', 'Milar', 'Omiška 33', 'Split', '21000', NULL, '1951-09-21 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ivanka', 'Maroić', 'Put mora 14', 'Trogir', '21220', '412-198', '1959-02-13 00:00:00', 'Omiš', 'Omiš', 'Republika Hrvatska', 'Engleski vrtić.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Martina', 'Varnika', 'Kneza Branimira 17', 'Split', '21000', '45-099', '1979-12-12 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Mijo', 'Banić', 'Vukovarska 342', 'Split', '21000', '345-955', '1990-01-07 00:00:00', 'Omiš', 'Omiš', 'Republika Hrvatska', 'Engleski vrtić.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Mihovil', 'Grace', 'Omiška 2', 'Split', '21000', '567-987', '1979-02-24 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Marina', 'Kran', 'Velebitska 22', 'Omiš', '21000', '432-987', '1974-09-01 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Talijanski početnik.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Ivica', 'Perko', 'Velebitska 21', 'Split', '21000', '422-333', '1950-04-22 00:00:00', 'Vinkovci', 'Vinkovci', 'Republika Hrvatska', 'Njemački početnik.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Silvana', 'Zlokić', 'Vrh Kmana 23', 'Split', '21000', '897-678', '1986-02-12 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Smilja', 'Maler', 'Mosećka 14', 'Split', '21000', '42-077', '1976-04-04 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Šime', 'Karlić', 'Istarska 67', 'Split', '21000', '989-566', '1950-03-12 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Tomislav', 'Žižić', 'Šibenska 123', 'Split', '21000', '345-897', '1990-05-03 00:00:00', 'Solin', 'Solin', 'Republika Hrvatska', 'Njemački početnik.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Zvonimir', 'Birioli', 'Mosećka 222', 'Split', '21000', '325-765', '1980-04-21 00:00:00', 'Split', 'Split', 'Republika Hrvatska', 'Škola srijedom cijeli dan.');

INSERT INTO `polaznici_tecaja` ( `ime`, `prezime`, `ulicaibroj`, `grad`, `postanski_broj`, `telefon`, `datum_rodjenja`, `mjesto_rodjenja`, `opcina`, `drzava_rodjenja`, `biljeske`) VALUES ('Zvonimir', 'Puljić', 'Vukovarska 545', 'Split', '21000', '345-765', '1986-06-05 00:00:00', 'Split', 'Split', 'Republika Hrvatska', NULL);


Kreirajte bazu podataka i tablicu polaznici_tecaja s podacima, ovako:

localhost
phpMyAdmin
Import
polaznici_tecaja.sql

Kreirajte ovaj upit u svom tekst editoru:

1. S korisničkim imenom "root". Taj "user" već postoji, nema "password" i automatski svaka PHP aplikacija preko toga korisnika može ulaziti na platformu MySQL i pristupati željenoj bazi podataka, ovako:

<?php
$link = mysqli_connect("localhost", "root", "", "mariva");
$result = mysqli_query($link, "SELECT ime FROM polaznici_tecaja where ime like 'd%' or ime like '%e%' order by ime");
While ($row = mysqli_fetch_assoc($result))
{
print $row["ime"];
}
?>

2. Slažem se s programerima koji sugeriraju da se u tečajevima, radionicama, knjigama odmah na prvom primjeru upozori i poduči da se bazama pristupa s kreiranim svojim korisnikom (user name) i njegovom zaporkom. najprije ćemo kreirati novog korisnika:
a) localhost
b) phpMyAdmin
c) klik na User accounts i ispunite sve kao na slici. Password sam dobio da sam kliknuo Generate password

d) uključite Global privileges Check All i ako ugledate "You have added a new user" kreirali ste novog korisnika s kojim možete (Global privilegies = pristupati svim bazama koje vježbate) a ako želite pristupati s tim korisnikom samo jednoj bazi onda klik na Database pa odaberite bazu.

Vraćamo se PHP-u.
Kodirali ste gornji upit s pristupom korisnika "root" i zaporka "".
$link = mysqli_connect("localhost", "root", "", "mariva");
Pohranite u htdocs.
Otvorite u internet pregledniku.
Radi. u redu.
A sad samo promjenite:
$link = mysqli_connect("localhost", "nekoime", "", "kopirajte onu dugugeneriranu zaporku");
Pohranite, Save.
Sad F5 u internet pregledniku i ako radi to je to.

Podsjetite se:

Potrebno predznanje Radionica1 - PHP prvi put

Potrebno predznanje Radionica 8 - Baza podataka prvi put

Npomena: Kad sam pokušao kreirati novog korisnika, javila mi se greška #1018 - can't read dir of 'c:\xampp\mysql\lib\plugin\
Pogledao sam i vidio da nema ni mape lib ni mape plugin. Dodao sam te dvije mape i sve je radilo u redu.

Primjedbe