| | |
| Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
Autor | Správa |
---|
Registrovaný: 02.05.08 Prihlásený: 08.02.12 Príspevky: 205 Témy: 54 Bydlisko: MpBA |
ahoj...mohli by ste mi napísať že aby sa mi v tomto počítadle zapisovala do súboru IP adresa???
Kód: <? $file = "pocet.txt"; $open_file = fopen ($file,'r+'); $pocet = fread ($open_file, '100("file")') + 1; rewind ($open_file); / fwrite ($open_file, $pocet); fclose ($open_file); ?>
<? include $file; ?>
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 03.06.2009 18:44 | |
|
IP adresa je v premennej Kód: $_SERVER['REMOTE_ADDR']
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Zdravim,
Je to len klasicky textovy subor, ktory sati prepisuje. Ak by si tam chcel ulozit IP adresu tak by sa ti ukladala iba IP posledneho navstevnika. Co takto to riesit napr. cez databazu? Je to ovela lepsie riesenie. Chcel to jednu tabulku a jeden INSERT. A mozes si tam ukladat nielen IP ale napr. aj OS navstevnika, Web Browser atd. Posluzia ti na to superglobalna premenna $_SERVER.
Alebo alternativa ak chces pocitadlo chod na www.pocitadlo.sk a tam si ho jednoducho vyvoris a kod si skopcis na tvoj web.
|
|
Registrovaný: 11.08.07 Príspevky: 4088 Témy: 34 Bydlisko: Brno | Napísal Ďuri: 03.06.2009 18:47 | |
|
Neprepisuje sa, subor sa otvara v mode r+. DB je prilis pomala, nepouzival by som ju na taketo zbytocnosti.
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Pardon citanie - zapis.
Ja si zase vravim preco nie. A vobec nechapem vete DB je prilis pomala, nepouzival by som ju na taketo zbytocnosti.. Ved ked sa uci a ma chut nieco sam vytvorit tak preco nie. Mozno riesis jadrovu fyziku no je vec nazoru ci to je alebo nie je zbytocnost. Mozno ked si robil prvy insert tak tam boli nahdzane horsie veci. A o pomalosti by som taktiez pomlcal.
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
A mas tam maly syntax error.Asi ked si mazal komentar
Kód: rewind ($open_file); /
(bez /)
|
|
Registrovaný: 02.05.08 Prihlásený: 08.02.12 Príspevky: 205 Témy: 54 Bydlisko: MpBA | Napísal autor témy dessert: 03.06.2009 19:49 | |
|
jj vsimol som si //
|
|
Registrovaný: 02.05.08 Prihlásený: 08.02.12 Príspevky: 205 Témy: 54 Bydlisko: MpBA | Napísal autor témy dessert: 03.06.2009 19:51 | |
|
a ano chcel som si nieco vytvoriť sám
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Vyborna cesta ako sa naucit zakladny prace s databazou. Priblizne ako to spravis som ti napisal hore. Problematiku si prestuduj. Ak by si potrebol pomoc napis - spravim ti mini tutorial.
Vela stastia
|
|
Registrovaný: 02.05.08 Prihlásený: 08.02.12 Príspevky: 205 Témy: 54 Bydlisko: MpBA | Napísal autor témy dessert: 04.06.2009 16:11 | |
|
ten mini tutorial by bol viac než vhodnýý
|
|
Registrovaný: 21.02.07 Prihlásený: 21.02.10 Príspevky: 3984 Témy: 96 |
Raz som robil taký tutorial ... neviem či sa to tu ešte nájde ... skús pohľadať ďalekú históriu, pokil nie tak už dlhšie uvažujem že vytvorím novú verziu
|
|
Registrovaný: 01.01.09 Prihlásený: 22.06.11 Príspevky: 87 Témy: 25 |
suhlasim s vami, a najma s jurom, kedze aj podla mna je DB zbytocnost ale namiesto fopen ja pouzivam radsej ine fcie nedavno som podobny skript potreboval tak ho tu hodim
Kód: <?php $ip = $_SERVER['REMOTE_ADDR']; printf($ip); $ipv = $ip . "_____ _____<br>"; $file = 'ip.txt'; $write = file_put_contents($file, $ipv, FILE_APPEND | LOCK_EX); $read = file_get_contents('ip.txt'); echo "<br><br>Predchadzajuce IP adresy:<br>".$read; ?>
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Zdravím,
Tak ti napíšem mini tutorial ako si niečo také môžeš vytvoriť. (Aj keď si chlapci myslia, že je to zbytočnosť dúfam, že ti to aspoň trošku pomôže) .Počítadlo si môžeš vylepšovať, dolaďovať a prispôsobovať podľa seba. Predložím ti iba jeden z návrhov, ktorý nie je príliš sofistikovaný ani dokonalý ale získaš obraz o danej problematike a pochopíš súvislosti!
Takže začneme.
Na začiatok si povieme, čo chceme. Takže jednoduché počítadlo, ktoré by nám počítalo vstupy. Dobré by bolo ak by jeden návštevník bol braný za jeden vstup napriek tomu, že by prechádzal po stránke viac krát, po prípade by si klikol viac krát na indexovú stránku. Ďalej si uložíme informácie o jeho prehliadači, OS a dátume kedy bol na stránke. (čas neuvediem, no môžeš si ho tam dať. Taktiež si môžeš uviesť aj URL z ktorej sa na stránku odkazoval. Pomôže ti superglobálna premenná $_SERVER[‘HTTP_REFERER’] a mnoho ďalšieho podľa chuti).
Všetko vytvorím v jednom PHP skripte pre lepšiu orientáciu a pochopenie. Samozrejme, že to môžeš porozdeľovať a dobré je si potom už naostro vytvoriť funkciu, ktorú budeš len volať.
Najskôr vytvoríme tabuľku:
Kód: CREATE TABLE `pocitadlo` ( `id` BIGINT NOT NULL AUTO_INCREMENT , `ip` VARCHAR( 25 ) NOT NULL , `prehliadac` VARCHAR( 50 ) NOT NULL , `datum` VARCHAR( 15 ) NOT NULL , PRIMARY KEY ( `id` ) ); Potom si vytvoríme PHP súbor napr. tutorial.phpAko prvé nadviažeme spojenie s databázou: Kód: $server = "***"; $uzivatel = "***"; $heslo = "***"; $databaza = "***"; $tabulka = "pocitadlo";
@mysql_connect($server, $uzivatel, $heslo) or die("Nemozem nadviazat spojenie s databazou!"); @mysql_select_db($databaza) or die("Nemozem nadviazat spojenie s databazou!"); Ako ďalšie si uložíme informácie o užívateľovi do premenných: - Dátum prihlásenia - IP adresa užívateľa - Prehliadač a OS užívateľa Kód: $datum = date("j.m.Y"); $ip = $_SERVER['REMOTE_ADDR']; $prehliadac = $_SERVER['HTTP_USER_AGENT']; V tomto kroku si overíme či tu už dnes užívateľ náhodou nebol. Teda vyberieme záznam na základe jeho IP a dnešného dátumu. Ak existuje nič sa nestane. Ak neexistuje Kód: $uz_tu_dnes_bol = MySQL_Query("SELECT count(*) FROM $tabulka WHERE ip = '$ip' AND datum = '$datum'"); $vysledok = MySQL_Result($uz_tu_dnes_bol, "id");
if ($vysledok > 0){ $novy_navstevnik = "nie"; }else{ $novy_navstevnik = "ano"; } uložíme si ho do databázy... Kód: if($novy_navstevnik == "ano"){
$result = mysql_query(" INSERT INTO `mojadatabaza`.`pocitadlo` ( `id` , `ip` , `prehliadac` , `datum`
) VALUES ( NULL , '$ip', '$prehliadac', '$datum' );") or die("Neulozil som Ta do databazy!"); } A nakoniec si vypíšeme počet návštevníkov, ktorých máme uložených v databáze. Teda vytiahneme výsledky z databázy a zobrazíme Kód: @$pocet_navstev = MySQL_Query("SELECT Count(id) FROM $tabulka"); $vysledok_pocet_navstev = MySQL_Result($pocet_navstev,0);
echo "Vitajte! Ste $vysledok_pocet_navstev . návštevník našej stránky."; Este ti to sem hodim v celku: Kód: <?php $server = "mysql.webzdarma.cz"; $uzivatel = "mojadatabaza"; $heslo = "snackerko"; $databaza = "mojadatabaza";
$tabulka = "pocitadlo";
@mysql_connect($server, $uzivatel, $heslo) or die("Nemozem nadviazat spojenie s databazou!"); @mysql_select_db($databaza) or die("Nemozem nadviazat spojenie s databazou!");
$datum = date("j.m.Y"); $ip = $_SERVER['REMOTE_ADDR']; $prehliadac = $_SERVER['HTTP_USER_AGENT'];
$uz_tu_dnes_bol = MySQL_Query("SELECT count(*) FROM $tabulka WHERE ip = '$ip' AND datum = '$datum'"); $vysledok = MySQL_Result($uz_tu_dnes_bol, "id");
if ($vysledok > 0){ $novy_navstevnik = "nie"; }else{ $novy_navstevnik = "ano"; }
if($novy_navstevnik == "ano"){
$result = mysql_query(" INSERT INTO `mojadatabaza`.`pocitadlo` ( `id` , `ip` , `prehliadac` , `datum`
) VALUES ( NULL , '$ip', '$prehliadac', '$datum' );") or die("Neulozil som Ta do databazy!");
}
@$pocet_navstev = MySQL_Query("SELECT Count(id) FROM $tabulka");
$vysledok_pocet_navstev = MySQL_Result($pocet_navstev,0);
echo "Vitajte! Ste $vysledok_pocet_navstev . návštevník našej stránky.";
?>
Výsledok si môžeš pozrieť TU
|
|
Registrovaný: 02.05.08 Prihlásený: 08.02.12 Príspevky: 205 Témy: 54 Bydlisko: MpBA | Napísal autor témy dessert: 05.06.2009 9:35 | |
|
dikes dnes ked dojdem domov tak to skúsim spraviť:D
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
snacker, nehnevaj sa, ale máš tam dosť blbé postupy...
čo tam napr robí preboha toto?
Kód: if ($vysledok > 0){ $novy_navstevnik = "nie"; }else{ $novy_navstevnik = "ano"; } to ťa čo napadlo takto kontrolovať? prečo neporovnávaš priamo na $vysledok, ale cez nejakú pomocnú nezmyselnú premennú? ďalej, PREČO ukladáš serverové premenné do pomocných keď ich už nijako ďalej neupravuješ? nemyslíš, že je to zbytočné? Kód: @mysql_connect($server, $uzivatel, $heslo) or die("Nemozem nadviazat spojenie s databazou!"); @mysql_select_db($databaza) or die("Nemozem nadviazat spojenie s databazou!"); ďaľší nezmysel... prečo tam máš rovnaké hlášky pri dvoch rôznych úkonoch? ak sa vyskytne chyba, ako ju chceš efektívne hľadať? Kód: or die("Neulozil som Ta do databazy!")
WTF? Povedz mi... teba ako návštevníka stránky zaujíma takáto informácia?! Prečo to posielaš userovi? Ak ťa to zaujíma ako admina, že niečo zlyhalo, tak si vytvor log chýb, kam budeš podobné veci ukladať...
ďalej nepochopím, prečo používaš toľkoslovné premenné... miesto toho by kľudne stačili jednoslovné + komentár ak si taký zábudlivec alebo ak si mu to na tom chcel vysvetliť
no a na záver len spomeniem, že premenné typu $server, $heslo... je fajn skôr definovať ako takto deklarovať
beriem, že si chcel dotyčnému pomôcť, ale týmto spôsobom mu teda nepomôžeš ak ho naučíš sprostosti
_________________ C#, PHP, ... |
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Citácia: to ťa čo napadlo takto kontrolovať? prečo neporovnávaš priamo na $vysledok, ale cez nejakú pomocnú nezmyselnú premennú? samozrejme ma napadlo to porovnavať priamo na $vysledok ale chcel som to spravit takto pre lepsiu zrozimitelnost. Myslim, ze pre zaciatocnikaje dolezitejsia pochopitelnost ako efektivita. Po pochopeni si moze kod zefektivnit ale nemozesi kod zefektivnit bez pochopenia. Citácia: ďalej nepochopím, prečo používaš toľkoslovné premenné... miesto toho by kľudne stačili jednoslovné + komentár ak si taký zábudlivec alebo ak si mu to na tom chcel vysvetliť Chcel som aby aj premenne hovorili o postupe a pomahali pri pochopeni. $1 $2 $3 $4 + koment je podla horsie ako dobra premenna, ktora ti hned nieco povie. Citácia: ďalej, PREČO ukladáš serverové premenné do pomocných keď ich už nijako ďalej neupravuješ? nemyslíš, že je to zbytočné? Priznavam, priznavam Citácia: no a na záver len spomeniem, že premenné typu $server, $heslo... je fajn skôr definovať ako takto deklarovať
2hod. po polnoci po 8 hod.programovania robia svoje
//$1 $2 $3 $4 - to si uviedol dost zly priklad, nazvy premennych sa nemozu zacinat cislom, ale viem, ako si to myslel (stenley)
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
záleží od toho, ako je tá premenná použitá... pokiaľ je len v jednom takomto skriptíku, tak je zbytočné nazývať ju 10 slovami, ale stačí jeden krátky komentár.. pokiaľ je použitá viackrát, ani tak by som nepoužil také dlhé názvy, existujú napr skratky (napr $poc_navstev).
Pokiaľ ti šlo o pochopenie princípu, tak by to snáď začiatočník pochopil aj z jednoduchého komentáru.. prečo by sa nemohli naučiť rovno tú "správnejšiu" cestu? Vieš, nie každý to tak pochopí ako by si to možno chcel, naučia sa to zle a potom, keď trocha naberú sebavedomie, je už trocha neskoro im vysvetlovať, že ty si to tak nemyslel
Citácia: ale chcel som to spravit takto pre lepsiu zrozimitelnost
Beriem, ale prečo to celé komplikovať, keď sa dá to isté napísať jednoduchšie? (bez medzikrokov, ktoré sú tam zbytočné a len plodia ďaľšie zlozvyky) Jak som už písal, aj tu kľudne stačil jeden krátky komentár...
_________________ C#, PHP, ... |
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
Beriem na vedomie nabuduce sa budem snazit viac aby boli spokojni aj ti, pre korych je to spanielska malina ale zaroven aj zaciatocnici, pre ktorych je to spanielska dedina . Ved aj ja som len zaciatocnik, ktory sa uci...
|
|
Registrovaný: 31.05.09 Prihlásený: 02.06.17 Príspevky: 562 Témy: 37 Bydlisko: BegyBen |
az teraz som si to vsimol s tymi premennymi sorac
_________________ "Ženy jsou jako domény. Ty nejlepší jsou zabrané, ale pořád můžete získat nějaké z exotických zemí." |
|
Registrovaný: 27.04.08 Prihlásený: 05.07.15 Príspevky: 52 Témy: 13 Bydlisko: Dolny Kubin | Napísal drozdo: 07.06.2009 11:57 | |
|
Tu mas moj script...
Kód: $ip = $_SERVER['REMOTE_ADDR']; //zistime si IP $date = date("Y-m-d H:i:s"); //datum
$file = fopen("ipcky.php", "a"); $content = "\n".$ip.", ".$date; $content = nl2br($content); fwrite($file,$content); fclose($file);
ten datum si mozes zmazat
|
|
| Stránka: 1 z 1
| [ Príspevkov: 20 ] | |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|