Ακολουθεί ο πίνακας ελέγχου κινητήρα intitle datalife. DataLife Engine v.12.1 Δελτίο Τύπου. Πρόσβαση σε δεδομένα πίνακα ελέγχου

Χαιρετίζω όλους όσους αφιερώνουν τον πολύτιμο χρόνο τους σε αυτές τις γραμμές.

Σε αυτό το άρθρο θέλω να μιλήσω για τρόπους βέλτιστης διαμόρφωσης του διακομιστή και του συστήματος διαχείρισης περιεχομένου του DataLife Engine. Πάνω από 4 χρόνια εργασίας με τοποθεσίες και διακομιστές του Διαδικτύου, έμαθα ότι η ασφάλεια προηγείται της ευκολίας και ότι πρέπει να δοθεί προσοχή σε αυτήν. Κράτηση: Δεν διεκδικώ την κυριότητα της πνευματικής ιδιοκτησίας κανενός! Όλο το υλικό συγκεντρώθηκε στο Διαδίκτυο.

Παρακάτω θα περιγράψουμε ενέργειες που θα βοηθήσουν στη διανομή του φορτίου του διακομιστή, στην προστασία του από επιθέσεις DOS, στον περιορισμό της πρόσβασης στο πρωτόκολλο FTP και στη σωστή διαμόρφωση του συστήματος DataLife Engine.

Ασφάλεια και διαμόρφωση του διακομιστή σας.

1. Ρύθμιση της διαμόρφωσης διακομιστή χρησιμοποιώντας το μπροστινό συνδυασμό Nginx σε Apache.

Τα πλεονεκτήματα ενός τέτοιου σχήματος μπορούν να γίνουν κατανοητά με ένα μικρό παράδειγμα. Φανταστείτε ότι ο διακομιστής ιστού Apache σας χρειάζεται να εξυπηρετεί περίπου 1000 αιτήματα ταυτόχρονα, πολλά από τα οποία συνδέονται με αργά κανάλια επικοινωνίας. Στην περίπτωση του Apache, θα καταλήξουμε με 1000 διεργασίες httpd, σε καθεμία από τις οποίες θα εκχωρηθεί RAM, και αυτή η μνήμη δεν θα ελευθερωθεί έως ότου ο πελάτης λάβει το ζητούμενο περιεχόμενο.

Στην περίπτωση ενός σχήματος που χρησιμοποιεί διακομιστή front-end, θα λάβουμε σημαντική εξοικονόμηση πόρων λόγω του γεγονότος ότι μετά τη λήψη ενός αιτήματος, το nginx μεταδίδει το αίτημα στον Apache και λαμβάνει γρήγορα μια απάντηση. Ως αποτέλεσμα, ο Apache, αφού δώσει την απάντηση στο nginx, ελευθερώνει τη μνήμη. Στη συνέχεια, ο διακομιστής web nginx αλληλεπιδρά με τον πελάτη, ο οποίος είναι γραμμένος με ακρίβεια για να διανέμει στατικό περιεχόμενο σε μεγάλο αριθμό πελατών με μικρή κατανάλωση πόρων συστήματος.

Για να λειτουργήσει σωστά το πακέτο μας, χρειαζόμαστε μια ενότητα για το Apache. Αυτή η ανάγκη προκύπτει για τον ακόλουθο λόγο: τα αιτήματα προς τον Apache προέρχονται από τη διεύθυνση IP στην οποία εκτελείται το nginx, μόνο η διεύθυνση IP του διακομιστή nginx θα εμφανίζεται στα αρχεία καταγραφής του Apache. Επίσης, χωρίς τη χρήση αυτής της λειτουργικής μονάδας, θα ξεκινήσουν προβλήματα με τα σενάρια που χρησιμοποιούν τη διεύθυνση IP του επισκέπτη και ο μηχανισμός περιορισμού της πρόσβασης από διευθύνσεις IP χρησιμοποιώντας .htaccess δεν θα λειτουργεί πλέον σωστά.

Εγκατάσταση του NGINX σε δημοφιλές λειτουργικό σύστημα.

Red Hat Enterprise Linux 4/CentOS 4
Για να εγκαταστήσετε το nginx σε αυτά τα λειτουργικά συστήματα, πρέπει να συνδέσετε ένα πρόσθετο αποθετήριο πακέτων.

Red Hat Enterprise Linux 5/CentOS 5
Για να εγκαταστήσετε το nginx σε αυτά τα λειτουργικά συστήματα, πρέπει να συνδέσετε ένα πρόσθετο αποθετήριο πακέτων EPEL.

Διακομιστής ASPLinux 5 / Μαλακό καπέλλο
Το nginx περιλαμβάνεται στο τυπικό πακέτο διανομής.

Εάν τα αποθετήρια είναι συνδεδεμένα ή απλά δεν απαιτούνται, εκτελέστε: εγκαταστήστε το nginx

Εγκατάσταση του Apache.

Για να εγκαταστήσετε τον διακομιστή ιστού Apache, απλώς εκτελέστε: yum εγκατάσταση httpd

Εγκατάσταση mod_rpaf.

1. Εγκαταστήστε το πακέτο httpd-devel:

yum -y εγκατάσταση httpd-devel


2. Κατεβάστε και εγκαταστήστε το mod_rpaf:
Εισαγάγετε τον κατάλογο /usr/local/src

cd /usr/local/src


Φορτώστε το αρχείο mod_rpaf-0.6.tar.gz στο /usr/local/src

wget http://stderr.net/apache/rpaf/download/mod_rpaf-0.6.tar.gz


Αποσυσκευάστε mod_rpaf-0.6.tar.gz

tar xzf mod_rpaf-0.6.tar.gz


Μεταβείτε στον κατάλογο όπου αποσυσκευάσατε

Εγκατάσταση της μονάδας στο σύστημα

apxs -i -c -n mod_rpaf-2.0.so mod_rpaf-2.0.c


3. Στη συνέχεια, πρέπει να δημιουργήσετε ένα αρχείο διαμόρφωσης mod_rpaf - /etc/httpd/conf.d/rpaf.conf και να προσθέσετε τις ακόλουθες γραμμές σε αυτό:


RPAFenable On
RPAFproxy_ips 127.0.0.1 xx.xx.xx.xx εε.εε.εε.εε


όπου xx.xx.xx.xx και yy.yy.yy.yy είναι οι διευθύνσεις IP του διακομιστή σας. Εάν υπάρχουν περισσότερες από δύο IP στον διακομιστή, προσθέστε τις χρησιμοποιώντας την ίδια αναλογία.

επανεκκίνηση της υπηρεσίας httpd


4. Στο nginx, οι ακόλουθες γραμμές πρέπει να καθοριστούν μέσα στο μπλοκ http():

proxy_set_header Host $host;


Εάν αυτές οι γραμμές καθορίζονται, δεν χρειάζεται να τις προσθέσετε.

Εάν το nginx.conf τροποποιηθεί, το nginx θα πρέπει να επανεκκινηθεί:

/etc/init.d/nginx stop
/etc/init.d/nginx start


5. Πώς να ελέγξετε εάν η εγκατεστημένη μονάδα λειτουργεί;
Σε οποιονδήποτε από τους τομείς που βρίσκονται στον διακομιστή σας, τοποθετήστε το αρχείο test.php με τα περιεχόμενα:

" echo $_SERVER["REMOTE_ADDR"]; ?>"


Στη συνέχεια, ακολουθήστε τον σύνδεσμο, όπου το domain.tcom είναι το όνομα τομέα σας. Εάν εμφανίζεται μια IP διαφορετική από την IP του διακομιστή σας, η μονάδα λειτουργεί σωστά.

Ρύθμιση του NGINX.

Παρακάτω είναι το αρχείο διαμόρφωσης nginx για εργασία ως διακομιστής front-end. Υποτίθεται ότι το nginx θα εκτελείται σε όλες τις διεπαφές στη θύρα 80 και το Apache θα εκτελείται στη διεπαφή 127.0.0.1 και στη θύρα 8080. Αποθηκεύστε αυτό το αρχείο διαμόρφωσης στον κατάλογο /etc/nginx/ με το όνομα nginx.conf.

χρήστης nginx?
worker_processes 10;
error_log /var/log/nginx/error.log εντοπισμός σφαλμάτων;
pid /var/run/nginx.pid;

εκδηλώσεις (
Worker_connections 20000;
}

http(
περιλαμβάνουν /etc/nginx/mime.types;
default_type application/octet-stream.
log_format main "$remote_addr - $remote_user [$time_local] $status"
""$request" $body_bytes_sent "$http_referer" "
""$http_user_agent" "http_x_forwarded_for"";
access_log /var/log/nginx/access.log main;
sendfile on?
tcp_nopush on;
tcp_nodelay ενεργοποιημένο;
keepalive_timeout 30;
send_timeout 900;
server_tokens off?
υπηρέτης(
ακούστε 80?
όνομα διακομιστή_;
server_name_in_redirect off;
access_log /var/log/nginx/host.access.log main;
τοποθεσία/(
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 10m;
}
}


Ρύθμιση Apache.

Στο αρχείο διαμόρφωσης Apache /etc/httpd/conf/httpd.conf, βρείτε τη γραμμή:

και αντικαταστήστε το με τη γραμμή:

Ακούστε 127.0.0.1:8080


Ρύθμιση mod_rpaf.

Προσθέστε τη λειτουργική μονάδα mod_rpaf στο αρχείο διαμόρφωσης του Apache. Για να το κάνετε αυτό, προσθέστε την ακόλουθη γραμμή στο αρχείο /etc/httpd/conf/httpd.conf:

LoadModule rpaf_module modules/mod_rpaf-2.0.so


Στη συνέχεια, προσθέστε τις γραμμές στο ίδιο αρχείο:

RPAFenable On
RPAFsethostname Off
RPAFproxy_ips 127.0.0.1 192.168.0.1
RPAFheader X-Real-IP


Αντί για το 192.168.0.1 πρέπει να βάλετε τη διεύθυνση IP του διακομιστή.

2. Διαμόρφωση διακομιστή για προστασία από επιθέσεις DOS.

Ενεργοποιούμε την προσωρινή αποθήκευση της κύριας σελίδας στο nginx για όσους δεν έχουν cookies.

Προσθέστε περιορισμούς στο nginx.conf:

limit_req_zone $binary_remote_addr zone=two:20m rate=2r/s;
υπηρέτης(
τοποθεσία/(
limit_req zone=δύο ριπή=5;
}
}
}


Χρησιμοποιούμε ουρά και awk:

tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503


Συνδέστε το αρχείο καταγραφής:

tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503 | awk "( εκτύπωση $1 )"


Παίρνουμε την IP των μηχανημάτων:

iptables -A INPUT -p tcp -j DROP -s $IP


Εισαγάγετε την IP στο τείχος προστασίας:

tail -f /var/log/nginx/access.log | grep GET / HTTP/1.1" 503 | awk "( print $1 )" | xargs -t -l iptables -A INPUT -p tcp -j DROP –s


Τώρα ας θέσουμε connlimit για iptables για να περιορίσουμε τις συνδέσεις bot. Στους κανόνες ορίσαμε δικαιώματα για 5 συνδέσεις από μία IP και 25 από ένα υποδίκτυο κατηγορίας C.

Επίθεση DDOS με 16.000 bots - Μέσος όρος φόρτωσης: 1,4 1,9 2,0

Περιορισμός πρόσβασης FTP

Για αυτό χρειαζόμαστε το αρχείο .ftpaccess. Θα σας βοηθήσει να αποκλείσετε ή να επιτρέψετε την πρόσβαση FTP από καθορισμένες διευθύνσεις IP. Κάποιος μπορεί να κάνει την ερώτηση: "Έχω μια δυναμική IP, πώς μπορώ να χρησιμοποιήσω σωστά το .ftpaccess;" Η μόνη απάντηση που εννοώ είναι: «Εάν χρειάζεστε αυτό το πρόσθετο ασφαλείας, αγοράστε μια στατική IP από τον πάροχο σας. Δεν θα σου ζητήσουν πολλά χρήματα για αυτό».

Για να δημιουργήσουμε το αρχείο .ftpacces χρειαζόμαστε πρόσβαση SSH. Μπορείτε να χρησιμοποιήσετε το πρόγραμμα winscp. Μπορεί να υπάρχουν πολλές ρυθμίσεις στο .ftpaccess, αλλά μας ενδιαφέρει μόνο μία παράμετρος. Γράφοντας αυτές τις γραμμές στο αρχείο θα αποκλείσετε εντελώς την πρόσβαση από όλους:

Αρνηθείτε από όλους


Μετά από αυτό που γράφτηκε παραπάνω, κανείς δεν θα μπορεί να έχει πρόσβαση στο FTP. Για να προσθέσετε άδεια πρόσβασης σε μια συγκεκριμένη IP, πρέπει να καθορίσετε τις ακόλουθες παραμέτρους:

Να επιτρέπεται από 127.0.0.1
Αρνηθείτε από όλους


Φυσικά, η διεύθυνση 127.0.0.1 δίνεται ως παράδειγμα και πρέπει να αντικατασταθεί με τη δική σας.

Σπουδαίος!Είναι καλύτερο να αρνηθείτε την πρόσβαση μέσω FTP σε όλους απολύτως και να συνδεθείτε μόνο μέσω SSH.

Προστασία του συστήματος διαχείρισης περιεχομένου DataLife Engine.

1. Εγκαταστήστε και ρυθμίστε τις παραμέτρους.

2. Μετονομάστε το αρχείο του πίνακα διαχείρισης και φτιάξτε ένα ψεύτικο στην παλιά διεύθυνση (www.sait.com/admin.php) κατά τη μετάβαση στην οποία ο χρήστης θα αποκλειστεί με αποκλεισμό της ip του στο .htaccess.

Μετονομάστηκε; Τώρα δημιουργούμε ένα αρχείο ip.txt στον ριζικό κατάλογο για να αποθηκεύουμε διευθύνσεις IP. Το δίνουμε και .htaccess δικαιώματα CHMOD – 777.

Δημιουργήστε ένα αρχείο admin.php με το ακόλουθο περιεχόμενο:


$ip = getenv("REMOTE_ADDR");

$log = fopen("ip.txt", "a+");
fwrite($log, "// ".$ip."\n");
fclose($log);

$f = fopen($_SERVER["DOCUMENT_ROOT"] . "/.htaccess", "a");
fwrite($f, "\ndeny from " . $ip);
fclose($f);

Πίνακας διαχείρισης του DataLife Engine

Κείμενο, για παράδειγμα: Η ip σου είναι στα logs, θα σε βρω!

Να φοβάσαι, μη οντότητα, χα-χα!

"
3. Ας προσθέσουμε επιπλέον έλεγχο ταυτότητας στο κέντρο διαχείρισης.

Πρέπει να βρείτε άλλο όνομα χρήστη και κωδικό πρόσβασης (μην χρησιμοποιείτε τα στοιχεία του λογαριασμού διαχειριστή σας). Το δεύτερο login και ο κωδικός πρόσβασης πρέπει να είναι εντελώς διαφορετικά από τα πρώτα. Εχεις αποφασίσει? Εξαιρετική! Τώρα ας κρυπτογραφήσουμε τον κωδικό πρόσβασής μας σε md5 (μπορείτε να το κάνετε στον ιστότοπο md5encryption.com).
Στη συνέχεια, ανοίξτε το admin.php (θυμηθείτε, το μετονομάσαμε προηγουμένως και, επομένως, αν το αποκαλούσατε superadmin.php, πρέπει να ανοίξετε το συγκεκριμένο) και μετά τη γραμμή:

Προσθήκη:

$login="πληκτρολογήστε την επινοημένη σύνδεση";
$password="και δημιουργήθηκε κωδικός πρόσβασης στο md5";
if (!isset($_SERVER["PHP_AUTH_USER"]) || $_SERVER["PHP_AUTH_USER"]!==$login ||
md5($_SERVER["PHP_AUTH_PW"])!==$κωδικός πρόσβασης) (
header("WWW-Authenticate: Basic realm="Admin Panel"");
header("HTTP/1.0 401 Μη εξουσιοδοτημένο");
exit ("Δεν επιτρέπεται η πρόσβαση");)


4. Απενεργοποιήστε τις συναρτήσεις php που δεν χρησιμοποιούνται από το σύστημα.

Για να αναζητήσετε το αρχείο php.ini, δημιουργήστε ένα αρχείο phpinfo.php με το κείμενο:

Μετά την αναζήτηση, φροντίστε να διαγράψετε το phpinfo.php!

disable_functions = allow_url_fopen, eval, exec, system, passthru, scandir, popen, shell_exec, proc_open, proc_close, proc_nice, get_current_user, getmyuid, posix_getpwuid, apache_get_modules, virtualgrodegi, posix che_get_version ap, ache_getenv, apache_note , apache_setenv, disk_free_space, diskfreespace, dl, ini_restore, openlog, syslog, highlight_file, show_source, symlink, disk_total_space, ini_get_all, get_current_user, posix_uname, allow_url_fopen


5. Δημιουργούμε φιλτράρισμα για αιτήματα GET και POST, αποτρέποντας τις εγχύσεις στη βάση δεδομένων και τη λήψη δεδομένων από αυτήν.

Δημιουργήστε ένα αρχείο .php με προσαρμοσμένο όνομα και το ακόλουθο περιεχόμενο:

//ορίστε σε ένα εάν θέλετε να ενεργοποιήσετε τον εντοπισμό σφαλμάτων ερωτήματος
$debug = 0;

$bag_req = πίνακας("επιλογή", "eval", "echo", "UPDATE", "LIMIT", "INSERT", "INTO", "union", "CONCAT", "INFORMATION_SCHEMA", "OUTFILE", " DUMPFILE", "LOAD_FILE", "BENCHMARK", "SUBSTRING", "ASCII", "CHAR", "βάση δεδομένων", "HEX", "\\.\\/", "%00", "\\.htaccess ", "config\\.php", "document\\.cookie");
$request = serialize($_GET);


if ($_GET)
{
foreach ($bag_req ως $key => $value) (
{
Το ερώτημα βρέθηκε στον πίνακα $value
$request";
}
}
}
if ($_POST)
{
$request = str_replace("selected_language", "sl", serialize($_POST));
$urequest = urldcode($request);
$brequest = base64_decode($request);
foreach ($bag_req ως $key => $value) (
if(preg_match("/$value/i", $request) || preg_match("/$value/i", $urequest) || preg_match("/$value/i", $brequest))
{
if($debug == "1") $do_debug = "
Το ερώτημα βρέθηκε στον πίνακα $value, που εμποδίζει τη σωστή λειτουργία
$request";
die("BAD REQUEST $do_debug");
}
}
}
?>


Το αποθηκεύουμε στον διακομιστή σε οποιονδήποτε κατάλογο του συστήματος DLE. Ανοίξτε τη μηχανή αρχείων/classes/mysql.php και μετά:

if(!defined("DATALIFEENGINE"))
{
die ("Προσπάθεια hacking!");
}


συνδέστε το αρχείο που δημιουργήθηκε:

include_once(ENGINE_DIR."/file_path/name.php");


6. Όταν χρησιμοποιείτε δωρεάν εξαρτήματα για DLE, φροντίστε να μάθετε τη γνώμη ενός ειδικού σχετικά με την αξιοπιστία τους.

Εάν έχετε οποιεσδήποτε ερωτήσεις, επικοινωνήστε με τις μηχανές αναζήτησης - όλο το υλικό είναι δωρεάν!
Τίποτα να προσθέσω; Είστε ευπρόσδεκτοι να συζητήσουμε!

Καλή τύχη σε εσάς και τα έργα σας!

Το DLE ή το DataLife Engine είναι ένα πληρωμένο CMS για τη διαχείριση του περιεχομένου του ιστότοπού σας. Το CMS διαθέτει ένα ισχυρό σύστημα για τη διαχείριση ειδήσεων, δημοσιεύσεων, άρθρων, χρηστών και έχει σχεδιαστεί για τη δημιουργία πυλών πληροφοριών και ιστολογίων. Χάρη σε πολλές ενσωματωμένες λειτουργίες και τη χρήση προηγμένης τεχνολογίας AJAX στο CMS, ο ιστότοπός σας θα καταναλώνει λιγότερους πόρους διακομιστή ακόμα και με μεγάλο αριθμό επισκεπτών. Σε αυτόν τον οδηγό, θα μάθετε πώς να εγκαταστήσετε το DLE στο Hostinger.

Πριν ξεκινήσετε αυτόν τον οδηγό, θα χρειαστείτε τα εξής:

  • Πρόσβαση στον πίνακα ελέγχου φιλοξενίας σας

Πώς να εγκαταστήσετε το DLE στο Hostinger

Πριν ξεκινήσετε την εγκατάσταση του DLE, πρέπει να εκτελέσετε αυτά τα βήματα:

Βήμα 1 - Λήψη αρχείων εγκατάστασης DLE

Ανοίξτε το φάκελο μεταφόρτωσηστον πελάτη FTP και μεταφορτώστε όλα τα αρχεία από το φάκελο στον λογαριασμό φιλοξενίας σας στον κατάλογο public_html.

ΤΟ ΣΗΜΕΙΩΜΑ!Σε αυτό το σεμινάριο, χρησιμοποιούμε το FileZilla για τη μεταφόρτωση αρχείων, αλλά μπορείτε να χρησιμοποιήσετε οποιοδήποτε πρόγραμμα-πελάτη FTP θέλετε.

Βήμα 3 - Ρύθμιση δικαιωμάτων αρχείων

Η εγκατάσταση του DLE είναι αυτόματη, το μόνο που χρειάζεται να κάνετε είναι να ορίσετε τα κατάλληλα δικαιώματα για αρκετούς ξεχωριστούς φακέλους και αρχεία που ανεβάσατε προηγουμένως στον λογαριασμό φιλοξενίας σας.

  1. Αρχικά, ορίστε δικαιώματα εγγραφής για το φάκελο πρότυπακαι όλους τους υποφακέλους του. Για να το κάνετε αυτό, κάντε δεξί κλικ στον φάκελο πρότυπαστη διεπαφή FileZilla και επιλέξτε την επιλογή Χαρακτηριστικά αρχείου...

  1. Στη συνέχεια, στο παράθυρο που εμφανίζεται, εισάγετε Αριθμητική αξία 777 για να αλλάξετε τα δικαιώματα εγγραφής, επιλέξτε το πλαίσιο δίπλα Ανακατεύθυνση σε υποκαταλόγουςκαι σήμα Εφαρμογή μόνο σε καταλόγους.

  1. Στη συνέχεια, πρέπει να αλλάξετε τα δικαιώματα για όλα τα αρχεία του φακέλου πρότυπα, αλλά με δικαιώματα 666. Για να το κάνετε αυτό, ανοίξτε ξανά τα χαρακτηριστικά φακέλου πρότυπακαι να θέσει Αριθμητική αξία 666, επιλέξτε το πλαίσιο δίπλα του Ανακατεύθυνση σε υποκαταλόγους → Εφαρμογή μόνο σε αρχεία.

  1. Εκτελέστε τις ίδιες ενέργειες με φακέλους δημιουργία αντιγράφων ασφαλείας, μεταφορτώσεις, καθώς και για όλους τους φακέλους που βρίσκονται μέσα σε αυτούς. Επόμενο για φακέλους /engine/data/,/engine/cache/, /engine/cache/system/. Για όλους τους καθορισμένους καταλόγους, ορίστε τα δικαιώματα εγγραφής σε 777.
  2. Τώρα μπορείτε να ξεκινήσετε την εγκατάσταση του DLE.

Βήμα 4 - Εγκατάσταση DLE στο Hostinger

Για να ξεκινήσετε την εγκατάσταση, εισαγάγετε το όνομα τομέα σας στο πρόγραμμα περιήγησής σας. Εάν το παράθυρο εγκατάστασης δεν εξέρχεται αυτόματα, προσθέστε install.php στο όνομα τομέα σας. Π.χ, your-domain.ru/install.php.

  1. Εάν όλα γίνονται σωστά, θα δείτε το παράθυρο του Οδηγού εγκατάστασης του DataLife Engine. Κάντε κλικ στο κουμπί Ξεκινήστε την εγκατάσταση.

  1. Στη συνέχεια, αποδεχτείτε τη συμφωνία χρήστη επιλέγοντας το πλαίσιο δίπλα Αποδέχομαι αυτή τη συμφωνία. Για να συνεχίσετε την εγκατάσταση, κάντε κλικ στο κουμπί Να συνεχίσει.

  1. Στο επόμενο παράθυρο, ελέγξτε ότι ο διακομιστής σας πληροί τις απαραίτητες απαιτήσεις και κάντε κλικ στο κουμπί Να συνεχίσει.

  1. Στη συνέχεια, ελέγξτε ότι τα δικαιώματα αρχείου που ορίσατε προηγουμένως είναι σωστά. Εάν όλα είναι σωστά, πατήστε ξανά Να συνεχίσει.

  1. Στο νέο παράθυρο, πρέπει να συμπληρώσετε τα στοιχεία της βάσης δεδομένων σας και τα στοιχεία για τον λογαριασμό διαχειριστή του ιστότοπού σας DLE.

  • URL ιστότοπου– τη διεύθυνση του ιστότοπού σας

Δεδομένα για πρόσβαση στον διακομιστή MySQL.

  • MySQL Server– Διακομιστής MySQL για τη φιλοξενία της βάσης δεδομένων σας. Εάν είστε χρήστης του Hostinger, μπορείτε να βρείτε τις πληροφορίες που χρειάζεστε στην ενότητα Βάσεις δεδομένων → Βάσεις δεδομένων MySQL.
  • Ονομα βάσης δεδομένων– το όνομα της βάσης δεδομένων MySQL.
  • Όνομα χρήστη– το όνομα του χρήστη που έχει αντιστοιχιστεί στη βάση δεδομένων σας.
  • Κωδικός πρόσβασης– κωδικός πρόσβασης για τον λογαριασμό χρήστη της βάσης δεδομένων σας.
  • Πρόθεμα– πρόθεμα πινάκων βάσης δεδομένων MySQL. Μπορείτε να το αφήσετε αμετάβλητο.
  • Μηχανή βάσης δεδομένων– συνιστάται να αφήσετε την προεπιλεγμένη τιμή. InnoDB.
  • 4 byte UTF– όταν αυτή η επιλογή είναι ενεργοποιημένη, το DLE θα αποθηκεύσει πρόσθετες πληροφορίες στη βάση δεδομένων. Αυτή η επιλογή μπορεί να επηρεάσει την απόδοση του ιστότοπού σας.

Δεδομένα για πρόσβαση στον πίνακα ελέγχου.

Εισαγάγετε τα διαπιστευτήριά σας για πρόσβαση στον πίνακα ελέγχου του ιστότοπού σας. Εισαγάγετε την πραγματική σας διεύθυνση email, θα χρησιμοποιηθεί για την επαναφορά της πρόσβασης στον λογαριασμό διαχειριστή.

Επιπρόσθετες ρυθμίσεις.

Ενεργοποιήστε την υποστήριξη CNC– συμπεριλάβετε ένα URL αναγνώσιμο από τον άνθρωπο. Όταν αυτή η επιλογή είναι ενεργοποιημένη, ο τίτλος του άρθρου θα εμφανίζεται στη διεύθυνση URL. Αυτή η δυνατότητα είναι χρήσιμη για τη βελτιστοποίηση SEO.

  1. Για να αποφύγετε την εκ νέου έναρξη της εγκατάστασης ή ενημέρωσης, διαγράψτε το αρχείο install.phpκαι φάκελο αναβαθμίζωαπό τον κατάλογο του ιστότοπού σας. Κάντε κλικ στο κουμπί Να συνεχίσει.

Συγχαρητήρια, η εγκατάσταση του DLE για τον ιστότοπό σας στο Hostinger ήταν επιτυχής.

συμπέρασμα

Αφού ολοκληρώσετε αυτόν τον οδηγό, μάθατε πώς να εγκαταστήσετε το DLE στη φιλοξενία σας. Η εγκατάσταση του DLE είναι μια αρκετά εύκολη διαδικασία, εάν έχετε ακολουθήσει προσεκτικά τον βήμα προς βήμα οδηγό μας. Παρά την αφθονία του CMS σήμερα, το DLE έχει τα δικά του χαρακτηριστικά και καλή απόδοση.

Ετοιμάστηκαν και εφαρμόστηκαν οι ακόλουθες αλλαγές:


1. Ένας εντελώς νέος πίνακας ελέγχου για τη δέσμη ενεργειών DLE.Αγαπητοί φίλοι, σε αυτήν την έκδοση του σεναρίου θέλουμε να σας παρέχουμε έναν πλήρως ενημερωμένο πίνακα ελέγχου σεναρίων. Αυτό το πλαίσιο αναπτύχθηκε χρησιμοποιώντας όλες τις πιο πρόσφατες τεχνολογίες που κάνουν τη διαδικασία διαχείρισης ειδήσεων και άλλων ενοτήτων του σεναρίου πιο βολική και ενημερωτική. Εκτός από το νέο μοντέρνο σχεδιασμό, αυτός ο πίνακας ελέγχου είναι προσαρμοστικός και μπορεί να προσαρμοστεί ανεξάρτητα στις συσκευές που χρησιμοποιούνται, παρέχοντας έτσι πιο άνετο έλεγχο τόσο με τη χρήση επιτραπέζιου υπολογιστή όσο και με τη χρήση tablet και smartphone. Λαμβάνοντας υπόψη τη σημασία τέτοιων πραγμάτων όπως η μυϊκή και οπτική μνήμη, καθώς και η συνήθεια, προσπαθήσαμε να δημιουργήσουμε έναν νέο πίνακα ελέγχου, έτσι ώστε όλα να παραμένουν στη συνήθη θέση τους για εσάς και να μην χρειάζεται να ξοδεύετε πολύ χρόνο για να μάθετε και να μαθαίνετε. τον νέο πίνακα ελέγχου. Ελπίζουμε πραγματικά ότι θα σας αρέσει το νέο πάνελ και θα το εκτιμήσετε. Λόγω του γεγονότος ότι ο νέος πίνακας ελέγχου χρησιμοποιεί ενεργά πρότυπα HTML5 και CSS3, αναγκαστήκαμε να εγκαταλείψουμε την υποστήριξη για παρωχημένα προγράμματα περιήγησης IE για να λειτουργήσει στον νέο πίνακα που θα χρειαστείτε IE10 και άνω, καθώς και τις τρέχουσες εκδόσεις των Chrome, Firefox και Πρόγραμμα περιήγησης Opera.

2. Όλα τα αρχεία javascript του πίνακα διαχείρισης DLEείναι πλέον διαχωρισμένα από το τμήμα χρήστη του ιστότοπου και λειτουργούν ανεξάρτητα. Για παράδειγμα, εάν θέλετε να ενημερώσετε ανεξάρτητα τις βιβλιοθήκες τοποθεσιών, όπως το Jquery και το Jquery UI, μπορείτε να το κάνετε αυτό χωρίς φόβο συμβατότητας με τη λειτουργία του πίνακα διαχείρισης.

3. Προστέθηκε ένα νέο σύστημα διαχείρισης λέξεων-κλειδιών για το σύννεφο ετικετώνκαι λέξεις-κλειδιά για μετα-ετικέτες κατά την επεξεργασία ειδήσεων στον πίνακα διαχείρισης. Τώρα μπορείτε εύκολα να διαγράψετε λέξεις-κλειδιά που δεν χρειάζεστε με ένα κλικ, καθώς και να προσθέσετε νέες. Δεν υπάρχει πλέον καμία ανάγκη να τα παραθέσουμε χωρισμένα με κόμματα όλα συμπληρώνονται διαισθητικά.

4. Στον πίνακα διαχείρισης στην ενότητα διαχείρισης ομάδαςπρόσθεσε τη δυνατότητα να προσδιορίζει με βάση ποια ομάδα θα δημιουργηθεί μια νέα ομάδα. Με αυτόν τον τρόπο μπορείτε να δημιουργήσετε νέες ομάδες με βάση οποιεσδήποτε διαμορφωμένες ομάδες ως πρότυπο για μια νέα ομάδα.

5. Έχουν γίνει αλλαγές στη λογική εμφάνισης διαφημιστικού υλικού στον πίνακα διαχείρισης, τώρα αντί να εμφανίζεται ο προστιθέμενος διαφημιστικός κώδικας, ο πηγαίος κώδικας του εμφανίζεται τονισμένος, επομένως, όταν προσθέτετε τυχόν τμήματα ετικετών HTML, η διάταξη του πίνακα διαχείρισης δεν θα διακόπτεται και θα μπορείτε πάντα να διαχειρίζεστε και να επεξεργάζεστε τον κώδικα απευθείας από τον πίνακα ελέγχου.

6. Η ενότητα επεξεργασίας σχολίων έχει βελτιωθεί σημαντικά και επανασχεδιαστείστον πίνακα διαχείρισης του σεναρίου. Προστέθηκε η δυνατότητα μεμονωμένης διαγραφής σχολίων χρησιμοποιώντας την τεχνολογία AJAX, και επίσης προστέθηκε η δυνατότητα επισήμανσης ενός σχολίου ως "Ανεπιθύμητο" και, ως εκ τούτου, η αυτόματη απαγόρευση του spammer και η διαγραφή όλων των σχολίων του και η ειδοποίηση της υπηρεσίας cloud για τον ανεπιθύμητο Αυτό είναι ενεργοποιημένο στις ρυθμίσεις του σεναρίου.

7. Προστέθηκε λειτουργία για δυναμική φόρτωση σχολίωνκαθώς ο επισκέπτης βλέπει την πλήρη σελίδα ειδήσεων και διαβάζει τα σχόλια. Αυτή η λειτουργικότητα βασίζεται στην αρχή: και εφαρμόζεται χρησιμοποιώντας την τεχνολογία AJAX. Για παράδειγμα, έχετε ορίσει να εμφανίζονται 30 σχόλια σε κάθε σελίδα και οι ειδήσεις έχουν 100 σχόλια. Στη συνέχεια, κατά την είσοδο στη σελίδα με τις ειδήσεις, τα πρώτα 30 σχόλια θα εμφανίζονται στον χρήστη, καθώς κάνει κύλιση προς τα κάτω στη σελίδα και διαβάζει τα σχόλια , στο τέλος της λίστας σχολίων, αντί για πλοήγηση στα σχόλια, τα επόμενα 30 σχόλια θα φορτωθούν αυτόματα στη σελίδα κ.λπ. καθώς κάνετε κύλιση στη σελίδα μέχρι να εμφανιστούν όλα τα σχόλια στις ειδήσεις. Αυτή η λειτουργία είναι ενεργοποιημένη και απενεργοποιημένη στις ρυθμίσεις του σεναρίου.

8. Προστέθηκε η δυνατότητα καθορισμού του τίτλου της σελίδας κανόνων τοποθεσίαςαπευθείας στον πίνακα διαχείρισης, κατά την επεξεργασία κανόνων για τον ιστότοπο.

9. Για εμφάνιση ειδήσεων χρησιμοποιώντας προσαρμοσμένη ετικέτα (προσαρμοσμένη ...)πρόσθεσε τη δυνατότητα εμφάνισης πλοήγησης στη σελίδα. Μια νέα παράμετρος ετικέτας έχει προστεθεί για αυτό το σκοπό πλοήγηση = "ναι". Όταν προσθέτετε αυτήν την παράμετρο σε μια προσαρμοσμένη ετικέτα, θα εμφανίζεται η πλοήγηση σελίδα προς σελίδα για τις ειδήσεις που εμφανίζονται από αυτήν την ετικέτα. Έτσι, μπορείτε να εμφανίζετε ειδήσεις ακριβώς σύμφωνα με τις παραμέτρους σας και ταυτόχρονα να διατηρείτε την πλοήγηση στη σελίδα εάν υπάρχουν πολλές ειδήσεις σύμφωνα με αυτές τις παραμέτρους. Η πλοήγηση εμφανίζεται μόνο για σελίδες ιστότοπου που υποστηρίζουν πλοήγηση για την ετικέτα (περιεχόμενο)πχ αρχική σελίδα, σελίδες κατηγορίας κ.λπ. Εάν η σελίδα δεν υποστηρίζει πλοήγηση, για παράδειγμα, εμφανίζει μια πλήρη είδηση ​​ή μια στατική σελίδα, τότε η πλοήγηση για αυτήν την ετικέτα θα απενεργοποιηθεί επίσης αυτόματα.

10. Για μια προσαρμοσμένη ετικέτα εξόδου ειδήσεων (προσαρμοσμένη ...)προστέθηκε νέα παράμετρος σταθερό = "χωρίς", το οποίο εμφανίζει μόνο ειδήσεις που δεν καταγράφηκαν κατά τη δημοσίευση.

11. Ενημερώθηκε το πρόγραμμα αναπαραγωγής HTML5 στην πιο πρόσφατη έκδοση, πρόσθεσε υποστήριξη για λειτουργία πλήρους οθόνης στο πρόγραμμα περιήγησης IE11.

12. Προστέθηκε η δυνατότητα διασταύρωσης της ενότηταςχρησιμοποιώντας συνδέσμους που περιέχουν κωδικοποιημένους χαρακτήρες URL.

13. Προστέθηκε επαλήθευση email χρήστηόταν αλλάζει στο προφίλ, είτε η συγκεκριμένη διεύθυνση ή ομάδα διευθύνσεων βρίσκεται στη λίστα των διευθύνσεων που απαγορεύεται από τον διαχειριστή να εγγραφεί στον ιστότοπο. Παλαιότερα, αυτός ο έλεγχος γινόταν μόνο κατά την αρχική εγγραφή επισκέπτη στον ιστότοπο.

14. Προστέθηκε ένδειξη σύνδεσης χρήστη στην επιστολή ηλεκτρονικού ταχυδρομείου, το οποίο αποστέλλεται στον χρήστη εάν αλλάξει τη διεύθυνση ηλεκτρονικού ταχυδρομείου του στο προφίλ του. Αυτή η καινοτομία θα είναι επίσης χρήσιμη για τους διαχειριστές του ιστότοπου, εάν το ρομπότ προσπαθήσει να αλλάξει τη διεύθυνση ηλεκτρονικού ταχυδρομείου σε ανύπαρκτη, ως αποτέλεσμα, οι διαχειριστές λαμβάνουν επιστολές μη παράδοσης και μπορούν να δουν ποιος αλλάζει τα δεδομένα και λάβετε ανάλογα μέτρα εναντίον αυτού του χρήστη.

15. Προστέθηκε ένα βολικό σύστημα για την προσθήκη και την επεξεργασία πρόσθετων πεδίων ειδήσεωνστον πίνακα διαχείρισης με την ιδιότητα "Χρήση ως υπερσύνδεσμοι". Τώρα μπορείτε να αφαιρέσετε περιττές τιμές με ένα κλικ.

16. Προστέθηκε η δυνατότητα να επιτρέπεται η διαχείριση διαφημιστικού υλικού στον ιστότοπο, εισαγωγή διαφημιστικών ετικετών απευθείας στο κείμενο της είδησης. Αυτή η δυνατότητα εγκαθίσταται ξεχωριστά για κάθε banner. Μπορείτε να επιτρέψετε ή να αποκλείσετε την εισαγωγή μιας διαφημιστικής ετικέτας στο κείμενο ειδήσεων. Εάν επιτρέπεται η εισαγωγή μιας ετικέτας στο κείμενο ειδήσεων, τότε όταν αυτή η ετικέτα γραφτεί στο κείμενο ειδήσεων, το διαφημιστικό μπλοκ θα δημοσιευτεί στον ιστότοπο στη θέση αυτής της ετικέτας. Έτσι, μπορείτε να τοποθετήσετε διαφημίσεις απευθείας στο κείμενο των ειδήσεων σε ένα μέρος που είναι βολικό για εσάς.

17. Προστέθηκε η δυνατότητα προεπισκόπησης διαφημιστικού υλικού, προστέθηκε στον πίνακα διαχείρισης χρησιμοποιώντας ένα ξεχωριστό αναδυόμενο παράθυρο.

18. Προστέθηκε η δυνατότητα για τη μονάδα διαχείρισης παραπομπώνυποδεικνύοντας το πεδίο εφαρμογής όπου η λέξη-κλειδί θα αντικατασταθεί με έναν σύνδεσμο. Για κάθε λέξη-κλειδί, μπορείτε να καθορίσετε είτε μια αντικατάσταση σε όλη τη σελίδα, είτε μια αντικατάσταση σε ειδήσεις και σχόλια, είτε μια αντικατάσταση μόνο στις ειδήσεις ή μια αντικατάσταση μόνο στα σχόλια.

19. Στη μονάδα διαχείρισης παραπομπών στον πίνακα διαχείρισης, πρόσθεσε τον έλεγχο για λέξεις-κλειδιά που υπάρχουν ήδη στη βάση δεδομένων. Αυτό αποφεύγει την εμφάνιση διπλότυπων λέξεων-κλειδιών.

20. Προστέθηκε η δυνατότητα για τη μονάδα διαχείρισης παραπομπώνη χρήση πολλαπλής κλίσης λέξεων μέσα σε μια φράση-κλειδί, υποδεικνύοντας την κλίση για πολλές λέξεις ταυτόχρονα. Για παράδειγμα, μπορείτε να καθορίσετε τη φράση που θα αντικαταστήσετε Ivan(ov|ova|ovu) Iva(n|na|nu) Ivanovi(h|cha|chu). Και προστέθηκε επίσης η δυνατότητα συνδυασμού μιας φράσης πολλών λέξεων, που περιέχουν και οι δύο φθίνουσες και δεν περιέχουν, για παράδειγμα, τη φράση: Επισκευή(t|ta|tu) επίπλων.

21. Άλλαξε τον αλγόριθμο εξόδου πληροφοριώνχρησιμοποιώντας μια ετικέτα (τίτλος)στο πρότυπο για την εμφάνιση παρόμοιων ειδήσεων ( relatednews.tpl). Όταν χρησιμοποιείτε αυτήν την ετικέτα, ο πλήρης τίτλος των ειδήσεων θα εμφανίζεται χωρίς να περιορίζεται στους 75 χαρακτήρες όπως πριν.

22. Για το πρότυπο για την εμφάνιση παρόμοιων ειδήσεων (relatednews.tpl)πρόσθεσε υποστήριξη για νέα ετικέτα (όριο τίτλου = "x"), το οποίο εμφανίζει τον τίτλο ειδήσεων συντομευμένο στον καθορισμένο αριθμό X χαρακτήρων στην ετικέτα. Σε αυτήν την περίπτωση, ο τίτλος συντομεύεται μέχρι το τέλος της λογικής λέξης και δεν κόβεται στη μέση.

23. Προστέθηκε υποστήριξη για το πρότυπο εξόδου σύντομων ειδήσεων (shortstory.tpl)νέες ετικέτες κείμενο κείμενο, και εμφανίστε το κείμενο που περικλείεται σε αυτές τις ετικέτες κατά την εμφάνιση ειδήσεων εκτός από αυτές που καθορίζονται ΧΝέα. Αυτή η ετικέτα θα είναι χρήσιμη εάν θέλετε να εμφανίσετε οποιαδήποτε στοιχεία σχεδίασης σε όλες τις ειδήσεις κατά την εμφάνιση σύντομων ειδήσεων, εκτός από τα παραπάνω. Για παράδειγμα, μην εμφανίζεται κάτι στην πρώτη είδηση ​​της λίστας.

24. Προστέθηκε για το πρότυπο εμφάνισης σχολίων (comments.tpl)υποστήριξη για νέες ετικέτες κείμενο, το οποίο είναι το αντίθετο από τις ήδη υπάρχουσες ετικέτες κείμενο, και εμφανίστε το κείμενο που περικλείεται σε αυτές τις ετικέτες κατά την εμφάνιση τυχόν σχολίων εκτός από αυτά που υποδεικνύονται

Γειά σου. Θέλω να αφιερώσω αυτό το θέμα στη δημιουργία της πιο απλής ενότητας για το δημοφιλές CMS Datalife Engine. Στη Ρωσία, καθώς και στις χώρες της ΚΑΚ, είναι αρκετά δημοφιλές, αλλά για κάποιο λόγο δεν υπάρχουν ακόμα άρθρα σχετικά με αυτό το cms στο Habré. Θα προσπαθήσω να διορθώσω αυτήν την παρεξήγηση. Σε αυτό το άρθρο θα μάθετε πώς να φτιάξετε μια απλή ενότητα για αυτό το CMS και επίσης θα εξοικειωθείτε με τη δομή του κινητήρα.

Εισαγωγή

Θα ήθελα να σημειώσω ότι το σύστημα είναι σε ζήτηση μεταξύ των ιστοσελίδων ψυχαγωγίας. Αυτό είναι κατανοητό, το σύστημα είναι εύκολο στη χρήση, έχει επαρκή αριθμό μονάδων και προτύπων. Και σχεδόν όλα όσα χρειάζεστε είναι εκεί έξω από το κουτί. Ωστόσο, μερικές φορές κάτι λείπει. Θα προσπαθήσουμε να λύσουμε αυτό το πρόβλημα.

Γιατί DLE;

Ίσως αναρωτιέστε γιατί επέλεξα το συγκεκριμένο CMS. Η απάντηση είναι απλή: μια αρκετά λογική δομή του ίδιου του κινητήρα, ο διαχωρισμός των προτύπων από τον κώδικα, ένας αρκετά απλός κινητήρας προτύπων, και πάλι μια αρκετά λογική τοποθέτηση των πάντων μέσα - είναι εύκολο να καταλάβουμε τι είναι τι. Επιπλέον, το σύστημα παραμένει σχετικά ελαφρύ και βολικό. Δεν είναι τόσο λειτουργικό όσο, για παράδειγμα, το Drupal, αλλά και πάλι μου αρέσει.

Δομή

Πρώτα πρέπει να μάθουμε κάτι για τη δομή του κινητήρα. Δεν μπορείτε να δημιουργήσετε χάος στον διακομιστή, επομένως θα αποθηκεύσουμε τα πάντα στους δικούς μας φακέλους.

Οι μονάδες για τη λειτουργία του κινητήρα τοποθετούνται συνήθως σε ένα φάκελο /engine/modules/.

Σε φάκελο /engine/inc/υπάρχουν αρχεία πίνακα διαχείρισης.

Ξεκινώντας με την έκδοση 8.x, κατέστη δυνατή η σύνδεση μονάδων απευθείας στο πρότυπο. Το πρότυπο βρίσκεται στο φάκελο /templates/template_name/. Σε αυτόν τον φάκελο υπάρχει ένα αρχείο main.tpl Αυτό είναι το ριζικό αρχείο του προτύπου, συνήθως η κύρια δομή του προτύπου βρίσκεται σε αυτό. Συνήθως η μονάδα μπορεί να συνδεθεί ως εξής:

(συμπεριλάβετε file="engine/modules/mod_category.php")

Όπου mod_category.php είναι ένα αρχείο που βρίσκεται στην κατηγορία /engine/modules/. Νομίζω ότι όλα αυτά είναι ξεκάθαρα, ας προχωρήσουμε.

Ας φτιάξουμε μια ενότητα για την εμφάνιση των πιο πρόσφατων σχολίων με την προσωρινή αποθήκευση. Για να γίνει αυτό, ας δημιουργήσουμε ένα αρχείο στο φάκελο /engine/modules/ και ας το ονομάσουμε mod_lastcomm.php Στη συνέχεια, παρέχω μια λίστα με τον κώδικα για αυτό το αρχείο με λεπτομερή σχόλια.

Κώδικας

DATALIFENGINE". Αυτή η σταθερά ορίζεται στο index.php και η τιμή της TRUE συμβολίζει ότι το αρχείο περιλαμβάνεται χρησιμοποιώντας το include/require, και όχι απλώς εκκινείται. */ if(!defined("DATALIFEENGINE")) ( die("Προσπάθεια hacking! " ); cache με όνομα lastcomm Συνιστώ να δίνουμε ουσιαστικά ονόματα σε όλα όσα αποθηκεύουμε στην κρυφή μνήμη. lastcommείναι ένα αρχείο σε φάκελο /engine/cache/, ΕΝΑ 60είναι η διάρκεια ζωής της κρυφής μνήμης σε δευτερόλεπτα. Σε αυτήν την περίπτωση, εάν έχει περάσει περισσότερος χρόνος από τη δημιουργία του αρχείου από 60 δευτερόλεπτα, τότε θα πρέπει να μπούμε ξανά στη βάση δεδομένων. */ $lastcomm=$dle_api->load_from_cache("lastcomm", 60); /* Ελέγξτε αν έχουμε προσωρινή μνήμη ή όχι. Αν όχι, τότε μπαίνουμε στη βάση δεδομένων. */ if (!$lastcomm) ( /* Το πραγματικό ερώτημα στη βάση δεδομένων. Εκτελείται χρησιμοποιώντας τη συνάρτηση κλάσης $db. Η σταθερά PREFIX περιέχει το πρόθεμα που καθορίζεται κατά την εγκατάσταση cms. Τα ονόματα των στηλών ονομάζονται αρκετά κανονικά, νομίζω ότι υπάρχει Δεν χρειάζεται να εξηγήσουμε τι κάνουν Βάζουμε το αναγνωριστικό ερωτήματος στη μεταβλητή $sql */ $sql = $db->query("SELECT comments.post_id, comments.text, comments.autor, post.id, post. .flag, post.category, post.date ως newsdate , post.title, post.alt_name FROM " . PREFIX . "_comments as comments, " . PREFIX . "_post as post WHERE post.id=comments.post_id ORDER BY BY comments. ημερομηνία DESC LIMIT 0,20"); /* C Χρησιμοποιώντας τη συνάρτηση get_row() της κλάσης $db, διαβάζουμε διαδοχικά κάθε σειρά από τα αποτελέσματα του δείγματος. Οι πληροφορίες εισάγονται στον πίνακα $row με δείκτες ίσους με τα ονόματα του πίνακα πεδία */ while ($row = $db->get_row($sql)) ( /* Εάν είναι απαραίτητο. κόψτε τον τίτλο της είδησης */ if (strlen($row["title"]) > 50) ( $title = substr($row["title"], 0, 50)."...";) else ($title = $row["title"]; ) /* Σχηματίστε έναν σύνδεσμο προς το προφίλ του χρήστη. Παρόμοιο */ $aname=urlencode($row["autor"]); $name= " ". $row["autor"] .""; /* Σχηματίστε το κείμενο του σχολίου και, εάν χρειάζεται, περικόψτε το */ $text = htmlspecialchars($row["text"]); if (strlen($text) > 1024) $text= substr($text , 0, 1024) "..." /* Δημιουργούμε έναν σύνδεσμο προς τις ειδήσεις Ο πίνακας $config περιέχει όλες τις ρυθμίσεις του συστήματος $config["http_home_url"].$ row["post_id"]."-".$row["alt_name"]..html"; $hint = "onMouseover=\"showhint("$text", this, συμβάν, "");\"" ; ".stripslashes($title).""; /* Τελική καταχώριση για ένα σχόλιο */ $lastcomm.="Από το $name στις ειδήσεις:
$title

"; ) $db->free(); /* Αποθηκεύστε προσωρινά τα ληφθέντα δεδομένα. Για να κατανοήσετε καλύτερα τις λειτουργίες προσωρινής αποθήκευσης, ανοίξτε το αρχείο "engine/api/api.class.php" όλα σχολιάζονται τέλεια */ $dle_api-> save_to_cache (" lastcomm", $lastcomm ) /* Έξοδος του αποτελέσματος */ echo $lastcomm;

συμπέρασμα

Αυτός ο κώδικας λειτουργεί πλήρως. Και φυσικά έχει τα μειονεκτήματά του. Για παράδειγμα, δεν ελέγχεται για συνδέσμους εάν το CNC είναι ενεργοποιημένο. Ή όταν κάνουμε κλικ σε έναν σύνδεσμο προς το προφίλ ενός χρήστη, μεταφερόμαστε απευθείας στο προφίλ του και όχι σε ένα παράθυρο jQuery με σύντομες πληροφορίες. Γενικά, υπάρχει κάτι για βελτίωση. Αλλά όλα αυτά τα πράγματα δεν συμπεριλήφθηκαν εδώ για έναν μόνο λόγο - για να μην μπερδευτεί ο αρχάριος. Σας συμβουλεύω επίσης να αναλύσετε άλλα αρχεία, για παράδειγμα topnews.php. Εάν έχετε οποιεσδήποτε ερωτήσεις σχετικά με τη σύνταξη ενοτήτων ή γενικά σχετικά με το σύστημα, θα χαρώ να τις απαντήσω.

Αυτό είναι όλο για μένα, αν κάποιος βρει ενδιαφέρον αυτό το θέμα, θα φτιάξω μια σειρά άρθρων σχετικά με το cms Datalide Engine (DLE).

Ω ναι, αυτό είναι το πρώτο μου άρθρο για το Habré, οπότε συγγνώμη αν κάτι δεν πάει καλά.

Είναι μάλλον κοινό για όλους τους ανθρώπους να ξεχνούν κάποιες πληροφορίες. Αυτό ισχύει ιδιαίτερα για κωδικούς πρόσβασης και συνδέσεις από διάφορους ιστότοπους.

Εσείς (ή το άτομο που σας έδωσε πρόσβαση) δημιουργήσατε έναν ισχυρό κωδικό πρόσβασης, αλλά δεν τον γράψατε σε ένα απομονωμένο μέρος και τον ξεχάσατε. Τι να κάνετε σε αυτή την περίπτωση;

Από προεπιλογή, το DataLife Engine δεν επιτρέπει την ανάκτηση κωδικού πρόσβασης για την ομάδα Administrators. Αυτό γίνεται για προφανείς λόγους - τελικά, εάν ένα άτομο έχει πρόσβαση στην αλληλογραφία σας, τότε έχει πρόσβαση στον ιστότοπό σας.

Ωστόσο, μπορείτε να ενεργοποιήσετε τη δυνατότητα ανάκτησης του κωδικού πρόσβασής σας με τον τυπικό τρόπο (μέσω της φόρμας ανάκτησης) και για τους διαχειριστές. Διαβάστε πώς να το κάνετε αυτό σε αυτό το άρθρο.

Το ίδιο άρθρο είναι αφιερωμένο σε εκείνες τις περιπτώσεις όπου η τυπική ανάκτηση κωδικού πρόσβασης δεν είναι ενεργοποιημένη, αλλά πρέπει να ανακτήσετε την πρόσβαση στον πίνακα ελέγχου.

Θα σας πω για δύο μεθόδους αποκατάστασης, είναι απλές. Ο καθένας επιλέγει τη μέθοδο που του φαινόταν πιο βολική.

Επαναφορά της πρόσβασης στον πίνακα ελέγχου τοποθεσίας στο DataLife Engine μέσω ερωτήματος SQL

Από τον τίτλο, νομίζω ότι έχετε ήδη καταλάβει ότι για να αλλάξετε τον κωδικό πρόσβασης πρέπει να κάνετε ένα ερώτημα SQL στη βάση δεδομένων σας. Περιέγραψα λεπτομερώς πώς να κάνετε ένα ερώτημα SQL στο .

Πρέπει να υποβάλετε ένα αίτημα του παρακάτω τύπου:

ΕΝΗΜΕΡΩΣΗ `dle_users` SET `password` = "d9b1d7db4cd6e70935368a1efb10e377" ΟΠΟΥ `user_id` = 1;

Οπου " 1 " είναι το αναγνωριστικό διαχειριστή (αλλάξτε το σε δικό σας) και " " - Κωδικός πρόσβασης " 123 » σε κρυπτογραφημένη μορφή.

Αφού ολοκληρωθεί επιτυχώς το αίτημα (αν αντιμετωπίσετε δυσκολίες, γράψτε το στα σχόλια), μπορείτε να συνδεθείτε στον πίνακα ελέγχου του ιστότοπού χρησιμοποιώντας το όνομα χρήστη και τον κωδικό πρόσβασής σας " 123 ».

Επαναφορά της πρόσβασης στον πίνακα ελέγχου τοποθεσίας στο DataLife Engine μέσω ενός επιπλέον χρήστη

Σε αυτήν την περίπτωση, θα πρέπει να καταχωρήσετε ένα νέο προφίλ στον ιστότοπό σας και να του δώσετε τα κατάλληλα δικαιώματα.

Για αυτό:

1. Εγγραφή νέου προφίλ (φροντίστε να θυμάστε τη σύνδεσή σας).

2. Στη βάση δεδομένων σας, εκτελέστε το ερώτημα SQL:

ΕΝΗΜΕΡΩΣΗ `dle_users` SET `user_group` = "1" WHERE `name` = "login";

Οπου " Σύνδεση" – σύνδεση του νέου χρήστη (αλλαγή στο δικό σας).

Αυτό είναι όλο, στην πραγματικότητα. Χρησιμοποιώντας αυτό το αίτημα, κάνουμε τον καθορισμένο χρήστη διαχειριστή και με τα δεδομένα του μπορείτε να συνδεθείτε στον πίνακα ελέγχου του ιστότοπού σας.