Sunt încântat să vă prezint o parte dintr-o serie de două părți privind crearea unui site de fotografie folosind PHP, jQuery și AJAX. Inițial, am intenționat să potrivesc întregul tutorial într-un singur ecran, dar acesta a devenit rapid un vis de tevi, deoarece mi-am dat seama că a fost prea mult de acoperit. Cu toate acestea, chiar dacă vizionați doar primul videoclip, ar trebui să învățați foarte mult.
Vom recupera imagini dintr-o bază de date, creând un simplu formular de autentificare cu autentificare și vom permite ca baza noastră de date să fie actualizată asincron. Suna bine? Dacă da, să intrăm în ea.
Pentru această lecție, obiectivul nostru este de a crea o secțiune de administrare a fotografiilor unde un administrator poate prelua fotografii dintr-o bază de date și poate actualiza titlul fotografiilor făcând clic simplu pe textul corespunzător. Pentru a face această pagină mai sigură, vom crea și un simplu sistem de membru. În tutoriale ulterioare, vom extinde aceste concepte.
Deschideți PHPMyAdmin și creați o bază de date numită "db". În cadrul acestei baze de date, va trebui să adăugăm două tabele: "fotografii" și "utilizatori".
În loc să codificăm greșit imaginile noastre în documentul nostru, le vom stoca într-o bază de date. Deși am putea să facem acest tabel atât de sofisticat pe cât vrem, vom păstra simplu pentru moment.
Pentru a edita fotografiile, trebuie să creăm un sistem simplu de membru care să permită utilizatorului nostru să se autentifice și să-și editeze fotografiile. Desigur, nu vrem să dăm tuturor așa!
Creați un nou document php și adăugați următoarele în documentul dvs..
Site-ul meu de fotografii
Nu vă faceți griji prea multe despre ceea ce este aici. Vom trece peste tot în timp. Dar, ca o privire de ansamblu rapidă, importăm biblioteca jQuery, un plugin jQuery lightbox și scripturile personalizate (pe care le vom crea în curând). Faceți câteva secunde pentru a examina fișierul CSS. Nu voi trece prea mult în acest articol scris - cum este deja destul de lung! Consultați secțiunea de difuzare pentru mai multe informații. Dar, vă asigur că este ceva standard și simplu simplu.
Principalul lucru pe care trebuie să vă concentrați acum este:
Aceasta va fi secțiunea în care vom prelua fotografiile din baza de date. Să lucrăm la asta chiar acum. Creați o pagină nouă
numit "getPhotos.php".
Să trecem rapid la ceea ce trebuie să realizăm cu acest cod.
Inserați următorul cod în documentul dvs.:
interogați (interogare $) sau mori (mysqli_error ($ mysqli)); dacă ($ rezultat) echo "
Primul lucru pe care trebuie să-l facem este să creezi o legătură cu baza noastră de date. Cu toate acestea, vom face acest lucru de multe ori pe parcursul acestui proiect. Deci, să creăm o altă pagină numită "database.php" și să stocăm informațiile acolo. În acest fel, trebuie doar să editați un fișier, dacă este nevoie. Adăugați următorul cod în fișierul database.php.
Creăm o variabilă numită "$ mysqli" și o setăm la o nouă instanță a obiectului "MySQLi". Trebuie să trecem în patru parametri:
Pentru a păstra lucrurile curate, vom plasa aceste valori în variabile și le vom referi. Dacă conexiunea nu este făcută, îi vom spune să "moară".
Acum să revenim la fișierul nostru "getPhotos.php". Următorul pas este interogarea bazei de date.
$ query = "SELECT id, titlu, src FROM photos"; $ result = $ mysqli-> interogare (interogare $) sau muri (mysqli_error ($ mysqli));
Întrebarea noastră este extrem de simplă. În principiu, preluăm totul din baza de date. S-ar putea să doriți să modificați acest lucru
interogare pentru a se potrivi cu propria aplicație. Transmitem interogarea utilizând "$ mysqli-> query ($ query)".
Dacă această interogare a fost efectuată cu succes, vom crea lista neordonată și vom adăuga imaginile noastre.
ecou "
Creăm o variabilă numită rând $ care va fi egală cu fiecare instanță a unui rând din baza de date. Atâta timp cât există rânduri
pentru a fi preluat, această variabilă va conține informațiile despre rândul respectiv.
Vom stoca toate informațiile de care avem nevoie în variabile. De exemplu, să presupunem că într-un rând avem următoarele date.
Prin efectuarea unui $ row-> title, putem să luăm acea valoare și să o stocăm în variabila de titlu $. Deci, în acest caz, $ title = "Fotografia mea preferată"; $ src = "10.jpg"; $ id = 4;.
Tot ce trebuie să facem acum este să adăugăm acele informații în imaginea noastră și etichetele ancorei. Ultima linie va adăuga un câmp de intrare. Acest lucru va permite în final utilizatorului să actualizeze titlul imaginii în mod asincron.
Dacă executați "index.php" în browserul dvs., ar trebui să vedeți următoarele:
Acum, că avem aspectul de bază al site-ului nostru, să-l ajaxificăm! Vom începe prin rezumarea a ceea ce avem nevoie de PHP pentru a face. Consider că acest lucru ajută foarte mult la lucru.
Creați un fișier PHP numit "changePhotoTitle.php" și lipiți-l în următorul cod:
?
interogați ($ update_query) sau mori (mysqli_error ($ mysqli)); dacă ($ rezultat) echo "Succes!
"; echo" Titlul acestei fotografii a fost schimbat în: titlu $";>>
Am solicitat din nou fișierul bazei de date. (Nu ne bucurăm că am stocat-o într-un fișier separat?) Apoi, creăm două
variabile. Titlul $ este egal cu oricare dintre utilizatori intră în acel câmp de introducere. $ id este egal cu câmpul său de identificare respectiv în
bazei de date.
Pentru a preveni o injecție SQL, vom împacheta aceste valori post cu mysql_real_escape_string ().
Actualizarea este destul de simplă. Actualizați tabelul cu fotografii și modificați câmpul de titlu la oricare dintre utilizatori intră în caseta de text respectivă; Dar modificați numai câmpul de titlu care are un id egal cu $ id. (Consultați ecranul pentru o mai bună înțelegere.)
Dacă actualizarea a fost efectuată cu succes, vom reciona un mesaj de felicitări.
Pentru a efectua actualizarea fără postback, vom folosi jQuery. Creați un nou fișier Javascript numit "scripts.js" și
lipiți în următoarele:
$ (') $ (') () ($) ($) ) .arr ('id'); var thisParam = $ (this); var titlu = $ () acest lucru este valabil pentru toate tipurile de aplicații de tip " (')' ($) ($) ($) ($) ($). răspuns) .prepend (“X„); $ ('span # x') faceți clic pe (funcția () $ ('div # response'). ); ); );
Folosind ".ajax", vom apela actualizarea. $ .axax va accepta patru parametri.
Acum, evident, nu vrem ca nimeni să poată edita titlurile acestor imagini. Deci, vom crea un simplu sistem de aderare.
Creați o pagină nouă numită "login.php" și adăugați următorul cod:
Conectați-vă pentru a edita fotografii
În eticheta organismului, avem o formulă simplă care are două câmpuri: una pentru numele de utilizator și cealaltă pentru parolă. Când utilizatorul face clic pe butonul "Conectare", informațiile din acele casete de text vor fi postate în "confirmLoginCredentials.php". Continuați, creați acea pagină chiar acum și adăugați următoarele.
interogați ($ q) sau muriți (mysqli_error ($ mysqli)); dacă (! mysqli_num_rows ($ rezultat) == 1) antet ("Locație: login.php"); altceva setcookie ("autorizat", 1, 0); antet ("Locație: index.php"); ?>
În mod obișnuit, stocăm valorile din acele casete de text în variabile numite $ username și $ password, respectiv. Din nou, tragem în fișierul nostru database.php. Interogarea noastră returnează rândul din baza de date în care numele de utilizator și parola sunt egale cu cele introduse în aceste două casete de text. Trebuie returnat un singur rând. Dacă nu se întâmplă acest lucru, utilizatorul va redirecționa înapoi la "login.php". Altfel, le vom trimite pe pagina principală "index.php" și vom seta un cookie.
setcookie ("autorizat", 1, 0);
Numele cookie-ului nostru va fi "autorizat"; valoarea va fi egală cu 1; iar data de expirare va fi 0. 0 în esență înseamnă că atunci când utilizatorul își închide browser-ul, cookie-ul va expira.
Când utilizatorul este direcționat către pagina index.php, trebuie să scriem un cod rapid de cod care să asigure că există cookie-ul necesar pe computerul utilizatorului. Reveniți la index.php și adăugați codul următor în partea superioară a documentului.
Dacă utilizatorul are un cookie numit "autorizat" pe computerul său și acel cookie are o valoare egală cu 1, atunci afișați pagina. Dar dacă nu, trimiteți-le înapoi la login.php.
Ultimul pas în acest tutorial este de a permite utilizatorului să se deconecteze. Găsiți eticheta pe pagina dvs. index.php care arată astfel:
logout
Adăugez o pereche cheie-valoare la această adresă URL. Această valoare va fi trecută la "login.php". Mergeți la această pagină și adăugați ultimul cod de cod la partea de sus.
Dacă în cheia de interogare cheia de "logout" este egală cu 1, setați un cookie care are o dată de expirare de o oră în urmă. Aceasta va elimina cookie-ul de pe computerul utilizatorului.
Așa că am creat destul de puțin. Din nefericire, pentru a face tot ce mi-ar plăcea ar lua pagini și pagini. Poate săptămâna viitoare, Partea a 2-a va fi eliberată. În Partea 2, vom implementa următoarele:
Vă mulțumim foarte mult pentru vizionarea ecranului și revizuirea articolului. Mai sunt multe de parcurs!