Scrieți un modul de știri mini pentru cms-ul nostru

Eu folosesc danwer. manualul de instalare se află pe site-ul oficial, deci dacă nu aveți deja un server local, apoi puneți-l, un lucru foarte necesar (apropo, îmi pare rău că nu am menționat-o =

Ei bine, încerc să explic logica blog-ul nostru. În panoul de administrare, vom adăuga niște fire un nou articol cu ​​descărcarea de pe pagina principală a blog-ul nostru, există o mică descriere a articolului (post) va fi amplasat pe butonul „citește mai mult“ (Despre ideea de a crea un buton, puteți citi aici) De fapt, ceea ce se va lucra nostru „modulul“ Când adresa serverului la fișierul index.php se conectează modulul nostru (news.php), în care definițiile următoarea logică:

Scrieți un modul de știri mini pentru cms-ul nostru

Pentru a începe avem nevoie de un tabel în baza de date, să-l creăm:

Apoi, în funcție de schema pe care am trasat-o, editează fișierul index.php, la începutul fișierului inserăm aceste linii

Pentru a genera cod html, avem nevoie de un șablon, șablonul pentru știri este luat din fișierul index.html pe care l-am făcut în articolul anterior

Iată un clip de la index.html

Aici vedem un blog repetat

Acesta este șablonul nostru de mini știri, copiați-l și inserați-l în fișierul news.html, pe care îl salvăm în dosarul Șabloane. Următorul pas este înlocuirea textului cu identificatorii. aici este codul nou șablon news.html

Toate fișierele pentru pasul "Conectarea modulului news.php" avem, așa că ne conectăm. Pentru a face acest lucru, efectuați următoarele modificări la index.php, înainte

introducem următorul cod

Ultimul nostru pas este să conectăm index.html-ul șablonului. de la acest pas pe care l-am făcut în articolul precedent, atunci îl ignorăm, dar! Trebuie încă să editați index.html. Așa că reparăm acest cod

Totul, modulul nostru este gata. La completarea bazei de date, știrile vor fi afișate pe ecran, aici este ecranul

actualizare:. Dacă începeți nu vedeți o imagine adecvată a karakozyabr sau caractere neinteligibile în partea de sus (cum ar fi e astfel - n „їp» ¯), du-te aici pe acest post «codificarea corectă în motorul nostru» Această problemă este legată de codificare, astfel încât pur și simplu trebuie să fie schimbat, și toate =)

Extinderea fișierelor în dosarul șabloane este HTM și ar trebui să fie HTML. Fie schimbați extensia fișierelor, fie în cod, în schimb (fișierul news.php)

$ sm_read = fișier ("templates / news.html"); //. conectăm un șablon

$ sm_read = fișier ("templates / news.htm"); //. conectăm un șablon

Trebuie doar să redirecționați index.php pentru a schimba linia de acolo

Dar sfatul meu pentru tine, este mai bine să schimbi extensia de la HTM la HTML, în caz contrar va trebui să faci corecții peste tot și acest lucru este un extra hemoroizii.

De asemenea, am observat că în linia index.php a fișierului

// Până în prezent, am introdus valoarea variabilelor manual
$ header_title = "Document HTML";
$ header_metaD = "Descrierea paginii";
$ header_metaK = "Cuvinte cheie pentru pagini";

Acest lucru nu este corect. linie

Ar trebui să fie în partea de jos a fișierului index.php (bine, în mod natural înainte de "?>" =))

Ei bine, nu știu, acum am văzut acest cod în SVN, părul meu sa oprit.

În loc de
$ date = data ("d / m / Y H: i");

Este scris:
$ date_day = data ("d"); // Definiți ziua
$ date_month = date ("m"); // Definiți luna
$ date_year = date ("Y"); // Definiți anul
$ date_time = date ("H: i"); // Definirea orelor și minutelor
$ date_comm = $ date_day. "/". $ date_month. "/". $ date_year. "". $ date_time; / / Paste toate variabilele într-o singură dată

Deși chiar și concatenarea funcționează mai multe ordini de mărime mai repede.

funcționează mult mai repede:
(int) $ id_comm;

ar trebui:
$ txt_comm = str_replace ("\\ n", "
", $ txt_comm); // Înlocuiți liniile de rupere cu eticheta

// Scoateți ghilimele
$ id_comm = str_replace ("\", "# 039", $ id_comm);
$ txt_comm = str_replace ("\", "# 039", $ txt_comm);
$ autor_comm = str_replace ("\", "# 039", $ autor_comm);
dacă urmărit anterior prin htmlspecialchars ar putea stabili un steag, astfel încât el eliminat ghilimele dacă este tipul de protecție împotriva sql - injecție, este necesar să se mysql_real_escape_string, citate capetele sql-injectare.

Scris de
$ sm_read = fișier ("templates / news.html"); //. conectăm un șablon
$ sm_read = implode ("", $ sm_read); / / fișier funcțional () returnează o matrice, așa că lipim împreună
Se face printr-o funcție a EMNIP file_get_contents

Nimeni nu susține că exemplele mele nu sunt foarte bune. Nu am spus odată că codul nu este perfect. și că a scris toate acestea într-un blog nu pentru a preda. ci pentru el însuși. Cui este interesant, citiți, repetați și înțelegeți că codul este departe de a fi ideal.
Acest motor este doar unul dintre pașii mei (și cititorii mei) în programare, nimic mai mult.

Ei bine, nu știu, acum am văzut acest cod în SVN, părul meu sa oprit.

Uneori, =) sincer, el speriat când am văzut codul muncii anterior =) Dar, pentru a îndepărta materialul, cred prea mult, cineva se uită la acest exemplu poate învăța încă ceva. Și dacă există un cap pe umeri, atunci această informație va fi doar un început, nu un standard
P.S. Dar aceasta este doar opinia mea despre valoarea materialelor de pe blogul meu.

Desigur, ați scris totul în mod corect, trebuie să existe o mulțime de materiale și la un nivel diferit.
Mă uit în mod regulat la informații despre aproape toate funcțiile din documentația oficială.
Opinia mea este că este mai bine să învățăm corect de la început, pentru o lungă perioadă de timp pentru a ne recalifica: (

În practică, știu că învățând să scriu exact la momentul potrivit, puteți sparge creierul. (Nu contează, bineînțeles, dacă ai educație în acest domeniu.) Acum înțeleg cum funcționează, de exemplu, aceleași. Cu nivelul pe care l-am avut acum un an, aș fi abandonat cu mult timp încercările de a învăța cum să programezi.

Ei bine, nu știu, acum am văzut acest cod în SVN, părul meu sa oprit.

Apropo, e ciudat că ai găsit codul în SVN. Nu am mai lucrat mult timp la îmbunătățirea RS-BLOG-ului

Am văzut în producția mea :(

Ce faci dacă nu este un secret?

Iată o greșeală că această bază de date este prescrisă corect

Cu siguranță o problemă în baza de date. Dacă credeți că există o eroare, problema este în parolă.
Ai phpmyadmin? O eroare similară este amintită atunci când serverul mysql a determinat crearea a doi utilizatori rădăcină. Acest lucru sa întâmplat atunci când serverul mysql nu a fost reinstalat corect.

și ce face acum ce să corecteze

Deci, aveți phpmyadmin? Dacă există, du-te la el. Dacă există aceeași eroare, trebuie să vă gândiți la resetarea parolei de la root. Și dacă nu există o astfel de eroare, atunci nu știu ce ar putea fi problema.

Vă mulțumim pentru articolele dvs., puteți să ne spuneți cum să ieșiți nu ultimele înregistrări, ci aleatoare?

Bună ziua, nu spune ce a fost, pe site-ul hostline.ru, am creat un subdomeniu al site-ului principal, a pus motorul (în acest articol), și am un ecran :( php alb este inclus în subdomeniul.

Încercați index.php. în partea de sus pentru a pune aceste două linii:

Cred că va ajuta să nu văd ecranul alb, dar eroarea.

Și de ce nu utilizați funcția file_get_contents ()
Cred că acest cod va fi mai mic și mai convenabil, va executa simultan 2 funcții () și implode =)


Dacă nu este corect, corectați-mă)

Dacă nu este corect, corectați-mă)

Ai dreptate. Când am scris codul nu știam despre existența acestei funcții =)

În fișierul menu.html din link slash-ul direct, în opinia mea, este redundant.

la sfârșitul procedurii, descrise în acest articol, am test de proiect (în înregistrările bazei de date nu a) obține o pagină goală ( „Nu exista inregistrari in baza de date“), până când totul este normal, dar în partea de sus a paginii (Warning: mysql_fetch_array () se așteaptă ca parametru de 1 fie de resurse, boolean date în Z: \ server \ blog-ul nostru \ www \ module \ news.php pe linia 5). ceea ce înseamnă aceste lucruri?

Că parametrul trecut pentru funcția mysql_fetch_array () nu este o resursă (funcția mysql_query a returnat un rezultat Boolean, nu o resursă, așa cum era de așteptat). Acest lucru se întâmplă, de obicei, din cauza unei interogări compuse incorect. Ei bine, sau orice probleme cu baza de date.

Alexey, spune-mi, vă rog, în DB (am creat baza de date și tabelul, dar nimic nu este afișat), după ce am pus site-ul pe hosting, linia $ host = "localhost"; ar trebui să se schimbe? Dacă da, ce ar trebui să fie scris în loc de localhost

În cele mai multe cazuri, baza de date gazdă este pe aceeași mașină ca server, astfel încât variabila gazdă trebuie să fie setat la localhost (din nou, în cele mai multe cazuri)

$ news = $ edd_tamp; - aceasta nu este variabila declarată? nu este necesar prin IsSet?

Un moment bun pentru toți!
Pe scurt, băieții s-au săturat de mine cu această codificare că nu veți face "krakkazibar" h. pentru a fi sincer.
Am rezolvat această problemă eu păstrez totul în utf-8 toate regulile de lucru și nu au nici de unde să pună ferestrele-1251 ore în măsura în care știu peste tot în mod implicit utf-8 merge. Da, și Notepad ++ și NetBeans, de asemenea, cu utf-8 lucrează personal de la mine, așa că nu știu cum cineva.
Doar de dragul interesului, am creat un alt proiect pe Denver, în plus față de care lucrez, am salvat totul în utf-8, totul este bine, toate regulile funcționează, nu unele "krakaizber".
Din moment ce am rezolvat această problemă, pur și simplu a crea un director în proiectul pe care eu lucrez, .htaccess este numit, fără nici o extensie (dintr-o dată, dacă știe cineva, care este numele și extensia .htaccess) și prescrise următoarele linii (în cazul în care dintr-o dată din nou care nu știu).

Deci așa băieții pot ajuta pe cineva.
Mult noroc tuturor și mulțumesc Îngheț Alexei!

Alex!
Aici totul se afișează perfect, dar în partea de jos a paginii, adică în partea de jos, scrie:

jură la linia 33

Th pentru problema poate fi.
Mulțumesc pentru mai devreme.

Atunci când adăugați un post dă „Atenție: Nu se poate modifica informații de antet - antetele deja trimise de (de ieșire a început la Z: 10: Casa \ bd.uz \ www \ index.php \) în Z: \ acasă \ bd.uz \ www \ indicele .php pe linia de 25 „, cu codificare UTF-8, dacă vă actualizați pagina afișează o listă de posturi. În cazul în care codifică ansi eroare nu produce, dar nu funcționează cu textul rus

Deci aveți un fișier în UTF-8? Probabil UTF-8 cu BOM. Nu salvați fișierul fără BOM

Articole similare