Dozviete sa všetko o návštevníkovi. Zistite všetko o návštevníkovi Podrobné vyhľadávanie kontaktov

Najlepší spôsob, ako udržať používateľa na stránke, je nechať ho nájsť to, čo hľadá. Ak na to vytvoríte vhodný systém, úroveň preferencií vašich stránok porastie a používateľ sa určite vráti, aby našiel to, čo ho zaujíma.

Ukážem vám, ako vytvoriť jednoduchý, no funkčne efektívny vyhľadávací formulár, ktorý bude slúžiť na vyhľadávanie článkov na stránke. Výsledky sa na stránke objavia bez akéhokoľvek opätovného načítania, čo nepochybne je najlepšia cesta predloženie informácií.

Vytvorím 2 súbory: search.php ktorý bude obsahovať HTML a JavaScript. Druhý súbor, do_search.php, bude obsahovať kód PHP. Začnime vytvárať prvý súbor:

PHP, ukážka vyhľadávania jQuery

Skúste zadať slovo ajax


Výsledky pre


V tomto súbore sme vytvorili obvyklé HTML formulár ktorý posiela POST žiadosť na zadnej strane - do súboru do_search.php.

select_list($sql); if(count($row)) ( $end_result = ""; foreach($row as $r) ( $result = $r["title"]; $bold = " " . $word .""; $end_result .="

  • " .str_ireplace($word, $bold, $result) ."
  • "; ) echo $end_result; ) else ( echo "
  • Nenašlo sa nič pre vašu požiadavku
  • "; } } ?>

    Kód PHP obsahuje komentáre, ktoré vám uľahčia pochopenie fungovania skriptu. Ak sa v databáze nachádzajú zhody, zobrazíte ich používateľovi zvýraznením slov, ktoré používateľ hľadal, tučným písmom.

    Dajme tomu všetkému nejaké CSS:

    Telo( font-family:Arial, Helvetica, sans-serif; ) *( margin:0;padding:0; ) #container ( margin: 0 auto; width: 600px; ) a ( color:#DF3D82; text-decoration: 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 ( margin- top:20px; text-align:left; ) #searchresults ( text-align:left; margin-top:20px; display:none; font-family:Arial, Helvetica, sans-serif; font-size:16px; farba: #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 ; štýl písma: kurzíva; farba: #ff0000; ) h2 (pravý okraj: 70px; )

    Takže ste sa naučili, ako vytvoriť jednoduchý vyhľadávací formulár, ktorý funguje bez opätovného načítania stránky. Dúfam, že sa vám lekcia páčila.

    skúsená osoba 10. novembra 2013 o 13:29 hod

    Štatistiky návštev stránok bez služieb tretích strán

    • Vývoj webových stránok

    Dobrý deň! Myslím, že si ešte pamätajú, ako nedávno, po niekoľkých škytavkách servery Google, mnoho stránok tiež zlyhalo.
    V skutočnosti sa táto situácia môže vyskytnúť pri akejkoľvek službe na internete, takže je lepšie hrať na istotu ešte raz.
    Pre mnohé organizácie ovplyvňujú štatistiky návštevnosti webových stránok prácu marketérov, ktorí určujú, ktoré mestá majú väčší dopyt po produktoch atď. Čo ak však štatistická služba, ktorá sa na stránke používa, dočasne zlyhá?

    Existuje riešenie: použite svoj vlastný skript na zaznamenávanie návštev stránok spolu so službami tretích strán.

    Náš skript bude pozostávať z troch súborov:

    • stat.php - súčasťou každej stránky, ktorú je potrebné sledovať
    • stat.log - súbor, do ktorého sa bude zapisovať história návštev
    • seestats.php - súbor na prezeranie štatistík
    V skutočnosti je možné použiť akýkoľvek názov súboru.

    súbor stat.php
    $col_zap) array_shift($lines); $lines = $date."|.$bot."|.$ip."|.$home."|\r\n"; file_put_contents($subor, $riadky); ?>

    Aby sme nemuseli zakaždým manuálne kopať súbor stat.log, vytvorte súbor na zobrazenie štatistík návštev stránky:
    súbor seestats.php

    sizeof($file)) ( $col=sizeof($file); ) echo "Nedávne ".$col." návštevy stránok:"; ?> sizeof($file)-$col; $si--) ( $string=explode("|",$file[$si]); $q1[$si]=$string; // dátum a čas $q2[$si]=$string; // meno robota $q3[$si]=$string; // ip ip robota $q4[$si]=$string; // odozva návštevnej adresy " "; echo" "; echo" "; echo" ";) echo"
    Čas a dátum Údaje o návštevníkoch IP/proxy Navštívená adresa URL
    ".$q1[$si]."".$q2[$si]."".$q3[$si]."".$q4[$si]."
    "; echo"
    Zobraziť najnovšie 100 500"; echo" 1000 návštevy."; echo "
    vyhliadka všetky návštevy.
    "; echo ""; ?>

    To je všetko! Teraz, aj keď zlyhá liveinternet alebo Yandex.Metrica, vždy môžete zistiť, kto navštívil vaše stránky!

    Tagy: php, štatistiky, skript



    28.02.2016 11,1 tis

    Jednou z najobľúbenejších a najpotrebnejších funkcií na akejkoľvek stránke je vyhľadávanie realizované pomocou špeciálneho formulára. Táto funkcia umožňuje návštevníkom rýchlo nájsť na stránke obsah, ktorý ich zaujíma.

    Dnes vám chceme povedať, ako vyhľadávať na stránke pomocou špeciálneho formulára, ktorý bude vyhľadávať databázové tabuľky a zobrazovať informácie o aktuálnych manažéroch na stránke. Dozviete sa, ako vytvoriť databázovú tabuľku, ktorá bude obsahovať informácie o aktuálnom zamestnaní.

    Vytvorte vyhľadávacie formuláre Pomocník PHP a zoznámte sa s SQL ( Štruktúrovaný Dopytovací Jazyk) je špeciálny jazyk na zhromažďovanie, zaznamenávanie a úpravu informácií obsiahnutých v databázach. Skôr ako začnete, odporúčame vám stiahnuť súbory projektu.

    Čo budete potrebovať

    • Databázový nástroj MySQL.
    • Lokálny alebo vzdialený server s podporou PHP.
    • Textový editor.

    Vytvorenie databázy

    Ak si nie ste úplne istí, že si viete poradiť s databázou na svojom hostingu, kontaktujte hostiteľa so žiadosťou o pokyny alebo pomoc. Po vytvorení databázy ju budete musieť pripojiť, vytvoriť tabuľku a zapísať do nej potrebné údaje.

    Najpopulárnejším nástrojom na správu MySQL je PHP My Admin . Tento nástroj bude pre nášho dnešného sprievodcu stačiť.

    Vytvorte tabuľku

    Naša tabuľka by mala byť vytvorená v nasledujúcom formáte:

    názov stĺpca Dátový typ Dĺžka Null or Not Null primárny kľúč? Automatický prírastok
    ID INT 1 Nie Null Áno Áno
    Krstné meno Varchar 50 Nie Null č č
    priezvisko Varchar 50 Nie Null č č
    Email Varchar 50 Nie Null č č
    Telefónne číslo Varchar 15 Nie Null č č

    Databázová tabuľka sa skladá zo stĺpcov a riadkov, rovnako ako v Exceli. Prvý stĺpec umožňuje identifikovať údaje podľa názvu. Nasleduje stĺpec Dátové typy (údajový typ), ktorý nám udáva typ údajov obsiahnutých v stĺpci. V poli Dĺžka (Length) označuje maximálne množstvo pamäte (úložného priestoru) pre stĺpec tabuľky. Používame premenné, ktoré poskytujú väčšiu flexibilitu. Inými slovami, ak je dĺžka celého mena menšia ako 50 znakov, zaberie sa iba časť prideleného priestoru.

    A medzi personálnymi údajmi nemôžu byť prázdne hodnoty ( null, prázdny). Prvý riadok je zvýraznený žltou farbou, pretože stĺpec ID je náš primárny kľúč. Primárny kľúč v databáze zaručuje, že každý záznam bude jedinečný. Tento stĺpec sa tiež automaticky zvyšuje, čo znamená, že každému záznamu v našej databáze bude automaticky pridelené jedinečné číslo.

    Do tabuľky uvádzame zástupcov zamestnancov

    Keď pochopíte tabuľku, začnite ju napĺňať údajmi. Na zafixovanie postupu v mysli stačí 6 záznamov. Tu je môj vlastný príklad:

    ID stĺpca Krstné meno priezvisko Email Telefónne číslo
    2 Ryan Butler [e-mail chránený] 417-854-8547
    3 Brent Callahan [e-mail chránený] 417-854-6587

    Vývoj formy

    Ak chcete vytvoriť vyhľadávací formulár cez Google, otvorte akýkoľvek vhodný textový editor. Odporúčam používať bezplatný PSPad. Môžete použiť ľubovoľný textový editor, ktorý má zvýraznenie syntaxe. To značne uľahčí proces písania a ladenia PHP kódu. Keď vytvárate stránku pre vyhľadávací formulár, nezabudnite ju uložiť vo formáte .php, inak nebude kód PHP správne analyzovať. Po uložení dokumentu doň skopírujte nasledujúce označenie:

    Vyhľadávanie kontaktov:

    Podrobné vyhľadávanie kontaktov

    Môžete vyhľadávať podľa mena alebo priezviska



    Ak sa vyznáte v jazyku HTML, tak by vám malo byť všetko jasné aspoň po úvodnú značku formulára. Vo vnútri tohto tagu sa nachádza najdôležitejší prvok celého kódu – atribút action. Ako akciu nášho formulára sme zadali názov nášho súboru a potom sme použili reťazec dopytu „ ísť”.

    Kontrola kritérií

    Keď používateľ zadá meno alebo priezvisko a potom klikne na tlačidlo Odoslať, formulár odošle údaje sám sebe a pripojí reťazec dopytu „ ísť". Zapnuté tejto fáze skontrolujeme prítomnosť reťazca dotazu go. Ak je výsledok pozitívny, zobrazíme výsledky vyhľadávania.

    Pred zobrazením požadovaných výsledkov musíme ešte raz skontrolovať: (1) či bol formulár odoslaný, (2) či reťazec dotazu obsahuje hodnotu go, (3) či Vyhľadávací dopyt zadané malými alebo veľkými písmenami? Ak žiadna z kontrol neposkytuje pozitívny výsledok ( pravda), nie sme povinní podniknúť žiadne kroky.

    Najprv pridajte malý blok PHP kódu pre vyhľadávanie na stránkach za uzatváraciu značku.:



    Najprv otvoríme blok PHP kódu so značkou „“.

    Akýkoľvek PHP kód v rámci tohto páru značiek bude spustený serverom. Potom skontrolujeme, či bol formulár odoslaný:

    Zadajte hľadaný výraz

    "; } ?>

    Použijeme vstavanú funkciu isset, ktorá vráti boolovu hodnotu a vložíme do nej pole $_POST. Logický výraz v programovaní nám umožňuje získať buď pravdivé alebo nepravdivé.

    Ak teda funkcia vráti hodnotu true , formulár bol odoslaný a musíme pokračovať vo vykonávaní kódu ďalej. Ak funkcia vráti false , zobrazí sa chybové hlásenie. Uložte celý napísaný kód do súboru search_submit.php.

    Zadajte hľadaný výraz

    "; } } } ?>

    Do hlavného výrazu vnoríme ďalší podmienený booleovský výraz, ale tentoraz použijeme pole $_GET spolu s hodnotou „ ísť". Uložte zmeny do súboru search_go.php.

    Teraz sa musíme uistiť, že návštevníci môžu zadať prvé písmeno v reťazci dopytu iba veľké alebo len malé. Musíme tiež poskytnúť spôsob, ako zohľadniť kritériá vyhľadávania zadané návštevníkom. Najlepší spôsob, ako overiť vstup návštevníkov, je regulárny výraz:

    Do našich dvoch vnoríme ďalší podmienený booleovský výraz. Tentokrát na overenie vstupu používame regulárny výraz. Používame vstavanú funkciu preg_match s dvoma parametrami: regulárnym výrazom a poľom formulára, na ktoré sa má použiť overenie.

    V našom prípade to bude pole „ Name“( názov). Na získanie parametrov vyhľadávania zadaných návštevníkom vytvoríme premennú $name a naviažeme na ňu hodnotu POST s názvom poľa z formulára, ktorý bude použitý v dotaze SQL. Teraz sme implementovali: (1) odoslanie údajov formulára, (2) reťazec dopytu obsahuje hodnotu go a (3) návštevník zadal prvé veľké alebo malé písmeno. A všetky tieto kontroly sa dejú ešte pred vykonaním zmien v databáze. Uložte všetky zmeny.

    Pripojiť, vybrať, dotazovať a vrátiť výsledky z databázovej tabuľky

    Ak chcete získať údaje z tabuľky, musíte sa najprv pripojiť k serveru v skripte vyhľadávania na lokalite. Na to používame nasledujúci kód:

    ", "") alebo zomrieť (" Nemôžem sa pripojiť k databáze, pretože: " . mysql_error()); else( echo "

    Zadajte hľadaný výraz

    "; } } }?>

    Vytvoríme premennú $db a naviažeme ju na vstavanú funkciu MySQL mysql_connect , ktorá má tri parametre: server s databázou ( localhost, ak pracujete lokálne), prihlasovacie meno a heslo.

    Potom spustíme vstavanú funkciu PHP die , ktorá zastaví ďalšie spúšťanie kódu, ak nie je pripojenie k databáze. A zobraziť informácie o chybe spustením vstavaného Funkcia MySQL mysql_error , ktorý vráti dôvod chyby. Uložte súbor search_connectdb.php.

    Zadajte hľadaný výraz

    "; } } } ?>

    Vytvorte premennú s názvom mydb a naviažte ju na vstavanú Funkcie MySQL mysql_select_db a potom zadajte názov databázy, ktorú sme vytvorili predtým. Ďalej sa dotazujeme databázovú tabuľku pomocou SQL dotazu s premennou názvu obsahujúcou parametre vyhľadávania zadané návštevníkom:

    Zadajte hľadaný výraz

    "; } } } ?>

    Pri dopytovaní databázovej tabuľky vytvoríme premennú $sql a naviažeme ju na reťazec obsahujúci SQL dotaz. Na získanie hodnôt zo stĺpcov id a mena a priezviska z tabuľky kontaktov používame príkaz SELECT. Na zúženie vyhľadávania potom použijeme klauzulu WHERE spolu s hodnotami mena a priezviska.

    Spolu s operátorom LIKE používame znak percenta (%) – špeciálny znak, ktorý vracia 0 alebo viac znakov, ako aj premennú názvu z hľadaného reťazca. Výsledkom je LIKE ( v kombinácii so špeciálnym znakom) nájde akýkoľvek zodpovedajúci názov v databázovej tabuľke. Celý proces možno opísať takto: Z tabuľky kontaktov vyberieme mená a priezviská, ktoré sa zhodujú s tými, ktoré zadal návštevník". Uložte súbor search_query.php.

    Zadajte hľadaný výraz

    "; } } } ?>

    Vytvoríme premennú $result a priradíme jej hodnotu funkcie mysql_query() a vložíme ju do $query. Teraz je náš dotaz uložený v premennej result. Na výstup výsledku v PHP vytvoríme slučku a potom vydáme údaje v neusporiadanom zozname:

    n"; echo"

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

    Zadajte hľadaný výraz

    "; } } } ?>

    Najprv tvoríme pričom slučka, v nej vytvoríme premennú s názvom row a inicializujeme ju návratovou hodnotou funkcie mysql_fetch_array, ktorá prevezme premennú result, ktorá obsahuje náš SQL dotaz. V rámci cyklu while priraďujeme každej hodnote stĺpca hodnotu premennej s rovnakým názvom. Potom vypíšeme hodnoty do neusporiadaného zoznamu.

    Tu je potrebné poznamenať dve dôležité veci: (1) v rámci cyklu while nemusíte priraďovať hodnoty premenným poľa riadkov, pretože hodnoty možno prevziať priamo z poľa riadkov; (2) kotviaca značka, ktorú používame v názve súboru spolu s id a hlavným kľúčom. Dôvodom je, že mnohé položky vyhľadávania spočiatku nezobrazujú nič.

    Keďže meno a priezvisko zobrazujeme len pridaním ID na koniec našej kotvovej značky, môžeme ID použiť pre ďalší dotaz, ktorý zobrazí Ďalšie informácie o personáli. Uložte súbor a otestujte formulár PHP vyhľadávania na stránke ( search_display.php).

    Odstráňte záložky

    Výsledky sa zobrazujú ako neusporiadaný zoznam, no podstatou je, že nepotrebujeme karty. Aby ste sa toho zbavili, pridajte nasledujúce pravidlo CSS na úplný začiatok súboru v hlavičke:

    Hľadajte podľa písmen

    Na implementáciu hľadania pravopisu je potrebných len niekoľko riadkov kódu navyše. Pridajme túto pohodlnú funkciu pre návštevníkov. Zástupcov zamestnancov tak budú môcť vyhľadať podľa písmen obsiahnutých v mene alebo priezvisku.

    Za koncovú značku formulára pridajte nasledujúci riadok kódu:

    A | b | K

    Zviažeme štítok na reťazec dotazu pomocou kotvy a nastavte ho na konkrétne písmeno. Ak chcete implementovať funkciu vyhľadávania pravopisu, musíme pridať nasledujúci kód hneď za uzatváraciu zloženú zátvorku v pôvodnom skripte, ako je uvedené nižšie:

    )//Koniec skriptu vyhľadávacieho formulára if(isset($_GET["by"]))( $letter=$_GET["by"]; //Pripojenie k databáze $db=mysql_connect ("názov servera", " username" , "password") alebo zomrieť ("Nemôžem sa pripojiť k databáze, pretože: " . mysql_error()); //-Vyberte databázu $mydb=mysql_select_db("yourDatabase"); //-Vyhľadajte databázu table $sql="SELECT ID, First Name, LastName FROM Contacts WHERE First Name LIKE "%" . $letter . "%" ALEBO Priezvisko AKO "%" . $letter ."%""; //-Spustenie dotazu funkcie MySQL Query $ result=mysql_query($sql); //-Výsledky počítania $numrows=mysql_num_rows($result); echo "

    " .$numrows . " nájdené výsledky pre " . $letter."

    "; //-Spustite cyklus a zoraďte výsledky while($row=mysql_fetch_array($result))( $FirstName =$row["FirstName"]; $LastName=$row["Priezvisko"]; $ID=$ riadok[ "ID"]; //-Zobrazenie výsledku v poli echo "
      n"; echo"
    • " . "" .$FirstName . " " . $LastName ."
    • n"; echo"
    "; } }

    Tu sme zmenili štyri útržky kódu skriptu vyhľadávania na stránke:

    • Použijeme funkciu isset() a vložíme do nej pole $_GET a potom skontrolujeme hodnotu by;
    • Vytvorte premennú $písmeno a inicializujte jej hodnotu pomocou poľa $_GET;
    • Pridať premenné písmeno do SQL dotazu;
    • Premennú písmeno určíme vo vnútri výrazu, v ktorom dostaneme spočítaný počet riadkov.

    Uložte súbor search_byletter.php a skontrolujte výsledok.

    Vyhľadajte konkrétneho zamestnanca

    Ak chcete zobraziť informácie o zvyšku personálu, ktorý sa prenáša cez jedinečné ID v rámci nášho odkazu, musíme pridať nasledujúci kód hneď za uzatváraciu zloženú zátvorku v skripte písmen, ako je uvedené nižšie:

    )//Koniec skriptu if(isset($_GET["id"]))( $contactid=$_GET["id"]; //Pripojenie k databáze $db=mysql_connect ("názov servera", "používateľské meno" , " password") alebo zomrieť ("Nemôžem sa pripojiť k databáze, pretože: " . mysql_error()); //-vyberte databázu na použitie $mydb=mysql_select_db("yourDatabase"); //- Dopyt do databázy table $sql="SELECT * FROM Contacts WHERE ID=" .$contactid; //- Spustenie dotazu na funkciu mysql_query() $result=mysql_query($sql); //- Spustenie cyklu a triedenie výsledkov while($row=mysql_fetch_array ($result))( $FirstName =$riadok["Meno"]; $Priezvisko=$riadok["Priezvisko"]; $PhoneNumber=$riadok["TelefónneNum"]; $Email=$riadok["E-mail"]; //- Zobraziť výsledok v poli echo "

    "; } }

    Tu sme zmenili štyri časti kódu:

    • Na kontrolu hodnoty ID v poli $_GET používame funkciu isset();
    • Vytvorte premennú $contactid a inicializujte ju pomocou poľa $_GET;
    • V tabuľke vyberte všetko, čo je označené hviezdičkou * . Hviezdička je skrátený zápis v SQL, ktorý znamená " dajte mi všetky stĺpce a riadky z tabuľky". Aby sme určili, aké informácie sa majú zobraziť, uvádzame premennú contactid na konci príkazu SQL;
    • Zobrazujeme ďalšie informácie o každom zástupcovi personálu.

    Uložte súbor search_byid.php a skontrolujte výsledok.

    Upozorňujeme, že naša funkcia funguje podľa očakávania. Keď do poľa zadáte meno alebo priezvisko, alebo keď vyberiete písmeno ako hypertextový odkaz, zobrazia sa iba mená zamestnancov. Ak umiestnite kurzor myši na odkaz, v stavovom riadku uvidíte jedinečné ID. Ak kliknete na konkrétnu osobu, panel s adresou sa zmení a zobrazia sa ďalšie informácie o tomto zamestnancovi.

    SQL injekcia

    Dôvod, prečo sme do nášho vyhľadávacieho poľa pridali regulárny výraz, je ten, že nikto nemôže zasahovať do nášho dopytu SQL. V minulosti bol tento problém bežný a hackerom sa pri manipulácii s vašou aplikáciou podarilo spustiť vlastné SQL dotazy. Ak by sme napríklad povolili možnosť použitia apostrofu v našom poli, hacker by mohol databázu jednoducho odstrániť pomocou dotazu:

    „PUSTITE TABUĽKU

    Ako už bolo uvedené, regulárny výraz zabezpečuje, že návštevník môže ako prvý znak zadať iba malé alebo veľké písmená.

    Na záver

    V dnešnom článku sme sa pozreli na to, ako vykonať vyhľadávanie na stránke, ako aj na:

    • Vytvárajte databázy a súvisiace tabuľky;
    • Používajte nástroje na správu databázy, vytvárajte stĺpce a zadávajte údaje;
    • Vyvíjajte vyhľadávacie formuláre založené na PHP, ktoré dokážu kontrolovať vstupné údaje, prítomnosť premenných v požiadavke, ako aj pripojenie k databáze a zobrazenie výsledkov z tabuľky;
    • Ako ochrániť vašu aplikáciu a databázu pred SQL injection.

    Pomocou znalostí získaných z tohto článku môžete ľahko upraviť kód niekoho iného a v prípade potreby rozšíriť funkčnosť vyhľadávacieho formulára.

    Táto publikácia je prekladom článku " Ako vytvoriť funkciu vyhľadávania pomocou PHP a MySQL» pripravil priateľský projektový tím

    Dobrý zlý

    Bootstrap Framework: Rozloženie s rýchlou odozvou

    Video kurz krok za krokom o základoch responzívneho rozloženia v rámci Bootstrap.

    Naučte sa sádzať jednoducho, rýchlo a efektívne pomocou výkonného a praktického nástroja.

    Nalíčte sa na objednávku a získajte peniaze.

    Bezplatný kurz „Webová stránka na WordPress“

    Chcete ovládať WordPress CMS?

    Získajte lekcie dizajnu a rozloženia webových stránok na WordPress.

    Naučte sa pracovať s témami a rozdeľte rozloženie.

    Bezplatný video kurz kreslenia dizajnu webových stránok, ich rozloženia a inštalácie na CMS WordPress!

    *Prejdením myšou pozastavíte rolovanie.

    Späť dopredu

    Urob si sám počítadlo návštev stránok v PHP a MySQL

    V tomto návode sa pozrieme na to, ako môžete vytvoriť jednoduché počítadlo návštev pre vašu stránku. Príklad implementujeme v PHP pomocou databázy.

    Je zrejmé, že teraz existuje veľa hotových riešení - od živý internet A mail.ru a končiac Yandex.Metrica.

    Všetky tieto služby poskytujú množstvo rôznych štatistických informácií, ale stále som pravidelne požiadaný, aby som vám povedal, ako si môžete vytvoriť, aj keď veľmi jednoduché, vlastné počítadlo návštev stránok.

    Neopravíme desiatky a stovky parametrov, ako to robia príšery ako Yandex. Ukážem vám princíp tvorby počítadla a ak chcete, môžete si tam v prípade potreby pridať ďalšie funkcie.

    Všetky zdroje použité v priebehu lekcie sú priložené k archívu spolu s video lekciou.

    Túto lekciu si môžete pozrieť hneď teraz alebo si ju stiahnuť do počítača pomocou odkazu vyššie.

    Pod videom nájdete skrátenú textovú verziu tohto videonávodu.



    Stručný prehľad lekcie (všetky podrobnosti nájdete vo videu):

    Čo budeme potrebovať?

    1. 4 takmer identické súbory, ktoré zohrávajú úlohu rôznych stránok webu (index.php, contacts.php, about.php a uslugi.php)
    2. .htaccess na nastavenie kódovania servera na UTF-8
    3. css priečinok so štýlom. Pre naše stránky existuje niekoľko jednoduchých štýlov.
    4. Inc priečinok so zahrnutými súbormi. Sú tri z nich:
    - súbor pripojenia k databáze
    - Súbor, ktorý bude pripojený na správnom mieste na stránke, aby sa na obrazovke zobrazilo počítadlo
    - Hlavný skript, ktorý obsahuje logiku počítadla
    5. admin priečinok so súborom index.php. V tomto súbore si budeme môcť prezerať štatistiky návštevnosti stránok


    Ako to funguje?

    1. Vytvorte projekt v Denveri (alebo na skutočnom serveri)

    Vytvoril som hostiteľa v Denveri s názvom štatistické a v priečinku www sú umiestnené všetky súbory lokality.


    2. Vytvorte databázu

    Prejdime k vytvoreniu databázy, kde budeme mať všetky informácie. Zavolajme jej štatistiky a vytvorte v ňom dve tabuľky.


    Ak nechcete ručne vytvárať tabuľky, môžete použiť výpis databázy (priložený v ďalších materiáloch) a po vytvorení databázy spustiť SQL dotaz na záložke SQL.


    takže, vytvoriť prvú tabuľku. Zavolajme jej ips- bude uchovávať identifikátory IP adries a IP adresy samotných návštevníkov stránok.

    Tabuľka bude mať 2 polia:

    Id_id (int (12), primárny kľúč, automatické zvýšenie) - identifikátor IP adresy;
    - ip_address (varchar (50)) - samotná IP adresa návštevníka.

    Tabuľka bude mať 4 polia:

    visit_id (int (12), primárny kľúč, autoincrement) - ID návštevy;
    dátum (dátum) - dátum návštevy;
    hostitelia int(12) - počet hostiteľov (jedinečné návštevy);
    views int(12) - počet prístupov (zobrazení stránky).

    V dôsledku toho bude základňa vyzerať takto:


    3. Základné ustanovenia

    Teraz, keď je databáza vytvorená, môžeme prejsť k niekoľkým bodom, z ktorých budeme pri písaní skriptu stavať:

    1. Jedinečného návštevníka určíme podľa IP adresy. 1 IP adresa sa rovná 1 jedinečnému návštevníkovi (hostiteľovi).

    2. Návštevy v rámci 1 dňa s rovnakou IP adresou nezvyšujú počet jedinečných návštevníkov za daný deň.

    3. Akákoľvek návšteva stránky počas dňa zvyšuje počítadlo návštev (zásahov) o 1 (bez ohľadu na to, či ide o jedinečnú IP adresu pre dnešok alebo nie).

    4. Začiatok dňa určíme takto: keď osoba vstúpi na stránku, skontrolujeme, či tam sú návštev akékoľvek záznamy pre dnešný dátum. Ak nie, aktuálny návštevník je prvým návštevníkom v tento deň.

    5. Raz za deň sa vymaže tabuľka s IP adresami, aby sme do nej mohli zadať IP adresy aktuálneho dňa a zbierať štatistiky o dnešných návštevách stránky (to sa robí hneď po zistení, že prvá návšteva aktuálneho dňa ).

    4. Píšeme súbory stránok (index.php, kontakty.php, about.php a uslugi.php)

    Keďže všetky 4 súbory stránok lokality sú takmer identické, budeme brať do úvahy iba stránku index.php. Zvyšné tri strany kontakty.php, about.php a uslugi.php) sa líšia iba značkami titul A h2, v ktorom sú napísané ďalšie názvy stránok.

    Takže súbor index.php:

    Domov

    Hlavná stránka



    Na úplný začiatok zaradíme súbor počítať.php, ktorý obsahuje všetku logiku počítadla.

    V spodnej časti, pred záverečnou značkou telo zahrnieme súbor show_stats.php, ktorý obsahuje samotný kód počítadla, t.j. v tomto súbore je už priamo sformované to, čo budeme zobrazovať na obrazovke.

    Tie. na každej stránke webu zobrazíme počítadlo, ktoré bude udávať, koľko jedinečných návštevníkov a zobrazení bolo dnes. Tento súbor budeme analyzovať neskôr.

    5. Napíšte súbor štýlu (style.css)

    #nav( padding-left: 0px; ) #nav li( display: inline; margin: 5px; padding: 5px; font-family: Verdana; font-size: 15px; background-color: #F1EEF7; border: 1px solid silver ; ) #nav li a( text-decoration: none; ) #nav li:hover( background-color: #8D93EF; )

    Štýly, ako vidíte, sú veľmi jednoduché. Nastavíme odsadenie, veľkosť písma a typ písma, odstránime podčiarknutie odkazov ponuky a zmeníme farbu pozadia, keď je kurzor myši nad položkou zoznamu.

    Okrem toho nehnuteľnosť využívame displej so zmyslom v rade aby naše menu vyzeralo horizontálne namiesto vertikálne.

    6. Napíšte súbor .htaccess

    Pre každý prípad vytvoríme súbor v koreňovom adresári stránky .htaccess s jednou direktívou na nastavenie kódovania UTF-8:

    AddDefaultCharset UTF-8

    Tento krok môže byť zbytočný, ak už bolo kódovanie servera nastavené na túto hodnotu.

    7. Pripojte sa k databáze (db.php)

    V súbore db.phpšpecifikujú sa parametre pripojenia k databáze - hostiteľ, názov databázy, prihlasovacie meno a heslo.

    V tom istom súbore sa spojenie vytvorí priamo a do premennej sa zadá identifikátor spojenia $ db. V prípade chyby sa zobrazí hlásenie, že nie je možné pripojiť sa k databáze.

    7. Napíšeme hlavný súbor s logikou (count.php)

    Nižšie je uvedený jeho kód, ktorý stručne analyzujeme:

    Takže najprv zahrnieme súbor bd.php, ktorý zabezpečuje komunikáciu s databázou, po ktorej začneme písať hlavný kód.

    Prvé veci získame z globálneho poľa $_SERVER IP adresa návštevníka a uloženie aktuálneho dátumu.

    Potrebujeme dátum, aby sme skontrolovali, či dnes boli nejaké návštevy alebo nie - toto je len náš ďalší krok.

    V prvom prípade (ak ešte neboli žiadne návštevy) a aktuálny návštevník je prvým návštevníkom v tento deň, čistíme tabuľku s IP adresami.

    Potrebujeme to, aby sme mohli začať zbierať štatistiky pre dnešok.

    Okrem toho do databázy zadáme IP adresu aktuálneho návštevníka a do databázy pre aktuálny deň vkladáme do polí zobrazení a jedinečných návštevníkov po jednom, pretože toto je prvá osoba, ktorá dnes priniesla prvý hit a prvý hostiteľ.

    Druhá možnosť je, keď už dnes boli návštevy.

    V tomto prípade skontrolujeme, či IP adresa, z ktorej sa hovor uskutočňuje, je už v databáze, pretože musíme brať do úvahy iba jedinečné adresy IP v rámci jedného dňa.

    Ak sa ukáže, že takáto IP adresa už dnes existovala, tak k aktuálnej hodnote zhliadnutí pripočítame +1 a nič viac.

    Ak dnes takáto IP adresa neexistovala (t.j. návštevník je jedinečný), potom jeho IP uložíme do databázy a aktualizujeme hodnoty počtu jedinečných návštevníkov aj zobrazení (t.j. zvýšime hodnoty oboch polia po jednom).

    8. Napíšte súbor, ktorý zobrazí počítadlo na stránke (show_stats.php)

    Súbor show_stats.php používame na každej zo stránok na zobrazenie štatistických informácií. Tu je jeho kód:

    ";

    Ako vidíte, tento súbor je oveľa jednoduchší.

    Tu jednoducho získame štatistiku o aktuálnom dátume z databázy, po ktorej použijeme kľúče výsledného poľa $riadok na zobrazenie počtu jedinečných návštevníkov na obrazovke (pole hostiteľ) a pohľady (pole názory).

    9. Vytvorte súbor „admin panel“ (index.php v priečinku admin)

    V tomto súbore uvádzame štatistiku návštevnosti v tabuľkovej forme.

    Okrem toho implementujeme možnosť prijímať štatistiky za určité časové obdobie. Nižšie je uvedený kód súboru index.php:

    Štatistiky

    Pre dnešok

    Za posledný týždeň

    Neplatný parameter!

    "; ) // Zadajte kódovanie, v ktorom budú informácie prijímané z databázy @mysqli_query ($db, "set character_set_results = "utf8""); // Získajte databázu z databázy a zoraďte ich podľa dátumu v opačnom poradí v počte kusov intervalu $ res = mysqli_query($db, "SELECT * FROM `navštív` ORDER BY `date` DESC LIMIT $interval"); // Generovanie výstupu riadkov tabuľky v cyklu while ($row = mysqli_fetch_assoc($ res)) ( echo " "; } } ?>
    dátum Jedineční návštevníci Názory
    " .$row["dátum"] ." " .$row["hostitelia"] ." " .$row["zobrazenia"] ."

    Najprv sa pripojíme k základni. Potom vytvoríme dva odkazy s parametrami, ktoré nám po kliknutí na ne umožnia prijímať dáta za určitý časový interval (v príklade: za 1 deň a za 1 týždeň).

    Kontrolujeme aj globálne pole $_GET pre prítomnosť parametra, ktorý sme odovzdali ( interval) a ak hodnota tohto parametra nie je číslo, zobrazí sa príslušné upozornenie.

    Ak je všetko v poriadku, vykonáme dotaz do databázy, z ktorej extrahujeme všetky záznamy zoradené podľa dátumu v opačnom poradí v počte kusov zadanom v parametri interval.

    Potom spustíme slučku zatiaľ čo a v ňom vytvoríme riadky tabuľky, pričom v ich bunkách zobrazíme prvky výsledného poľa $riadok (dátum, hostitelia A názory), výsledkom čoho je zoznam všetkých návštev za zadané časové obdobie.

    Ak stručnému prehľadu textu úplne nerozumiete, tak študujte plná verzia lekcia vo formáte videa na tejto stránke vyššie.

    Skriptovací jazyk na serveri Apache.

    index.php- najbežnejší štartovací súbor na spustenie skriptovacieho jazyka PHP programovanie na Webový server, väčšinou Apache.

    Pre začiatočníka stačí vedieť, že väčšina stránok (stránok) začína svoju prácu s týmto súborom (súborom). Súbor je umiestnený v koreňovom adresári hlavného úložiska súborov lokality. Môže sa nachádzať aj v adresároch ( adresár). Potom server Apache vyhľadá a načíta najskôr index.php v požadovanom adresári, pokiaľ nie je v súbore nastavení servera uvedené inak htaccess

    Ako prinútiť Apache najprv načítať index.php (možnosti)

    Ako to urobiť správne:

    # takže práca začína iba s index.php DirectoryIndex index.php

    Mnoho ľudí to robí:

    # začnite spúšťať skripty skontrolovaním zadanej sekvencie DirectoryIndex index.php index.html index.shtml

    Tu stojí za to trochu vysvetliť algoritmus akcií:

    1. Pokúšam sa načítať index.php.
    2. Ak index.php adresár), potom sa pokúsime načítať index.html.
    3. Ak index.html nenašiel sa v koreňovom adresári ( adresár), potom sa pokúsime načítať index.shtml

    Existuje mnoho ďalších možností na správu sťahovania, ale toto by si malo prečítať rozšírenejšie špecifikácie. htaccess.

    Použite túto metódu, zvyčajne, v prípade, že chcú index.php chrániť pred skenovaním rôznych zraniteľností, napr.

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

    Ak je index.php iný, potom na všetkom po index.php nezáleží. Existujú však aj iné spôsoby, ako určiť, ktorý konkrétny súbor je hlavným spúšťacím súborom na webovom serveri. Takže z tejto metódy nie je žiadna osobitná bezpečnosť. Ale zvyšuje sa nepohodlie pri používaní. Preto by sa s touto metódou malo zaobchádzať s mimoriadnou opatrnosťou a ohľaduplnosťou.

    Ako skryť index.php cez htaccess

    na webe server Apache to by malo byť zahrnuté modul mod_rewrite. K dnešnému dňu má tento modul povolený takmer každý, ale v každom prípade sa o tom musíte uistiť, inak to nebude fungovať. Táto metóda väčšinou používané SEO optimalizátormi.

    Kód na skrytie index.php

    # povoliť modul mod_rewrite RewriteEngine na # všetko po odoslaní index.php do hlavného príkazového riadku RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.php\ HTTP/ # odstrániť index.php z príkazový riadok aby zostali len užitočné informácie RewriteRule ^index\.php$ http://website/

    Ako posielať všetky požiadavky cez index.php (presmerovanie)

    Aj tu vo všeobecnosti nie je nič zložité

    # Povoľte mod_rewrite RewriteEngine na # ak požiadavka nie je súbor, odošle sa na index.php # toto sa vykoná, ak váš súbor index.php nespracúva všetko #, čo sa vyžaduje, pretože je často potrebné rozdeliť projekt do menších modulov RewriteCond %(REQUEST_FILENAME) !-f # ak požiadavka nie je adresár, bude odoslaná do index.php # toto sa robí tak, aby adresáre ako /images/ neboli presmerované na index.php RewriteCond %(REQUEST_FILENAME ) !-d # všetko ostatné pošlite na index.php a tam spustite RewriteRule (.*) index.php [L]

    Ako stiahnuť index.php

    Ak WEB master spĺňa bezpečnostné pravidlá Stiahnuť ▼ index.php je zakázané a-priorstvo.

    Index.php si môžete stiahnuť iba ak:

    • Nesprávne nastavenia v (.htaccess). Tu je na vine len majster webu.
    • K serveru je prístup cez FTP protokol. Najbežnejší spôsob. Obeť je pod rôznymi zámienkami vylákaná na predpripravenú stránku, ako sa patrí (vyhrali ste milión, váš účet je zablokovaný v r. v sociálnych sieťach a tak ďalej). Hneď ako sa dostanete na požadovanú stránku, cookies sa od vás skopírujú. Potom sa ich pokúsia použiť na vstup na vašu stránku. Tomu sa dá ľahko vyhnúť, stačí nepoužívať WEB rozhrania na správu vašej stránky a neinštalovať si do počítača žiadne programy od vám neznámych autorov neznáme zdroje, napríklad: všetky druhy internetových urýchľovačov alebo pochybný panel nástrojov pre pochybnú efektivitu, ale veľmi silnú vytrvalosť pri jeho inštalácii.
    • Na server je nainštalovaný ďalší skript (zadné dvere). Prostredníctvom takéhoto skriptu môžete získať akýkoľvek súbor zo servera, pričom ho nespúšťa obslužný program PHP. Takéto súbory je možné nahrať na server prostredníctvom bežných a známych zraniteľností systému na správu obsahu (CMS). Napríklad: WordPress, Joomla, DLE, Drupal, Codeigniter a tak ďalej. Ďalej, pod rúškom avatara, špeciálne vytvorený .gif súbor, ktorý možno neskôr zavolať, pričom bude poznať jeho umiestnenie na serveri obete. Ak CMS správne nespracuje takéto súbory, potom prostredníctvom neho môžete získať potrebný prístup na stránku. Buď je v CMS nainštalovaný široko propagovaný doplnok, ako je WordPress, Joomla a ďalšie (napríklad: index vyhľadávania php), ktorý, zdá sa, robí svoju prácu, no zároveň presakuje údaje o stránke svojim vývojárom, čím im umožňuje používať stránku tak, ako chcú.

    Niečo také. Ak máte otázky, opýtajte sa ich v komentároch a čoskoro sa v tomto článku objaví vysvetľujúca odpoveď.



    Načítava...
    Hore