Răspuns :
Una dintre cele mai simple structuri:
lib/
--inc.php
index.php
post.php
și la baza de date un singur tabel de 3 fielduri, să zicem, numit posts:
id, titlu, content
lib.php: --aici facem conexiunea la baza de date, presupunând că numele bazei de date ar fi 'test', fără parolă, username 'root', și serverul local....
<?php
$db = new mysqli('localhost', 'root', '', 'test');
?>
index.php ... Aici am lista toate titlurile de articole:
<?php
include "lib/inc.php";
$res = $db->query("SELECT * FROM posts")->fetch_array();
foreach($res as $titl){
echo '<a href="post.php?id='.$titl['id'].'">'.$titl['titlu'].'</a><br>';
}
?>
post.php:
<?php
include "lib/inc.php";
$id = (int)$_GET['id'];
$res = $db->query("SELECT * FROM posts WHERE id = $id")->fetch_array();
if(!sizeof($res))echo ("Postarea nu a fost găsită!");
else{
echo "<h2>".$res[0]['titlu']."</h2>";
echo $res[0]['content'];
}
?>
Asta ar fi una dintre cele mai simple implementări, fără dată, fără autor, fără sortare postări, fără grafică, doar niște link-uri :)))
Și să știi că e SQL injection - safe
Acum, eu aș recomanda un MVC cu URL Rewrite, ca să ai și SEO :)))
Dar bine, asta merge doar dacă știi OOP pe PHP
Dacă vrei, la MVC, cam așa ar fi strucutra:
index.php
-> care face inițializările, și primește url-ul cu .htaccess
-> la rândul lui include app/app.php
app/app.php
-> de aici incluzi alte 3 fișiere care ar compune MVC-ul:
model.php, view.php și controller.php
app/controller.php
-> aici iei ruta (URL-ul rescris cu .htaccess), și cu un RegEx sau pur și simplu cu un parsing și câteva if-uri afli ce pagină trebuie să generezi, iar în funcție de pagina pe care trebuie să o generezi, apelezi funcții din model.php, și apelezi view.php
app/model.php
-> funcțiile de aici contactează baza de date și iau ce trebuie afișat pe pagină
app/view.php
-> de acilea generezi pagina propriu zisă în funcție de datele de la model.php
Mnoo, cam asta ar fi structura :)))
Și, să nu uiți de real_escape_string() împotriva SQL injection, și de htmlentities împotriva XSS
lib/
--inc.php
index.php
post.php
și la baza de date un singur tabel de 3 fielduri, să zicem, numit posts:
id, titlu, content
lib.php: --aici facem conexiunea la baza de date, presupunând că numele bazei de date ar fi 'test', fără parolă, username 'root', și serverul local....
<?php
$db = new mysqli('localhost', 'root', '', 'test');
?>
index.php ... Aici am lista toate titlurile de articole:
<?php
include "lib/inc.php";
$res = $db->query("SELECT * FROM posts")->fetch_array();
foreach($res as $titl){
echo '<a href="post.php?id='.$titl['id'].'">'.$titl['titlu'].'</a><br>';
}
?>
post.php:
<?php
include "lib/inc.php";
$id = (int)$_GET['id'];
$res = $db->query("SELECT * FROM posts WHERE id = $id")->fetch_array();
if(!sizeof($res))echo ("Postarea nu a fost găsită!");
else{
echo "<h2>".$res[0]['titlu']."</h2>";
echo $res[0]['content'];
}
?>
Asta ar fi una dintre cele mai simple implementări, fără dată, fără autor, fără sortare postări, fără grafică, doar niște link-uri :)))
Și să știi că e SQL injection - safe
Acum, eu aș recomanda un MVC cu URL Rewrite, ca să ai și SEO :)))
Dar bine, asta merge doar dacă știi OOP pe PHP
Dacă vrei, la MVC, cam așa ar fi strucutra:
index.php
-> care face inițializările, și primește url-ul cu .htaccess
-> la rândul lui include app/app.php
app/app.php
-> de aici incluzi alte 3 fișiere care ar compune MVC-ul:
model.php, view.php și controller.php
app/controller.php
-> aici iei ruta (URL-ul rescris cu .htaccess), și cu un RegEx sau pur și simplu cu un parsing și câteva if-uri afli ce pagină trebuie să generezi, iar în funcție de pagina pe care trebuie să o generezi, apelezi funcții din model.php, și apelezi view.php
app/model.php
-> funcțiile de aici contactează baza de date și iau ce trebuie afișat pe pagină
app/view.php
-> de acilea generezi pagina propriu zisă în funcție de datele de la model.php
Mnoo, cam asta ar fi structura :)))
Și, să nu uiți de real_escape_string() împotriva SQL injection, și de htmlentities împotriva XSS
Vă mulțumim că ați vizitat platforma noastră dedicată Informatică. Sperăm că informațiile oferite v-au fost utile. Dacă aveți întrebări sau aveți nevoie de asistență suplimentară, nu ezitați să ne contactați. Așteptăm cu nerăbdare să vă revedem și nu uitați să ne salvați în lista de favorite!