Pieslēgšanās datu bāzei

$connection = new mysqli("localhost", "lietotajs",
                        "parole", "db_nosaukums");
// pārbaudam vai pieslēgšanās notikusi veiksmīgi,
// ja nē izvada kļūdas paziņojumu un pārtrauc skripta izpildi
if (mysqli_connect_errno()) {
   printf("Neizdevās pieslēgties: %s\n", mysqli_connect_error());
   exit();
}
printf("Informācija par serveri: %s\n", $dblink->host_info);
/* aizver pieslēgumu datu bāzei*/
$connection->close();

printf()

$skaitlis1 = 1;
$skaitlis2 = 2;
$teksts1 = 'pirmais';
$teksts2 = 'otrais';
printf("skaitlis: %d
\n", $skaitlis1); printf("skaitlis 1: %d un teksts 2: %s
\n", $skaitlis1, $teksts2); printf("vēl vairāk: %s; %d; %s; %d
\n", $teksts2, $skaitlis2, $teksts1, $skaitlis1);

Datu nolasīšana

$sql = "SELECT actor_id, first_name, last_name FROM actor
			WHERE actor_id = $aid";

if (!$result = $connection->query($sql)) {
    // Pieprasījums nenostrādāja.
    echo "Kļūda pieprasījumā.";
    echo "Query: " . $sql . "\n";
    echo "Errno: " . $connection->errno . "\n";
    echo "Error: " . $connection->error . "\n";
    exit;
}

Datu nolasīšana

if ($result->num_rows === 0) {
    // Netika atgriezts neviens rezultāts.
    echo "Nav aktiera ar ID $aid.";
    exit;
}

Datu nolasīšana

$actor = $result->fetch_assoc();
echo "Aktieris: " . $actor['first_name'] . " " . $actor['last_name'];

Vairāki rezultāti

$sql = "SELECT actor_id, first_name, last_name FROM actor
			ORDER BY rand() LIMIT 5";
if (!$result = $mysqli->query($sql)) {
    echo "Kļūda pieprasījumā.";
    exit;
}

Vairāki rezultāti

echo "<ul>\n";
while ($actor = $result->fetch_assoc()) {
    echo "<li><a href='aktieris.php?aid=" . $actor['actor_id'] . "'>\n";
    echo $actor['first_name'] . ' ' . $actor['last_name'];
    echo "</a></li>\n";
}
echo "</ul>\n";

Jauna ieraksta pievienošana

$sql = "INSERT INTO actor (first_name, last_name)
VALUES ('John', 'Doe')";

if ($connection->query($sql) === TRUE) {
    echo "Jauns ieraksts saglabāts.";
} else {
    echo "Kļūda pieprasījumā: " . $sql . "
" . $connection->error; }

Pieslēgšanās DB izmantojot PDO

Sesiju mainīgo izmantošana

  • Pēc tam kad sesija ir tikusi inicializēta, sesijas masīvā var saglabāt vai no tās nolasīt datus.
  • Lai griestos pie sesijas mainīgajiem, lieto sekojošu sintaksi $_SESSION['mainiga_nosaukums'];
session_start();
if (!isset($_SESSION["skaits"])){
      $_SESSION["skaits"] = 1;
}else{
      $_SESSION["skaits"]++;
}
echo "Lapa ielādēta ". $_SESSION["skaits"]." reizes";

isset(mainīgais)

  • Funkcija isset() atgriež vērtību „patiess”, ja šāds mainīgais ir izveidots un „nepatiess”, ja tas nav izveidots.
  • Funkcija darbojas ne tikai ar sesijas mainīgajiem, bet ar jebkuru mainīgo.
if (!isset($_SESSION["skaits"])){
      $_SESSION["skaits"] = 1;
}else{
      $_SESSION["skaits"]++;
}

Sesiju pielietojums lietotāju autorizēšanai

  • Pieņemsim, ka lietotājs iepriekš jau ticis reģistrēts.
  • Kad lietotājs sekmīgi autorizējas, sesijas masīvā $_SESSION kādā brīvi izvēlētā mainīgajā jāieraksta, ka tekošais lietotājs ir sekmīgi autorizējies (piem $_SESSION['is_logged_in']=true;).
if( isset($_SESSION['is_logged_in']) &&
    $_SESSION['is_logged_in'] == true)
{
 //uzskatam ka lietotājs ir autorizēts
}

Sesiju pielietojums lietotāju autorizēšanai

  • Ja lietotājs vairs nav autorizējies, tad dzēšam šo mainīgo
  • Vai arī iznīcinam visu sesiju
unset($_SESSION['is_logged_in']);
session_destroy();

Sesiju pielietojums lietotāju autorizēšanai

  • ir jānodrošina, lai mainīgā $_SESSION['is_logged_in'] vērtību varētu mainīt tikai funkcijas, kas pārbauda vai lietotājs autorizējas vai beidz autorizāciju.
  • Ir ieteicams izveidot atsevišķu funkciju, kas pārbauda vai lietotājs ir autorizēts un citur kodā izmantot tikai šo funkciju un negriezties tiešā formā pie šī mainīgā.

Sesiju pielietojums lietotāju autorizēšanai

function is_authorised(){
	return $_SESSION['is_logged_in'];
}
if(is_authorised()==true){
	// parādam informāciju kas pieejama tikai autorizētiem lietotājiem
}

Sesiju pielietojums lietotāju autorizēšanai

Kļūdains piemērs (tiek izmantota piešķiršana, nevis salīdzināšana):
if ($_SESSION['is_logged_in'] = true){
}

Sīkdatnes

setcookie('cepuma_nosaukums','Selga');
if (isset($_COOKIE['x'])){
      setcookie('x',$_COOKIE['x']+1,time()+360000);
}else{
	setcookie('x',0,time()+360000);
}
echo $_COOKIE['x'];
echo '
'; echo $_COOKIE['cepuma_nosaukums'];

Sīkdatnes

  • Sīkdatnes bieži vien tiek izmantotas lai izsekotu publisku tīmekļa vietņu apmeklētāju uzvedību.
  • Sīkdatnēs saglabātie mainīgie kļūst pieejami tikai nākamajā lapas ielādes reizē.
  • Ja nepieciešams izdzēst mainīgo no sīkdatnes, tad jālieto tā pati funkcija set_cookie() ar tieši tādiem pašiem parametriem kā veidojot šo sīkdatnes mainīgo, izņemot beigu termiņš jānorāda pirms patreizējā brīža.
setcookie('x',$_COOKIE['x']+1, time()-10);

Datņu augšupielāde

  • Datņu ielāde tiek realizēta izmantojot HTML formas.
  • Tajās var pievienot īpašus “file” tipa datu ievades elementus.

Datņu augšupielāde



Sūtīt šo datni:

  • Forma

  • Augsupielādētā faila apstrāde ar PHP
if (is_uploaded_file($_FILES['datne']['tmp_name'])) {
      if (copy($_FILES['datne']['tmp_name'],
            "C:/mana/mape/".$_FILES['datne']['name'])) {
            echo "Datne veiksmīgi augšupielādēta";
      } else {
            echo "Kļūda";
      }
} else {
      echo "Nekorekta datne";
}