Tudjon meg mindent a látogatóról. Tudjon meg mindent a látogatóról Részletes kapcsolatkeresés

A legjobb módja annak, hogy a felhasználó a webhelyen maradjon, ha hagyja, hogy megtalálja, amit keres. Ha ehhez kényelmes rendszert készít, akkor webhelye preferenciája nőni fog, és a felhasználó biztosan visszatér, hogy megtalálja, ami érdekli.

Megmutatom, hogyan készíthetsz egy egyszerű, de funkcionálisan hatékony keresési űrlapot, amely az oldalon található cikkek keresésére szolgál. Az eredmények újratöltés nélkül jelennek meg az oldalon, ami kétségtelenül így van a legjobb mód információk benyújtása.

Létrehozok 2 fájlt: search.php, amely HTML-t és JavaScriptet tartalmaz majd. A második fájl, a do_search.php tartalmazza a PHP kódot. Kezdjük el az első fájl létrehozását:

PHP, jQuery kereső demo

Próbáld meg beírni az ajax szót


eredmények


Ebben a fájlban a szokásosat hoztuk létre HTML űrlap amely elküldi POST kérés a háttérben - a do_search.php fájlba.

select_list($sql); if(count($row)) ( $end_result = ""; foreach($sor mint $r) ( $eredmény = $r["cím"]; $bold = " " . $word .""; $vég_eredmény .= "

  • " .str_ireplace($word, $bold, $eredmény) ."
  • "; ) echo $vég_eredmény; ) else ( echo "
  • Semmi sem található a kérésére
  • "; } } ?>

    A PHP kód megjegyzéseket tartalmaz, amelyek megkönnyítik a szkript működésének megértését. Ha vannak egyezések az adatbázisban, akkor azokat a keresett szavak félkövérre szedésével mutasd meg a felhasználónak.

    Adjunk mindennek egy kis CSS-t:

    Body( font-family:Arial, Helvetica, sans-serif; ) *( margó:0;padding:0; ) #container ( margó: 0 auto; szélesség: 600px; ) a ( szín:#DF3D82; szövegdekoráció: none ) a:hover ( color:#DF3D82; text-decoration:underline; ) ul.update ( list-style:none;font-size:1.1em; margin-top:10px ) ul.update li( height:30px; border-bottom:#dedede solid 1px; text-align:left;) ul.update li:first-child( border-top:#dedede solid 1px; height:30px; text-align:left; ) #flash ( margó- top:20px; text-align:left; ) #searchresults ( text-align:left; margin-top:20px; display:none; font-family:Arial, Helvetica, sans-serif; font-size:16px; color: #000; ) .word ( font-weight:bold; color:#000000; ) #search_box ( padding:4px; border:solid 1px #666666; width:300px; height:30px; font-size:18px;-moz- border-radius: 6px;-webkit-border-radius: 6px; ) .search_button ( border:#000000 solid 1px; padding: 6px; color:#000; font-weight:bold; font-size:16px;-moz- border-radius: 6px;-webkit-border-radius: 6px; ) .found ( font-weight: bold ; betűstílus: dőlt; szín: #ff0000; ) h2 ( jobb margó: 70 képpont; )

    Tehát megtanulta, hogyan hozhat létre egy egyszerű keresési űrlapot, amely az oldal újratöltése nélkül működik. Remélem tetszett a lecke.

    tapasztalt ember 2013. november 10-én 13:29-kor

    Webhelylátogatási statisztikák harmadik féltől származó szolgáltatások nélkül

    • Weboldalfejlesztés

    Jó nap! Azt hiszem, még emlékeznek arra, hogy nemrég, néhány csuklás után Google szerverek, sok webhely is összeomlott.
    Valójában ez a helyzet az internet bármely szolgáltatásával megtörténhet, ezért jobb, ha még egyszer biztonságosan eljátssza.
    A webhelyek forgalmi statisztikái sok szervezetnél befolyásolják a marketingesek munkáját, akik meghatározzák, hogy mely városokban van nagyobb kereslet a termékekre stb. De mi van akkor, ha a webhelyen használt statisztikai szolgáltatás átmenetileg meghibásodik?

    Van megoldás: használja saját szkriptjét a webhelylátogatások rögzítéséhez harmadik féltől származó szolgáltatásokkal együtt.

    Szkriptünk három fájlból fog állni:

    • stat.php - minden olyan oldalon megtalálható, amelyet figyelni kell
    • stat.log - egy fájl, amelybe a látogatások előzményei íródnak
    • seestats.php - fájl a statisztikák megtekintéséhez
    Valójában bármilyen fájlnév használható.

    stat.php fájl
    $col_zap) array_shift($sorok); $sorok = $dátum."|".$bot."|".$ip."|".$home."|\r\n"; file_put_contents($fájl, $sorok); ?>

    Annak érdekében, hogy ne minden alkalommal kézzel ássuk ki a stat.log fájlt, hozzunk létre egy fájlt a webhelylátogatási statisztikák megjelenítéséhez:
    seestats.php fájl

    sizeof($file)) ( $col=sizeof($file); ) echo "Recent ".$col." webhelylátogatások:"; ?> sizeof($file)-$col; $si--) ( $string=explode("|",$file[$si]); $q1[$si]=$string; // dátum és idő $q2[$si]=$string; // bot neve $q3[$si]=$string; // bot ip $q4[$si]=$string; // látogatási cím visszhangja " "; visszhang" "; visszhang" "; visszhang" "; ) visszhang"
    Idő és dátum Látogatói adatok IP/proxy Meglátogatott URL
    ".$q1[$si]."".$q2[$si]."".$q3[$si]."".$q4[$si]."
    "; visszhang"
    A legújabb megtekintése 100 500"; visszhang" 1000 látogatások."; echo "
    Kilátás minden látogatást.
    "; echo ""; ?>

    Ez minden! Most még ha a liveinternet vagy a Yandex.Metrica összeomlik is, mindig megtudhatja, ki látogatta meg webhelyét!

    Címkék: php, statisztika, script



    02/28/16 11,1K

    Az egyik legnépszerűbb és legszükségesebb funkció bármely webhelyen a keresés, amelyet egy speciális űrlap segítségével hajtanak végre. Ez a funkció lehetővé teszi a látogatók számára, hogy gyorsan megtalálják az őket érdeklő tartalmat az oldalon.

    Ma azt szeretnénk elmondani, hogyan kereshet az oldalon egy speciális űrlap segítségével, amely lekérdezi az adatbázis tábláit, és információkat jelenít meg a webhely aktuális vezetőiről. Megtanulja, hogyan hozhat létre adatbázistáblát, amely információkat tartalmaz az aktuális személyzetről.

    Keresési űrlapok kidolgozása PHP segítség, és ismerkedjen meg az SQL-vel ( Strukturált lekérdezési nyelv) egy speciális nyelv az adatbázisokban található információk gyűjtésére, rögzítésére és módosítására. Mielőtt elkezdené, javasoljuk, hogy projektfájlok letöltése.

    Mire lesz szüksége

    • MySQL adatbázis eszköz.
    • Helyi vagy távoli szerver PHP támogatással.
    • Szöveg szerkesztő.

    Adatbázis létrehozása

    Ha nem teljesen biztos abban, hogy képes kezelni a tárhelyén található adatbázist, akkor forduljon a házigazdához útmutatásért vagy segítségért. Az adatbázis létrehozása után össze kell kötnie, létre kell hoznia egy táblát, és be kell írnia a szükséges adatokat.

    A legnépszerűbb MySQL kezelőeszköz a PHP My Admin , amely elég lesz a mai útmutatónkhoz.

    Hozzon létre egy táblázatot

    A táblázatunkat a következő formátumban kell elkészíteni:

    oszlop neve adattípus Hossz Null or Not Null elsődleges kulcs? Automatikus növelés
    ID INT 1 Nem nulla Igen Igen
    Keresztnév Varchar 50 Nem nulla nem nem
    vezetéknév Varchar 50 Nem nulla nem nem
    Email Varchar 50 Nem nulla nem nem
    Telefonszám Varchar 15 Nem nulla nem nem

    Az adatbázistáblázat az Excelhez hasonlóan oszlopokból és sorokból áll. Az első oszlop lehetővé teszi az adatok név szerinti azonosítását. Ezután következik az Adattípusok (adattípus) oszlop, amely jelzi számunkra az oszlopban található adatok típusát. A Length (Length) mezőben a memória (tárhely) maximális mennyiségét jelzi egy táblázat oszlopához. Olyan változókat használunk, amelyek nagyobb rugalmasságot biztosítanak. Más szóval, ha a teljes név hossza kevesebb, mint 50 karakter, akkor a kijelölt helynek csak egy része lesz elfoglalva.

    És a személyi adatok között nem lehetnek üres értékek ( null, üres). Az első sor sárga színnel van kiemelve, mert az ID oszlop az elsődleges kulcsunk. Az adatbázisban található elsődleges kulcs garantálja, hogy minden bejegyzés egyedi lesz. Ez az oszlop is automatikusan növekszik, ami azt jelenti, hogy adatbázisunkban minden rekord automatikusan egyedi számot kap.

    A táblázatba beírjuk a személyzet képviselőit

    Miután megértette a táblázatot, kezdje el feltölteni adatokkal. 6 bejegyzés elegendő ahhoz, hogy az eljárást az elmében rögzítse. Itt van a saját példám:

    Oszlopazonosító Keresztnév vezetéknév Email Telefonszám
    2 Ryan Komornyik [e-mail védett] 417-854-8547
    3 Brent Callahan [e-mail védett] 417-854-6587

    Formafejlesztés

    Webhelykereső űrlap létrehozásához a Google-on keresztül, nyissa meg a megfelelő űrlapot szöveg szerkesztő. Javaslom az ingyenes PSPad használatát. Bármilyen szövegszerkesztőt használhat, amely rendelkezik szintaktikai kiemeléssel. Ez nagyban megkönnyíti a PHP kód írási és hibakeresési folyamatát. Ha oldalt hoz létre egy keresési űrlaphoz, mindenképpen .php formátumban mentse el, különben a PHP kód nem lesz megfelelően értelmezve. A dokumentum mentése után másolja bele a következő jelölést:

    Kapcsolatkeresés:

    Részletes kapcsolatkeresés

    Kereshet vezeték- vagy keresztnév alapján



    Ha ismeri a HTML nyelvet, akkor mindennek világosnak kell lennie legalább a nyitó űrlap címkéjéig. Ebben a címkében található a teljes kód legfontosabb eleme - az action attribútum. Űrlapunk műveleteként megadtuk a fájl nevét, majd alkalmaztuk a lekérdezési karakterláncot " megy”.

    Kritériumok ellenőrzése

    Amikor a felhasználó beír egy kereszt- vagy vezetéknevet, majd rákattint a küldés gombra, az űrlap elküldi magának az adatokat, és hozzáfűzi a lekérdezési karakterláncot. megy". Tovább ezt a szakaszt ellenőrizzük a go lekérdezési karakterlánc jelenlétét. Ha az eredmény pozitív, megjelenítjük a keresési eredményeket.

    A kért eredmények megjelenítése előtt még egyszer ellenőriznünk kell: (1) elküldték-e az űrlapot, (2) hogy a lekérdezési karakterlánc tartalmazza-e a go értéket, (3) keresési lekérdezés kisbetűvel vagy nagybetűvel írták be? Ha egyik ellenőrzés sem ad pozitív eredményt ( igaz), nem kell semmilyen intézkedést tennünk.

    Először is adjunk hozzá egy kis PHP-kód blokkot a webhelykereséshez a záró címke után.:



    Először megnyitunk egy PHP kód blokkot a "" címkével.

    A címkepáron belüli bármely PHP kódot a szerver végrehajtja. Ezután ellenőrizzük, hogy az űrlapot elküldték-e:

    Adjon meg egy keresett kifejezést

    "; } ?>

    Használjuk a beépített isset függvényt, amely bool értéket ad vissza, és belehelyezzük a $_POST tömböt. Egy logikai kifejezés a programozásban lehetővé teszi számunkra, hogy igaz vagy hamis értéket kapjunk.

    Ezért ha a függvény true értéket ad vissza, akkor az űrlapot elküldtük, és folytatnunk kell a kód végrehajtását. Ha a függvény false -t ad vissza, akkor hibaüzenetet jelenítünk meg. Mentse el az összes beírt kódot a search_submit.php fájlba.

    Adjon meg egy keresett kifejezést

    "; } } } ?>

    Beágyazunk egy másik feltételes logikai kifejezést a főbe, de ezúttal a $_GET tömböt használjuk a " megy". Mentse el a változtatásokat a search_go.php fájlba.

    Most meg kell győződnünk arról, hogy a látogatók a lekérdezési karakterlánc első betűjét csak nagybetűvel vagy csak kisbetűvel írhatják be. Módot kell biztosítanunk a látogató által megadott keresési feltételek figyelembe vételére is. A látogatói bevitel ellenőrzésének legjobb módja egy reguláris kifejezés:

    Egy másik feltételes logikai kifejezést beágyazunk a kettőnkbe. Ezúttal reguláris kifejezést használunk a bemenet érvényesítésére. A preg_match beépített függvényt két paraméterrel használjuk: egy reguláris kifejezést és egy űrlapmezőt, amelyre az érvényesítést alkalmazni kell.

    Esetünkben ez a " Név" mező lesz ( név). A látogató által megadott keresési paraméterek lekéréséhez létrehozunk egy $name változót, és hozzá kötünk egy POST értéket az SQL lekérdezésben használt űrlap mezőjének nevével. Mostanra megvalósítottuk a következőket: (1) az űrlapadatok elküldése, (2) a lekérdezési karakterlánc tartalmaz egy go értéket, és (3) a látogató nagy vagy kis kezdőbetűt írt be. Mindezek az ellenőrzések még az adatbázis módosítása előtt megtörténnek. Mentse el az összes változtatást.

    Csatlakozás, kijelölés, lekérdezés és eredmények visszaadása adatbázistáblából

    Ha adatokat szeretne lekérni egy táblázatból, először csatlakoznia kell a szerverhez a webhelykeresési szkriptben. Ehhez a következő kódot használjuk:

    ", "") or die (" Nem tudok csatlakozni az adatbázishoz, mert: " . mysql_error()); else( echo "

    Kérjük, írjon be egy keresési kifejezést

    "; } } }?>

    Létrehozunk egy $db változót, és hozzákötjük a MySQL beépített mysql_connect függvényéhez, amely három paramétert vesz fel: a szervert az adatbázissal ( helyi kiszolgáló, ha helyben dolgozik), bejelentkezési név és jelszó.

    Ezt követően futtatjuk a beépített PHP függvényt die , amely leállítja a további kódfuttatást, ha nincs kapcsolat az adatbázissal. És megjeleníti a hibára vonatkozó információkat a beépített futtatásával MySQL függvény mysql_error , amely visszaadja a hiba okát. Mentse el a search_connectdb.php fájlt.

    Kérjük, írjon be egy keresési kifejezést

    "; } } } ?>

    Hozzon létre egy mydb nevű változót, és kösse össze a beépített modullal MySQL függvények mysql_select_db, majd adja meg a korábban létrehozott adatbázis nevét. Ezt követően lekérdezzük az adatbázistáblát egy SQL lekérdezéssel, amelynek névváltozója tartalmazza a látogató által megadott keresési paramétereket:

    Kérjük, írjon be egy keresési kifejezést

    "; } } } ?>

    Adatbázistábla lekérdezésekor létrehozunk egy $sql változót, és egy SQL lekérdezést tartalmazó karakterlánchoz kötjük. A SELECT utasítással lekérjük az értékeket az id oszlopokból, valamint a kereszt- és vezetékneveket a névjegytáblázatból. Ezután a WHERE záradékot, valamint a vezeték- és utónév értékét használjuk a keresés szűkítésére.

    A LIKE operátorral együtt használjuk a százalékjelet (%) - egy speciális karaktert, amely 0 vagy több karaktert ad vissza, valamint a névváltozót a keresési karakterláncból. Ennek eredményeként a LIKE ( különleges karakterrel kombinálva) minden egyező nevet megtalál egy adatbázistáblában. Az egész folyamat a következőképpen írható le: A névjegyzékből kiválasztjuk a látogató által megadott kereszt- és vezetékneveket". Mentse el a search_query.php fájlt.

    Kérjük, írjon be egy keresési kifejezést

    "; } } } ?>

    Létrehozunk egy $result változót, és hozzárendeljük a mysql_query() függvény értékét, a $query-be helyezve. Most a lekérdezésünk az eredményváltozóban kerül tárolásra. Az eredmény PHP-ben történő kiadásához létrehozunk egy hurkot, majd az adatokat egy rendezetlen listában adjuk ki:

    n"; visszhang"

  • " . "
  • n"; visszhang""; ) ) else( echo"

    Kérjük, írjon be egy keresési kifejezést

    "; } } } ?>

    Először létrehozunk míg hurok, azon belül létrehozunk egy row nevű változót, és inicializáljuk a mysql_fetch_array függvény visszatérési értékével, amely az SQL lekérdezésünket tartalmazó eredményváltozót veszi fel. A while cikluson belül minden oszlopértékhez hozzárendeljük egy azonos nevű változó értékét. Ezután az értékeket egy rendezetlen listán belül adjuk ki.

    Itt két fontos dolgot kell megjegyezni: (1) a while cikluson belül nem kell értékeket rendelni a sortömb változóihoz, mivel az értékek közvetlenül a sortömbből vehetők át; (2) a fájlnévben használt horgonycímke az azonosítóval és a fő kulccsal együtt. Ennek az az oka, hogy sok keresési elem kezdetben semmit sem jelenít meg.

    Mivel csak az utó- és vezetéknevet jelenítjük meg úgy, hogy a horgonycímkénk végéhez hozzáadunk egy azonosítót, az azonosítót egy további lekérdezéshez használhatjuk, amely megjeleníti További információ a személyzetről. Mentse el a fájlt és tesztelje a webhelykereső PHP űrlapot ( search_display.php).

    Távolítsa el a füleket

    Az eredmények rendezetlen listaként jelennek meg, de a lényeg az, hogy nincs szükségünk tabulátorokra. Megszabadulásához adja hozzá a következő CSS-szabályt a fájl legtetejéhez a fejben:

    Keresés betűk szerint

    Csak néhány extra kódsorra van szükség a helyesírás-keresés végrehajtásához. Adjuk hozzá ezt a kényelmes funkciót a látogatók számára. Ily módon a kereszt- vagy vezetéknévben szereplő betűk alapján meg tudják találni a személyzet képviselőit.

    Adja hozzá a következő kódsort a záró űrlapcímke után:

    A | b | K

    A címkét bekötjük egy lekérdezési karakterlánchoz egy horgony segítségével, és állítsa be egy adott betűre. A helyesírás-kereső funkció megvalósításához a következő kódot kell hozzáadnunk közvetlenül a záró kapcsos zárójel után az eredeti szkriptben, az alábbiak szerint:

    )//A keresési űrlap szkriptjének vége if(isset($_GET["by"]))( $letter=$_GET["by"]; //Csatlakozás az adatbázishoz $db=mysql_connect ("szervernév", " username" , "password") or die ("Nem tudok csatlakozni az adatbázishoz, mert: " . mysql_error()); //-Válassza ki az adatbázist $mydb=mysql_select_db("yourDatabase"); //-Az adatbázis lekérdezése táblázat $sql="SELECT ID, Keresztnév, Vezetéknév FROM Névjegyek WHERE Keresztnév LIKE "%" . $letter . "%" VAGY Vezetéknév LIKE "%" . $letter ."%""; //-Futtasson egy MySQL Query függvény lekérdezést $ result=mysql_query($sql); //-Eredmények számlálása $numrows=mysql_num_rows($result); echo "

    " .$numrows . " találat a következőre: " . $letter ."

    "; //-Indítsa el a ciklust, és rendezze az eredményeket while($row=mysql_fetch_array($result))( $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $ID=$ row[ "ID"]; //-Az eredmény megjelenítése a tömb echo "
      n"; visszhang"
    • " . "" .$FirstName . " " . $LastName . "
    • n"; visszhang"
    "; } }

    Itt megváltoztattuk a webhelykeresési szkript négy kódrészletét:

    • Használjuk az isset() függvényt, és beletesszük a $_GET tömböt, majd ellenőrizzük a by value-t;
    • Hozzon létre egy $letter változót, és inicializálja az értékét a $_GET tömbbel;
    • Változóbetű hozzáadása az SQL lekérdezéshez;
    • A változó betűjelét adjuk meg a kifejezésben, amelyben megkapjuk a megszámlált sorok számát.

    Mentse el a search_byletter.php fájlt, és ellenőrizze az eredményt.

    Keressen egy adott alkalmazottat

    A személyzet többi tagjával kapcsolatos információk megjelenítéséhez, amelyeket a hivatkozásunkon belüli egyedi azonosítón keresztül továbbítunk, a következő kódot kell hozzáadnunk közvetlenül a záró kapcsos kapcsos zárójel után a betűszkriptben, az alábbiak szerint:

    )//A szkript vége if(isset($_GET["id"]))( $contactid=$_GET["id"]; //Csatlakozás az adatbázishoz $db=mysql_connect ("szervernév", "felhasználónév" , " password") or die ("Nem tudok csatlakozni az adatbázishoz, mert: " . mysql_error()); //-válassza ki a használni kívánt adatbázist $mydb=mysql_select_db("yourDatabase"); //- Az adatbázis lekérdezése táblázat $sql="SELECT * FROM Contacts WHERE ID=" .$contactid; //- Lekérdezés futtatása a mysql_query() függvénybe $result=mysql_query($sql); //- Cikk futtatása és az eredmények rendezése while($row=mysql_fetch_array ($eredmény))( $FirstName =$row["FirstName"]; $LastName=$row["LastName"]; $PhoneNumber=$row["PhoneNumber"]; $Email=$row["Email"]; //- Az eredmény megjelenítése a tömb visszhangjában "

    "; } }

    Itt négy kódrészletet változtattunk meg:

    • Az isset() függvény segítségével ellenőrizzük az azonosító értékét a $_GET tömbben;
    • Hozzon létre egy $contactid változót, és inicializálja a $_GET tömbbel;
    • A táblázatban jelöljön ki mindent, ami csillaggal * van megjelölve. A csillag egy rövidített jelölés az SQL-ben, ami azt jelenti, hogy " add meg nekem a táblázat összes oszlopát és sorát". A megjelenítendő információk meghatározásához megemlítjük a contactid változót az SQL utasítás végén;
    • A személyzet minden képviselőjéről további információkat jelenítünk meg.

    Mentse el a search_byid.php fájlt, és ellenőrizze az eredményt.

    Felhívjuk figyelmét, hogy funkcióink az elvárásoknak megfelelően működnek. Ha beír egy kereszt- vagy vezetéknevet a mezőbe, vagy ha hiperhivatkozásként választ ki egy betűt, csak a személyzet tagjainak neve jelenik meg. Ha a hivatkozásra viszi az egérmutatót, az állapotsorban láthatja az egyedi azonosítót. Ha egy adott személyre kattint, a címsor megváltozik, és további információk jelennek meg az alkalmazottról.

    SQL injekció

    Azért adtunk hozzá reguláris kifejezést a keresőmezőnkhöz, hogy senki ne módosíthassa az SQL lekérdezésünket. A múltban ez a probléma gyakori volt, és a hackereknek sikerült saját SQL-lekérdezéseiket futtatniuk, miközben manipulálták az alkalmazást. Például, ha engedélyeztük az aposztróf használatát a területen, akkor a hacker egyszerűen törölheti az adatbázist a lekérdezéssel:

    "DON TABLE

    Mint már említettük, a reguláris kifejezés biztosítja, hogy a látogató csak kis- vagy nagybetűket írjon be első karakterként.

    Következtetésképpen

    A mai cikkben megvizsgáltuk, hogyan lehet webhelyen keresni, valamint:

    • Adatbázisok és kapcsolódó táblák létrehozása;
    • Adatbázis-kezelő eszközök használata, oszlopok létrehozása és adatok bevitele;
    • PHP alapú keresési űrlapok fejlesztése, amelyek ellenőrizhetik a bemeneti adatokat, a változók meglétét a kérésben, valamint csatlakozhatnak az adatbázishoz és megjeleníthetik az eredményeket a táblázatból;
    • Hogyan védheti meg alkalmazását és adatbázisát az SQL injekciótól.

    A cikkből megszerzett ismeretek felhasználásával könnyedén módosíthatja valaki más kódját, valamint szükség esetén bővítheti a keresési űrlap funkcionalitását.

    Ez a kiadvány a "cikk" fordítása Hogyan hozzunk létre keresési funkciót PHP és MySQL segítségével» egy barátságos projektcsapat készítette

    Jó Rossz

    Bootstrap Framework: Gyorsan reagáló elrendezés

    Lépésről lépésre videó tanfolyam a reszponzív elrendezés alapjairól a Bootstrap keretrendszerben.

    Tanuljon meg egyszerűen, gyorsan és hatékonyan szedni egy hatékony és praktikus eszköz segítségével.

    Töltsön fel rendelésre és kap pénzt.

    Ingyenes tanfolyam "Webhely a WordPressen"

    Szeretné elsajátítani a WordPress CMS-t?

    Szerezzen leckéket a WordPress webhelyek tervezéséről és elrendezéséről.

    Tanuljon meg dolgozni témákkal és szeletelje fel az elrendezést.

    Ingyenes videotanfolyam a weboldal tervezéséről, annak elrendezéséről és telepítéséről CMS WordPress-re!

    *Vigye az egeret a görgetés szüneteltetéséhez.

    Vissza előre

    Csináld magad webhelylátogatási számláló PHP-ben és MySQL-ben

    Ebben az oktatóanyagban megvizsgáljuk, hogyan készíthet egyszerű találati számlálót webhelyére. Egy példát PHP-ben fogunk megvalósítani adatbázis használatával.

    Nyilvánvaló, hogy most már számos kész megoldás létezik - kezdve élő internetÉs mail.ru, és a Yandex.Metrica.

    Mindezek a szolgáltatások sokféle statisztikai információt szolgáltatnak, de időnként mégis megkérnek, hogy mondjam el, hogyan készíthetsz akár nagyon egyszerű, de saját webhelylátogatás-számlálót.

    Nem fogunk több tucat és több száz paramétert rögzíteni, ahogyan a Yandexhez hasonló szörnyek teszik. Megmutatom a számláló létrehozásának elvét, és ha szeretné, szükség esetén további funkciókat is hozzáadhat.

    Az óra során felhasznált összes forrást a videóórával együtt az archívumhoz csatoljuk.

    Ezt a leckét most megtekintheti, vagy letöltheti számítógépére a fenti hivatkozás segítségével.

    A videó alatt megtalálja ennek a videós oktatóanyagnak a rövidített szöveges változatát.



    A lecke rövid áttekintése (a részletekért lásd a videót):

    Mire lesz szükségünk?

    1. 4 majdnem egyforma fájl, amelyek az oldal különböző oldalainak szerepét töltik be (index.php, contacts.php, about.php és uslugi.php)
    2. .htaccess fájl a szerver kódolásának UTF-8-ra történő beállításához
    3. css mappa stíluslappal. Van néhány egyszerű stílus az oldalainkhoz.
    4. Inc mappa a mellékelt fájlokkal. Három van belőlük:
    - adatbázis csatlakozási fájl
    - Egy fájl, amely az oldalon a megfelelő helyre lesz csatlakoztatva, hogy a számláló megjelenjen a képernyőn
    - A fő szkript, amely a számláló logikáját tartalmazza
    5. admin mappa index.php fájllal. Ebben a fájlban a webhelylátogatások statisztikáit tekinthetjük meg


    Hogyan működik?

    1. Hozzon létre egy projektet Denverben (vagy valódi szerveren)

    Létrehoztam egy hostot Denverben statisztikai, és a mappában www a webhely összes fájlja megtalálható.


    2. Hozzon létre egy adatbázist

    Térjünk át egy adatbázis létrehozására, ahol minden információ birtokában leszünk. Hívjuk fel statisztikaés hozzon létre benne két táblázatot.


    Ha nem szeretne táblákat manuálisan létrehozni, használhatja az adatbázis dump-ot (kiegészítő anyagokban mellékelve), és az adatbázis létrehozása után SQL lekérdezést futtathat az SQL lapon.


    Így, első táblázat létrehozása. Hívjuk fel ips- tárolja az IP-címek azonosítóit és maguknak az oldal látogatóinak IP-címeit.

    A táblázat 2 mezőt tartalmaz:

    Id_id (int (12), elsődleges kulcs, automatikus növekedés) - IP-cím azonosító;
    - ip_address (varchar (50)) - maga a látogató IP-címe.

    A táblázat 4 mezőt tartalmaz:

    visit_id (int (12), elsődleges kulcs, autoincrement) - látogatás azonosítója;
    dátum (dátum) - látogatás dátuma;
    hosts int(12) - hostok száma (egyedi látogatások);
    megtekintések int(12) - találatok száma (oldalmegtekintések).

    Ennek eredményeként az alap így fog kinézni:


    3. Alapvető rendelkezések

    Most, hogy elkészült az adatbázis, áttérhetünk néhány pontra, amelyekre építeni fogunk a szkript megírásakor:

    1. Az egyedi látogatót IP-cím alapján határozzuk meg. 1 IP-cím egyenlő 1 egyedi látogatóval (gazdagéppel).

    2. Az 1 napon belüli látogatások azonos IP-címmel nem növelik az adott nap egyedi látogatóinak számát.

    3. Az oldal bármely napközbeni látogatása 1-gyel növeli a látogatások (találatok) számlálóját (függetlenül attól, hogy a mai egyedi IP-címről történik-e vagy sem).

    4. A nap elejét a következőképpen határozzuk meg: amikor valaki belép a helyszínre, ellenőrizzük, hogy vannak-e ilyenek látogatások a mai dátumra vonatkozó bejegyzéseket. Ha nem, akkor az aktuális látogató az első látogató ezen a napon.

    5. Naponta egyszer az IP-címeket tartalmazó táblázat törlődik, hogy beírhassuk az aktuális nap IP-címeit, és statisztikát gyűjthessünk az oldal mai látogatásairól (ezt csak azután teszik meg, hogy az aktuális napi látogatóban az első ).

    4. Oldaloldal fájlokat írunk (index.php, contacts.php, about.php és uslugi.php)

    Mivel a webhely mind a 4 oldalfájlja majdnem azonos, csak az oldalt vesszük figyelembe index.php. A maradék három oldal contacts.php, about.php és uslugi.php) csak a címkékben különböznek címÉs h2, amelybe más oldalnevek is bele vannak írva.

    Tehát a fájl index.php:

    itthon

    Főoldal



    A legelején mellékeljük a fájlt count.php, amely a számláló összes logikáját tartalmazza.

    Alul, a zárócímke előtt test beletesszük a fájlt show_stats.php, amely magát a számlálókódot tartalmazza, azaz. ebben a fájlban az, amit a képernyőn fogunk megjeleníteni, már közvetlenül kialakult.

    Azok. az oldal minden oldalán egy számlálót jelenítünk meg, amely megmutatja, hány egyedi látogató és nézettség volt ma. Ezt a fájlt később elemezzük.

    5. Írjon stílusfájlt (style.css)

    #nav(padding-left: 0px; ) #nav li(kijelző: soron belüli; margó: 5px; kitöltés: 5px; betűcsalád: Verdana; betűméret: 15px; háttérszín: #F1EEF7; szegély: 1px tömör ezüst ; ) #nav li a(szövegdekoráció: nincs; ) #nav li:hover( háttérszín: #8D93EF; )

    A stílusok, mint láthatja, nagyon egyszerűek. Beállítjuk a behúzást, a betűméretet és a betűtípust, eltávolítjuk a menühivatkozások aláhúzását, és megváltoztatjuk a háttérszínt, ha az egérmutató egy listaelem felett van.

    Ezen kívül használjuk az ingatlant kijelző jelentéssel Sorban hogy az étlapunk függőleges helyett vízszintesnek tűnjön.

    6. Írja meg a .htaccess fájlt

    Minden esetre létrehozunk egy fájlt a webhely gyökerében .htaccess egyetlen direktívával az UTF-8 kódolás beállításához:

    AddDefaultCharset UTF-8

    Ez a lépés redundáns lehet, ha a kiszolgáló kódolása már erre az értékre van állítva.

    7. Csatlakozás az adatbázishoz (db.php)

    Fájlban db.php az adatbázis kapcsolat paraméterei meg vannak adva - gazdagép, adatbázis neve, bejelentkezési név és jelszó.

    Ugyanabban a fájlban a kapcsolat közvetlenül létrejön, és a kapcsolat azonosítója bekerül a változóba $db. Hiba esetén egy üzenet jelenik meg arról, hogy nem lehet csatlakozni az adatbázishoz.

    7. A fő fájlt logikával írjuk (count.php)

    Alább látható a kódja, amelyet röviden elemezünk:

    Tehát először csatoljuk a fájlt bd.php, amely kommunikációt biztosít az adatbázissal, majd elkezdjük írni a fő kódot.

    Az első dolgokat a globális tömbből kapjuk meg $_SERVER A látogató IP-címe és az aktuális dátum mentése.

    Szükségünk van a dátumra, hogy ellenőrizhessük, volt-e ma látogatás vagy sem – ez csak a következő lépésünk.

    Az első esetben (ha még nem voltak látogatások)és az aktuális látogató az első látogató ezen a napon, letisztítjuk a táblázatot az IP címekkel.

    Erre azért van szükségünk, hogy elkezdhessük a mai statisztikák gyűjtését.

    Ezen kívül beírjuk az adatbázisba az aktuális látogató IP-címét, illetve az aktuális napi adatbázisban a nézet és az egyedi látogatók mezőket egyenként, mert ez az első ember, aki ma hozta az első slágert és az első házigazdát.

    A második lehetőség az, amikor már ma voltak látogatások.

    Ebben az esetben ellenőrizzük, hogy az IP-cím, amelyről a hívás indul, benne van-e már az adatbázisban, mert csak az egyedi IP-címeket kell figyelembe vennünk egy napon belül.

    Ha kiderül, hogy ma már létezett ilyen IP-cím, akkor a nézettség aktuális értékéhez +1-et adunk, és semmi többet.

    Ha ma nem volt ilyen IP-cím (vagyis a látogató egyedi), akkor elmentjük az IP-címét az adatbázisba, és frissítjük mind az egyedi látogatók számának, mind a nézettségnek az értékeit (azaz növeljük mindkettő értékét). mezők egyenként).

    8. Írjon egy fájlt, amely megjeleníti a számlálót az oldalon (show_stats.php)

    Fájl show_stats.php az egyes oldalakon statisztikai információk megjelenítésére használjuk. Íme a kódja:

    ";

    Amint látja, ez a fájl sokkal egyszerűbb.

    Itt egyszerűen az aktuális dátumra vonatkozó statisztikát kapunk az adatbázisból, ami után a kapott tömb kulcsait használjuk $sor az egyedi látogatók számának megjelenítéséhez a képernyőn (mező házigazda) és nézetek (mező nézetek).

    9. Hozzon létre egy "admin panel" fájlt (index.php az admin mappában)

    Ebben a fájlban a látogatási statisztikákat táblázatos formában mutatjuk be.

    Ezenkívül megvalósítjuk a statisztikai adatok fogadásának lehetőségét egy bizonyos időtartamra. Alul látható a fájl kódja index.php:

    Statisztika

    A mai napra

    Az utolsó hétre

    Érvénytelen paraméter!

    "; ) // Adja meg a kódolást, amelyben az információ érkezzen a @mysqli_query adatbázisból ($db, "set character_set_results = "utf8""); // Az adatbázis lekérése az adatbázisból, dátum szerint rendezve fordított sorrendben az intervallum darabszámában $ res = mysqli_query($db, "SELECT * FROM `látogatások` ORDER BY `date` DESC LIMIT $interval"); // Táblasorok kimenetének generálása while ciklusban ($row = mysqli_fetch_assoc($ res)) ( visszhang " "; } } ?>
    dátum Egyedi Látogatók Nézetek
    " .$row["dátum"] . " " .$row["hosts"] . " " .$row["megtekintések"] . "

    Először is csatlakozunk az alaphoz. Ezután két linket alakítunk ki olyan paraméterekkel, amelyekre kattintva egy bizonyos időintervallumra (a példában: 1 napra és 1 hétre) kaphatunk adatokat.

    Ellenőrizzük a globális tömböt is $_GET az általunk átadott paraméter jelenlétére ( intervallum), és ha ennek a paraméternek az értéke nem szám, akkor egy megfelelő figyelmeztetést jelenítünk meg.

    Ha minden rendben van, akkor lekérdezést végzünk az adatbázisban, amelyből kivonjuk az összes rekordot dátum szerint rendezve fordított sorrendben a paraméterben megadott darabszámban intervallum.

    Ezt követően futtatjuk a hurkot mígés ebben alakítjuk ki a táblázat sorait, celláikban megjelenítve a kapott tömb elemeit $sor (dátum, házigazdákÉs nézetek), ami a megadott időszak összes látogatásának listáját eredményezi.

    Ha nem érti teljesen a rövid szöveges áttekintést, akkor tanulmányozza át teljes verzió leckét videó formátumban a fenti oldalon.

    Szkriptnyelv az Apache szerveren.

    index.php- a legáltalánosabb indítófájl a szkriptnyelv indításához PHP programozás tovább Web szerver, többnyire Apache.

    Egy kezdőnek csak annyit kell tudnia, hogy a legtöbb webhely (webhely) ezzel a fájllal (fájllal) kezdi meg munkáját. A fájl a webhely fő fájltárolójának gyökerébe kerül. Elhelyezhető könyvtárakon belül is ( Könyvtár). Ezután az Apache szerver először az index.php fájlt keresi és tölti be a kért könyvtárban, hacsak a szerver beállítási fájlja másként nem rendelkezik htaccess

    Hogyan lehet az Apache betölteni az index.php fájlt először (opciók)

    Hogyan kell helyesen csinálni:

    # így a munka csak az index.php DirectoryIndex index.php-vel kezdődik

    Sokan ezt csinálják:

    # indítsa el a parancsfájlok futtatását a DirectoryIndex index.php index.html index.shtml megadott sorrendjének ellenőrzésével

    Itt érdemes egy kicsit elmagyarázni a műveletek algoritmusát:

    1. Megpróbál betölteni index.php.
    2. Ha index.php Könyvtár), majd megpróbáljuk betölteni index.html.
    3. Ha index.html nem található a gyökérkönyvtárban ( Könyvtár), majd megpróbáljuk betölteni index.shtml

    Sok más lehetőség is van a letöltések kezelésére, de ez olvassa el a kibővített specifikációt. htaccess.

    Használja ezt a módszert, általában, abban az esetben, ha meg akarják védeni az index.php fájlt a különféle sebezhetőségek keresésétől, például:

    Index.php?mode=page&url="%20AND1="1

    Ha az index.php más, akkor az index.php után minden nem számít. De vannak más módok is annak meghatározására, hogy melyik fájl a fő rendszerindító fájl a WEB-kiszolgálón. Tehát ez a módszer nem jelent különösebb biztonságot. De a használat kényelmetlensége nő. Ezért ezt a módszert rendkívül óvatosan és átgondoltan kell kezelni.

    Hogyan lehet elrejteni az index.php-t htaccess-en keresztül

    az interneten Apache szerver kellene lennie beleértve mod_rewrite modul. A mai napig szinte mindenkinél engedélyezve van ez a modul, de minden esetben meg kell győződnie erről, különben nem fog működni. Ez a módszer többnyire SEO optimalizálók használják.

    Kód az index.php elrejtéséhez

    # engedélyezze a mod_rewrite modult RewriteEngine # mindenen, miután az index.php el lett küldve a fő parancssorba RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ # az index.php eltávolítása innen parancs sorígy csak hasznos információ maradhat meg RewriteRule ^index\.php$ http://website/

    Az összes kérés elküldése az index.php-n keresztül (átirányítás)

    Itt is általában semmi bonyolult

    # Engedélyezze a mod_rewrite RewriteEngine-t #-on, ha a kérés nem fájl, akkor az index.php-nek lesz elküldve # ez megtörténik, ha az index.php fájl nem kezel # mindent, ami szükséges, mivel gyakran fel kell osztani a projektet kisebb modulokba RewriteCond %(REQUEST_FILENAME) !-f # ha a kérés nem egy könyvtár, akkor az index.php címre kerül # ez azért történik, hogy a /images/-hez hasonló könyvtárak ne legyenek átirányítva az index.php RewriteCond %(REQUEST_FILENAME) címre ) !-d # minden mást elküld az index.php-re, és ott futtassa a RewriteRule (.*) index.php [L] fájlt

    Hogyan tölthető le az index.php

    Ha a WEB master megfelel a biztonsági szabályoknak Letöltés index.php ez tiltott a-priory.

    Az index.php fájlt csak akkor töltheti le, ha:

    • Helytelen beállítások a (.htaccess) fájlban. Itt csak a WEB mester a hibás.
    • A szerverhez FTP protokollon keresztül lehet hozzáférni. A leggyakoribb módja. Az áldozatot egy előre elkészített oldalra csábítják különféle ürügyekkel (egymilliót nyertél, fiókod blokkolva van a közösségi hálózatokon stb). Amint megérkezik a kívánt webhelyre, a cookie-k másolásra kerülnek Önről. Ezt követően már megpróbálják használni őket, hogy belépjenek a webhelyére. Ezt könnyű elkerülni, elég, ha nem használsz WEB felületeket az oldalad kezeléséhez, és nem telepítesz számítógépedre az általad ismeretlen szerzőktől származó programokat. ismeretlen források, például: mindenféle internetes gyorsító vagy kétes eszköztár a kétes hatékonyság érdekében, de nagyon erős kitartás a telepítéshez.
    • Egy további szkript telepítve van a szerveren (hátsó ajtó). Egy ilyen szkripten keresztül bármilyen fájlt lekérhet a szerverről, miközben azt a PHP kezelő nem hajtja végre. Az ilyen fájlok a tartalomkezelő rendszer (CMS) általános és ismert sérülékenységein keresztül tölthetők fel a szerverre. Például: WordPress, Joomla, DLE, Drupal, Codeigniter és így tovább. Továbbá egy avatar leple alatt egy speciálisan kialakított .gif egy fájl, amely később hívható, ismerve a helyét az áldozat szerverén. Ha a CMS nem dolgozza fel megfelelően az ilyen fájlokat, akkor rajta keresztül hozzáférhet a webhelyhez. Vagy egy széles körben hirdetett bővítmény van telepítve a CMS-re, mint például a WordPress, a Joomla és mások (például: php keresési index).

    Valami hasonló. Ha kérdése van, tegye fel őket a megjegyzésekben, és hamarosan magyarázó válasz jelenik meg ebben a cikkben.



    Betöltés...
    Top