Hakemisto php-levytiedosto. Foorumimoottorin automaattinen tunnistus

Kotiin / Erittelyt

Tiettyjen moduulien on kommunikoitava laitteiston kanssa voidakseen suorittaa tehtävänsä. Näissä moduuleissa on ylimääräinen ajurikerros. Jokainen kuljettaja tarvitsee sitten levytiedoston puhuakseen varsinaisen laitteiston kanssa.
Käyttäjän on toimitettava levytiedosto, koska sen toteutus ei riipu pelkästään käytetystä taustajärjestelmästä (HAL), vaan myös todellisesta laitteistokokoonpanosta (johdotus).

Mallit

Jokainen ajuri tarjoaa mallin levytiedostostaan. Tämän tiedoston kopioiminen projektihakemistoon ja rutiinien toteuttaminen riittää. Huomaa, että sinun on poistettava _template-osa tiedoston nimestä.

Tuetut levyt

Joillakin levyillä on ennalta määritetty laitteisto. Jos ne ovat yhteinen taulu, tarjoamme maketiedoston ( /boards/base/xxx/board.mk), jonka voit sisällyttää omaan projektisi make-tiedostoon. Tämä sisältää sitten automaattisesti kaikki vakiolaitteiston ajurit ja levytiedostot. Lisää valmiiksi määritettyjä levytiedostoja löytyy myös /boards/addons.

Aloitetaan heti pääskriptikoodilla:

#!/usr/bin/perl

# what-forum.pl komentosarja
# (c) 2010 Alexandr A Alekseev, http://site/

käytä tiukkaa;

# kommentoitua riviä - tarkkuuden vuoksi
# Jos tehtävänä on kerätä moottoritilastoja, jätä se ennalleen
# jos teet luettelon foorumeista - poista kommentit

minun $tietoni ;
$data .= $_while (<> ) ;

# tarkista kuinka paljon Powered by phpBB ilman linkkiä alatunnisteessa
tulosta "phpbb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?phpbb\.com\/?[^>]*>phpBB/i tai
# $data =~ /viewforum\.php\?[^""]*f=\d+/i tai
$data =~ /phpBB\-SEO/i tai
$data =~ /) ;
tulosta "ipb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?invision(?:board|power)\.com\/?[^"]*"[^>]*> [^<]*IP\.Board/i tai
$data =~ /]+href="[^"]*http:\/\/(?:www\.)?invisionboard\.com\/?[^>]*>Invision Power Board/i tai
$data =~ /

/i tai
$data =~ /index\.php\?[^""]*showforum=\d+/i) ;
tulosta "vbulletin \n"
if ($data =~ /Voittaja:?[^<]+vBulletin[^<]+(?:Version)?/i tai
$data =~ /) ;
tulosta "smf \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?simplemachines\.org\/?[^>]*>Voit antaa SMF/i tai
$data =~ /index\.php\?[^""]*board=\d+\.0/i) ;
tulosta "punbb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:(?:www\.)?punbb\.org|punbb\.informer\.com)\/?"[^>]*> PunBB/i) ;
#tai
# $data =~ /viewforum\.php\?[^""]*id=\d+/i); \n"
tulosta "fluxbb
# if($data =~ /viewtopic\.php\?id=\d+/i tai /if ( $data =~) ;
]+href="http:\/\/(?:www\.)fluxbb\.org\/?"[^>]*>FluxBB/i \n"
if ($data =~ /tulosta "exbb]+href="[^"]*http:\/\/(?:www\.)?exbb\.org\/?[^>]*>ExBB/i
# $data =~ /forums\.php\?[^""]*foorumi=\d+/i);
tulosta "yabb \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?yabbforum\.com\/?[^>]*>YaBB/i tai
$data =~ /YaBB\.pl\?[^""]*num=\d+/i ) ;
tulosta "dleforum \n"
if ($data =~ /\(Voit toimittanut DLE Forum\)<\/title>/i tai
$data =~ /]+href="[^"]+(?:http:\/\/(?:www\.)?dle\-files\.ru|act=copyright)[^"]*">DLE-keskusteluryhmä<\/a>/i) ;
tulosta "ikonboard \n"
if ($data =~ /]+href="[^"]*http:\/\/(?:www\.)?ikonboard\.com\/?[^"]*"[^>]*>Ikonboard/i tai
$data =~ /\n"
if ($data =~ /]*>ExBB/i
# $data =~ /topic\.php\?id=\d+/i tai
# $data =~ /foorumi\.php\?id=\d+/i);
tulosta "flashbb \n"
# if($data =~ /forums\.php\?fid=\d+/i tai
# $data =~ /topic\.php\?fid=\d+/i tai
if ($data =~ /]+href="http:\/\/(?:www\.)?flashbb\.net\/?"[^>]*>FlashBB/i) ;
tulosta "Stokesit \n"
# if($data =~ /foorumi\.php\?f=\d+/i tai
if ($data =~ /]+href="http:\/\/(?:www\.)?stokesit\.com\.au\/?"[^>]*>[^\/]*Stokes IT/i) ;
print "podium \n"
# if($data =~ /topic\.php\?t=\d+/i tai
if ($data =~ /]+href=[""]?http:\/\/(?:www\.)?sopebox\.com\/?[""]?[^>]*>Podium/i) ;
tulosta "usebb \n"
# if($data =~ /foorumi\.php\?id=\d+/i tai
if ($data =~ /]+href="http:\/\/(?:www\.)?usebb\.net\/?"[^>]*>KäytäBB/i) ;
tulosta "wrforum \n"
# if($data =~ /index\.php\?fid=\d+/i tai
if ($data =~ /]+href="http:\/\/(?:www\.)?wr\-script\.ru\/?"[^>]*>WR\-Forum/i) ;
tulosta "yetanotherforumnet \n"
if ($data =~ /Yet Another Forum\.net/i or
$data =~ /default\.aspx\?g=posts&t=\d+/i) ;

Löydät tämän ja muut viestissä mainitut skriptit tästä arkistosta.

Käsikirjoitus what-forum.pl tutkii HTML-sivun koodin nähdäkseen, sisältääkö se foorumimoottorin allekirjoituksia. Käytimme samanlaista tekniikkaa määriteltäessämme WordPressiä ja Joomlaa, mutta niissä on pari eroa. Ensinnäkin skripti itse ei lataa sivukoodia, vaan lukee sen stdinistä tai argumenttina välitetystä tiedostosta. Tämän avulla voit ladata sivun kerran esimerkiksi wgetillä ja suorittaa sen sitten useiden analysaattoreiden läpi, jos meillä on useampi kuin yksi. Toiseksi, tässä skriptissä allekirjoituksen läsnäolo on 100% merkki moottorista. Viime kerralla allekirjoituksen läsnäolo lisäsi vain vastaavan moottorin painoa ja suurimman painon moottori "voitti". Päätin sen sisään tässä tapauksessa Tämä lähestymistapa vain mutkistaa koodia tarpeettomasti.

Testatakseni käsikirjoitusta tein jonkin verran tutkimusta. Kokosin luettelon useista tuhansista foorumeista ja suoritin niistä jokaisen käsikirjoitukseni läpi määrittäen näin ohjelman vastausten prosenttiosuuden ja eri moottoreiden suosion.

Saadakseni luettelon foorumeista, käytin Google-jäsentäni. Hakukone pyynnöt kuten

site:forum.*.ru
site:talk.*.ru
site:board.*.ru
site:smf.*.ru
site:phpbb.*.ru
....

ja niin edelleen. Löydät täydellisen kyselygeneraattorikoodin tiedostosta gen-forumsearch-urls.pl. Zone.ru:n lisäksi käytettiin myös muotoja .su .ua .kz ja .by. Viime kerralla tällaisen tutkimuksen tekeminen oli vaikeaa, koska WordPress- ja Joomla-sivustoilla ei ole tällaisia ​​allekirjoituksia URL-osoitteessa. Katalogit, kuten cmsmagazine.ru/catalogue/, eivät tarjoa riittävää otoskokoa. Mikä on 600 Drupal-sivustoa?

Täytyy myöntää, että kokeilun tulokset pettyivät. Tutkituista 12 590 paikasta moottori tunnistettiin onnistuneesti vain 7 083:ssa, eli vain 56 prosentissa tapauksista. Ehkä en ottanut jotain moottoria huomioon? Oliko todella totta, että puolet foorumeista oli Bitrixin asennettuna? Vai olisiko minun pitänyt käyttää enemmän aikaa allekirjoitusten etsimiseen? Yleensä tässä tarvitaan lisätutkimusta.

56 %:sta onnistuneesti tunnistetuista moottoreista suosituimmat olivat IPB (31 %), phpBB (26,6 %) ja vBulletin (26,5 %).

Niitä seuraavat suurella viiveellä SMF (5,8 %) ja DLEForum (5,3 %). Suosikkini punBB oli vasta 6. sijalla (1,64 %). En suosittele uskomaan paljon näihin lukuihin (he sanovat, että joka kolmas RuNetin foorumi toimii IPB:llä), mutta tiettyjä johtopäätöksiä voidaan tietysti tehdä.

Jos esimerkiksi aiot luoda sivuston foorumimoottoriin ja aiot muokata foorumia, esimerkiksi maksaa käyttäjille 0,01 dollaria jokaisesta viestistä automaattisella varojen nostolla kerran viikossa, sinun tulee valita yksi kolmesta suosituimmasta moottorista. Mitä suositumpi foorumi, sitä suuremmat mahdollisuudet löytää ohjelmoija, joka on perehtynyt siihen.

Jos moottorissa ei odoteta merkittäviä muutoksia, voi olla järkevää valita vähemmän suosittu moottori, esimerkiksi SMF tai punBB. Tämä vähentää määrää hakkerihyökkäykset foorumillesi ja siihen automaattisesti lähetetyn roskapostin määrä.

Skriptit foorumien etsimiseen/tunnistamiseen voivat myös löytää monia käytännön sovelluksia. Ensimmäinen asia, joka tuli mieleeni, oli lajitella tunnistetut foorumit TIC:n mukaan ja lähettää sataan ensimmäiseen viestiin, joissa on linkkejä yhdelle sivustolleni. Sadat foorumi dofollow-linkit eivät kuitenkaan vaikuttaneet TCI:hen millään tavalla (2 päivitystä on kulunut), joten on parempi olla tuhlaamatta aikaa täällä, ellet ole kiinnostunut siirtymistä.

On selvää, että mainittu skriptien käyttö ei ole kaukana ainoasta. Uskon, että voit helposti selvittää, miten voit käyttää niitä muuten.


Index.php-tiedosto on foorumin avaintiedosto ja sitä käytetään lähes kaikkiin toimiin. Sen työ koostuu seuraavista vaiheista:
1)Asetustiedostojen tietokanta.php ja iboard.php yhdistäminen.
2) Yhteyden muodostaminen DBMS:ään ja pääsy tietokantaan.
3) Tietojen lukeminen käyttäjän evästeistä tai komentosarjalle välitetyistä parametreista, tiedon poimiminen tästä käyttäjästä tietokannasta ja hänen aitouden tarkistaminen.
4) Jos vahvistus epäonnistuu (tai käyttäjästä ei ole tietoa), Vieras-käyttäjäprofiilin tiedot (rekisterinumero - 1) haetaan käyttäjätiedoiksi.
5) Käyttäjän profiiliasetuksissa määrittämät käyttöliittymätyyli- ja kielitiedostot yhdistetään.
6) Jos t-parametri on läsnä skriptikutsun parametreissa, tiedot määritetystä aiheesta ja foorumista, jossa tämä aihe sijaitsee.
7) Jos f-parametri on läsnä skriptikutsun parametreissa, foorumin tiedot poimitaan tietokannasta.
8) Jos t- tai f-parametrit ovat olemassa, tarkistetaan, onko käyttäjällä riittävät oikeudet tarkastella vastaavaa foorumia.
9) Parametrissa m määritetty moduuli on kytketty. Jos m-parametri puuttuu, moduulin tyyppi määritetään sen osion tyypin mukaan, jolle tämä toimenpide. Jos osion tyyppiä ei ole määritetty, tarkistetaan, mikä pitäisi näyttää kotisivu. Jos jokin osioista valitaan pääsivuksi, kytketään vastaavan tyyppisen osion näyttämisestä vastaava moduuli muuten- moduuli main.php. Mukana on myös tyylitiedosto, jolla on sama nimi kuin laajennuksella, mutta joka sijaitsee tyylihakemiston alihakemistossa, joka vastaa käyttäjäprofiilin asetuksista valittua tyyliä.
10) Parametri a tarkistetaan. Jos sitä ei ole erikseen määritetty, se julistetaan yhtäläiseksi kuin näkymä. Seuraavaksi, jos tietty osa on määritetty ja parametri on näkymä, se korvataan<имя_раздела>_view.
11)Pyydetystä toimenpiteestä riippuen (se osoitetaan komentosarjakutsuparametrissa a), joko tmplate1.php-tiedosto on yhdistetty (jos toiminto ei sisällä etuliitettä do_) tai tmplate2.php-tiedosto (muuten). Seuraavaksi kutsutaan kaikkia vastaavassa mallissa lueteltuja toimintoja, ja main_action-toiminnon sijaan kutsutaan itse asiassa a-parametrissa määritettyä toimintoa.
12) Foorumiloki sisältää tiedot suoritetusta toimenpiteestä, toiminnon suorittaneen käyttäjän tunnisteen ja IP-osoitteen.
Myös index.php-tiedostossa on kohtalokkaiden virheiden käsittelytoiminto, joka on suunniteltu näyttämään virheilmoitus sekä tallentamaan virheteksti error.log-tiedostoon.

© 2024 ermake.ru - Tietoja PC-korjauksesta - Tietoportaali