22786
Html-, css- és php-help
  • hispan2
    #852
    A következőképpen töltöttem ki:

    <?php
    $filename="sitecounter.txt"; //A számlálófile neve
    $oldal=$_GET["site"]; //A ?site változó lekérdezése
    $bemenet = @file($sitecounter.txt); //A számlálófile megnyitása
    $talalat=0; //Nem találtunk még semmit
    //Végigmegyünk a file adatain...
    for ($i=0; $i<count($bemenet); $i++) {
    $resz = explode(chr(9), $bemenet[$i]); //Két részre szedünk szét egy sort: egy oldalra, és egy oldal-számlálóra
    $resz[1]=str_replace("\n","",$resz[1]); //A számláló mögűl kiszedjük a sortörést
    //Ha megtaláljuk az oldal nevét...
    if (($resz[0]==$oldal)) {
    $resz[1]++; //Növeljük a számlálóját
    $talalat=1; //És jelezzük, hogy találtunk valamit
    }
    $kimenet[$i]=$resz[0].chr(9).$resz[1]."\n"; //Újraegyesítjük az oldalt+a számlálóját
    }

    //Ha nem találtunk meg az oldal nevét...
    if ($talalat==0) {
    $kimenet[]=$oldal.chr(9)."1\n"; //Létrehozunk egy új bejegyzést
    }
    //Megnyitjuk írásra az állományt.
    $handle=fopen($sitecounter.txt, "w");
    for ($i=0; $i<count($kimenet); $i++) {
    fwrite ($handle,$kimenet[$i]); //És beleírjuk az adatokat
    }
    fclose($handle); //Zárjuk az állományt
    header("Content-Type: image/jpeg");
    @readfile ("sitecounter.gif") or die("A fájl nem érhető el!");
    ?>


    A sitecounter.txt-be alapból nem írtam semmit. A HTML-be illesztendő részt a head állományba tettem.

    Persze így nem működik, pedig a szerver futtat PHP-t.
  • Max7
    #851
    jól érteted :) Dj faustus meg már megin megelőzött :)
  • hispan2
    #850
    Oké, tehát ha jól értem, készül egy sitecounter.txt nevű fájl (txt), egy sitecounter.php nevű fájl (php) és azt az utolsó egy sort ágyazoM a mérendő oldal HTML kódjába továbbá mindent értelem szerűen kitöltök. Kipróbálom, köszi.
  • Dj Faustus #849
    Oldalszámláló kód (sitecounter.php):
    <?php
    $filename="sitecounter.txt"; //A számlálófile neve
    $oldal=$_GET["site"]; //A ?site változó lekérdezése
    $bemenet = @file($filename); //A számlálófile megnyitása
    $talalat=0; //Nem találtunk még semmit
    //Végigmegyünk a file adatain...
    for ($i=0; $i<count($bemenet); $i++) {
    $resz = explode(chr(9), $bemenet[$i]); //Két részre szedünk szét egy sort: egy oldalra, és egy oldal-számlálóra
    $resz[1]=str_replace("\n","",$resz[1]); //A számláló mögűl kiszedjük a sortörést
    //Ha megtaláljuk az oldal nevét...
    if (($resz[0]==$oldal)) {
    $resz[1]++; //Növeljük a számlálóját
    $talalat=1; //És jelezzük, hogy találtunk valamit
    }
    $kimenet[$i]=$resz[0].chr(9).$resz[1]."\n"; //Újraegyesítjük az oldalt+a számlálóját
    }

    //Ha nem találtunk meg az oldal nevét...
    if ($talalat==0) {
    $kimenet[]=$oldal.chr(9)."1\n"; //Létrehozunk egy új bejegyzést
    }
    //Megnyitjuk írásra az állományt.
    $handle=fopen($filename, "w");
    for ($i=0; $i<count($kimenet); $i++) {
    fwrite ($handle,$kimenet[$i]); //És beleírjuk az adatokat
    }
    fclose($handle); //Zárjuk az állományt
    header("Content-Type: image/jpeg");
    @readfile ("sitecounter.gif") or die("A fájl nem érhető el!");
    ?>


    HTML kódba illesztése hasonló az előzőhöz:
    <img border="0" src="sitecounter.php?site=index.html" alt="Statisztika" />

    A létrehozott állomány (sitecounter.txt) egy sora tartalmazni fogja az oldal nevét, egy TAB karaktert (elválasztásként), és az oldal számlálóját.
  • Dj Faustus #848
    Idő, oldal, IP-cím, hosztnév, böngészőtipus rögzítő PHP script (stat.php):
    <?php
    $oldal=$_GET["site"];
    function GetIP() {
    if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))
    $ip = getenv("HTTP_CLIENT_IP");
    else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
    $ip = getenv("HTTP_X_FORWARDED_FOR");
    else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"),"unknown"))
    $ip = getenv("REMOTE_ADDR");
    else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
    $ip = $_SERVER['REMOTE_ADDR'];
    else
    $ip = "unknown";
    return($ip);
    }

    $ipcim=GetIP();
    $host=gethostbyaddr($ipcim);
    $date=date("Y-m-d");
    $time=date("G:i:s");
    $bongeszo=$HTTP_USER_AGENT;
    $filename="stat.txt";
    if (file_exists($filename)) {
    $handle=fopen($filename, "a");
    } else {
    $handle=fopen($filename, "w");
    }

    $kimenet=$date.chr(9).$time.chr(9).$oldal.chr(9).$ipcim.chr(9).$host.chr(9).$bongeszo."\n";
    fwrite ($handle,$kimenet);
    fclose($handle);
    header("Content-Type: image/jpeg");
    @readfile ("counter.gif") or die("A fájl nem érhető el!");
    ?>

    A stat.php könyvtárában legyen a counter.gif (tetszőleges kép), illetve egyes ingyenes webtárhelyek esetén létre kell hozni a stat.txt-t is (ne legyen benne semmi, egyszerű 0 byte-os szövegfile legyen).

    Beillesztése a HTML kódba:
    <img border="0" src="stat.php?site=index.html" alt="Statisztika" />
  • Max7
    #847
    (ha az f5-öt nyomkodod nő a szám vagy olyan kell ami ip alapján nézi tehát a tényleges látogatókat? megyek póstára meg könyvelőhöz 7-8 körül vok és adom a másikat ha az kell!)

    $File = "statisztikak/counter.txt";
    # számláló fájl elérési úttal
    if (file_exists($File))
    # fa létezik a fájl
    {
    $fp = fopen($File,"r");
    # megnyitja olvasásra
    $num = fread($fp, filesize($File));
    # kiolvassa a tartalmát
    fclose($fp);
    # bezárja
    $num = $num + 1;
    # hozzáad egyet
    $fp = fopen($File, "w");
    # újra megnyitja írásra
    fwrite($fp, $num, 10);
    # felülírja az új értékkel és zárja a fájlt
    fclose($fp);
    echo("Lapletöltések száma: <B><br>". chop($num) ."</B>");
    # kiírja a lapon az új értéket.
    }
    if ($showhtml == 1 ) { echo '</body></html>';}
    }
  • hispan2
    #846
    És olyan számlálót tudsz nekem mutatni (php-ben akár), hogy egy oldalra (htm vagy html) hányszor léptek fel (vagyis hányszor töltötték le), és ezt számokkal meg is jeleníti mondjuk ugyanazon az oldalon vagy egy másik (azonos almappában lévő) oldalon. Van valami ilyesmi?
  • Max7
    #845
    de annyira nem érdekelnek kapják be nem tudom hogy gondolják hogy 7e ft-ot ki fogok fizetni a reklámenteségért azért már webhostingot veszek 500 megát meg kapok hozzá domain nevet is és azok garantálják a 99,9%-os rendelkezésre álási időt! az uw meg atw benne van hogy semiért nem válal felelőséget akkor baxák meg :)
  • CattiBrie
    #844
    :D:D
  • Max7
    #843
    uw-ba azt becsülöm hogy megindokolják hogy mit miért és híreket is küldenek a változásról nem úgy mint az atw
  • Max7
    #842
    az lehet hogy benne van de te nem tehetsz aról hogy az ő hibályukból eltünik a reklámuk! nem szándékosan tünteted el java scriptel a rekit!
  • Peugeot
    #841
    benne van a pakliba
  • CattiBrie
    #840
    de ezeket ha jól tom figyelik, mármint hogy hogyan vannak megnyitva az oldalak, és ha reklám nélkül használod, akkor akár törölhetnek is
  • Max7
    #839
    na ha nem érdekel senkit akkor is leirom!

    uw:
    http://max7.uw.hu <----- így van reki
    http://max7.uw.hu/index.html <----- így nincs!
    megoldás: fogsz egy aldomain átirányító szolgáltatást pl try.hu és a második linket beteszed!

    Atw:
    http://max7.atw.hu/ <----- így van reklám
    http://users.atw.hu/max7/index.html <--- így nincs reki 2 másodpercig
    megoldás: fogsz egy aldomain átirányító szolgáltatást pl try.hu és a második linket beteszed és nem fog 2 másodperc után frisíteni!

    ha nem volt elég érhető megpróbálok jobban foglamazni ;] használjátok egéségel ezeket a megoldásokat amíg rá nem jönnek

    Bye: Max7
  • Max7
    #838
    bazz nagyon amatőrök :D ezt is ki lehet játszani :D
  • Max7
    #837
    hat igen

    velem nem basznak ki! megyek vissza az atw-hez ott ki tudom játaszni még őket! ha érdekel valakit hogy hogyan megosztom veletek szivesen! Nem script
  • Peugeot
    #836
    ennyit az uw-rol megszünt az reklámmentesség
  • Dj Faustus #835
    " filename.hoz megadom mindenhová, hogy szamlalo.txt"
    Annál egy kicsit bonyolultabb a helyzet. Az $id változó értéke, ami egy szám, határozza meg, hogy melyik file-hoz készít stattsztikát.
    $filename="szamlalo".$id.".txt";
    /* Ide jön a download.php többi része */
    switch ($id) {
    case 1: //Ha a $id értéke 1
    header("Content-Type: application/zip"); //Zip file lesz
    @readfile ("ssstalker_kepek01.zip") or die("A fájl nem érhető el!"); //Ezt a file-t jelenítjük meg/kínáljuk letöltésre.
    break;
    case 2: //Ha a $id értéke 2
    header("Content-Type: application/zip"); //Zip file lesz
    @readfile ("ssstalker_kepek02.zip") or die("A fájl nem érhető el!"); //Ezt a file-t jelenítjük meg/kínáljuk letöltésre.
    break;
    }


    <a href="download.php?id=1">Letöltés: ssstalker_kepek01.zip</a>
    <?php include ("count.php?id=1"); ?>
    <a href="download.php?id=2">Letöltés: ssstalker_kepek02.zip</a>
    <?php include ("count.php?id=2"); ?>


    Tehát: ha a download.php $id értéke 1 lesz (?id=1), akkor a szamlalo1.txt-t fogja megnyitni, ha létezik abból olvas ki, annak az értékét növeli meg 1-el, és a ssstalker_kepek01.zip file-t kínálja letöltésre.

    De ha a download.php $id értéke 2 lesz (?id=2), akkor a szamlalo2.txt-t fogja megnyitni, ha létezik abból olvas ki, annak az értékét növeli meg 1-el, és a ssstalker_kepek02.zip file-t kínálja letöltésre.

    Remélem érthető volt.
  • hispan2
    #834
    Értem. Tehát akkor mentsek el 3 php fájlt. Ez eddig rendben, a filename.hoz megadom mindenhová, hogy szamlalo.txt, ez is rendben, viszont a letöltendő fájlok listáját nem értem. Hol adjam meg, hogy a kattintásra tulajdnoképpen mit is akarok belinkelni?
    Egyébként a content rész most már tiszta: ha tehát mondjuk zip-et akarok letölteni, akkor a header("Content-Type: image/jpeg"); //JPEG kép lesz sorban cseréljem ki a megfeleőre a image/jpeg részt. Remélem ezt legalább jól mondom. Egyébként szerintem (sőt biztos) én bénáztam a számlálónál, mert a szerver futtat php-t.
  • Dj Faustus #833
    1. A zip file mióta image/jpeg? Lásd #830. Inkább: application/x-compressed, vagy application/x-zip-compressed vagy application/zip vagy multipart/x-zip
    2. Mind a három kell. A download.php adja ki a file-t, a count.php számol, a 3. meg listázza a letöltendő file-okat. MINDHÁROMNAK .php kiterjesztésűnek kell lennie!
    3. Eddigi letöltések száma: ".$num.""); ?> - Ez azért történhetett meg mert nem PHP-t kiszolgálni képes webszerveren futtattad le a kódot (ez nem HTML! nem lehet egyszerűen elmenteni egy .htm file-ba és ráhúzni a böngészőre!)
  • hispan2
    #832
    Betettem az egész kódot és kitöltöttem, de akkor meg ennyi jelent meg:


    Eddigi letöltések száma: ".$num."

    "); ?> Letöltés

    Letölti ugyan a file-t, mert magadtam neki a küdban az elérést, de egyrészt nem méri az értéket (hogy hány letöltés volt), másrészt ott van az a pár jel a Letöltés szó előtt is, aminek szerintem nem kéne ott lenni. Szerintem valamit nagyon rosszul csinálok.
  • hispan2
    #831
    Köszi, elolvastam, de nem értem, hogy mind a 3 kell-e? Az elsőt tettem be a html body kódrészébe a következők szerint:


    <?php
    $filename="szamlalo".$id.".txt";
    $num=0;
    //Ha létezik a számlálófile...
    if (file_exists($szamlalo.txt)){
    $fp = fopen($szamlalo.txt,"r"); //Megnyitjuk olvasásra
    $num = fread($fp, filesize($szamlalo.txt)); //Beolvassuk a számláló jelenlegi értékét
    fclose($fp); //Zárjuk a file-t.
    }
    $num = $num + 1; //Növeljük a számlálót
    $fp = fopen($szamlalo.txt, "w"); //Megnyitjuk a file-t írásra
    fwrite($fp, $num, 10); //Írunk
    fclose($fp); //Zárunk
    switch ($id) {
    case 1:
    header("Content-Type: image/jpeg"); //JPEG kép lesz
    @readfile ("ssstalker_kepek01.zip") or die("A fájl nem érhető el!"); //Ezt a file-t jelenítjük meg/kínáljuk letöltésre.
    break;
    }
    ?>


    Amikor viszont megnézel az oldalt, nem jelenik meg rajta sem szám, se file letöltési link. Mit csinálok rosszul? Vagy hogyan kéne?
  • Dj Faustus #830
    A Content type részhez ebből a listából választhatsz.
  • Dj Faustus #829
    download.php:
    <?php
    $filename="szamlalo".$id.".txt";
    $num=0;
    //Ha létezik a számlálófile...
    if (file_exists($filename)){
    $fp = fopen($filename,"r"); //Megnyitjuk olvasásra
    $num = fread($fp, filesize($filename)); //Beolvassuk a számláló jelenlegi értékét
    fclose($fp); //Zárjuk a file-t.
    }
    $num = $num + 1; //Növeljük a számlálót
    $fp = fopen($filename, "w"); //Megnyitjuk a file-t írásra
    fwrite($fp, $num, 10); //Írunk
    fclose($fp); //Zárunk
    switch ($id) {
    case 1:
    header("Content-Type: image/jpeg"); //JPEG kép lesz
    @readfile ("blabla1.jpg") or die("A fájl nem érhető el!"); //Ezt a file-t jelenítjük meg/kínáljuk letöltésre.
    break;
    }
    ?>


    count.php:
    <?php
    $filename="szamlalo".$id.".txt";
    $num=0;
    if (file_exists($filename)){
    $fp = fopen($filename,"r"); //Megnyitjuk olvasásra
    $num = fread($fp, filesize($filename)); //Beolvassuk a számláló jelenlegi értékét
    fclose($fp); //Zárjuk a file-t.
    }
    print ("<p>Eddigi letöltések száma: ".$num."</p>");
    ?>


    És a letöltendő file-ok listája...:
    <a href="download.php?id=1">Letöltés</a>
    <?php include ("count.php?id=1"); ?>
  • Max7
    #828
    elég 1 helyre beirni!
  • hispan2
    #827
    ÜDV! Segítséget kérek tőletek! html-ben vagyok valamennyire otthon és most egy olyan scrpit kéne, ami egy adott linkre való kattintást számol, magyarul hogy például egy fájl linkje mellett ott legye, hogy "eddig ## letöltés". Az sem baj, ha esetleg java a script, tán még az egyszerűbb php-vel is boldogulnék. Köszi előre is.
  • stormnet
    #826
    sry nemtudok példát nincs most php támogatás a gépemen nemtudom leprószálni
  • Dj Faustus #825
    Mutass rá példát!
    Egyébként a split is reguláris kifejezéseket használ.
  • stormnet
    #824
    de muszály ezzel a regular cucccal ? én csak splittelgetném a kódot, szal megkeresném a kov img-s részt azt bementeném a tombbe aztán addig torolném a kódot a változóból, aztán megint a kovetkezot berakni, addig torolni és a végén elfogyna a kód a változóból és kész
  • Max7
    #823
    azt nem értem hogy ha végig keres az egész szövegben akkor az egymás mellet lévőket miért nem látja? :S
  • Dj Faustus #822
    A szript jelenleg a következő:
    <?php
    $szoveg=@file("proba.htm"); //HTML beolvasása
    //Végigmegyünk a szövegen
    $k=0;
    for ($i=0; $i<count($szoveg); $i++) {
    //Ha találtunk megfelelő kifejezést rögzítjük
    if (ereg ("<img[^>]*>", $szoveg[$i], $buffer)) {
    ereg ("<img[^>]*>", $szoveg[$i], $regs[$k]);
    $k++;
    }
    }
    //Kiírjuk a megtalált sorokat
    for ($i=0; $i<count($regs); $i++) {
    for ($j=0; $j<count($regs[$i]); $j++) {
    print ($regs[$i][$j]."\n");
    }
    }
    ?>


    Ez a szkript jelenleg arra képes, hogy az egymás utáni sorokban levő <img...> tag-okat gyüjti össze. A "<img[^>]*>" reguláris kifejezést kéne valahogy kibővíteni, hogy az egymás melletti <img...> tagokat is megtalálja.

    CattiBrie: Jelenleg még elég lenne az összes img tag-ot kiszedni...
  • blackgamer
    #821
    rákeresnék a sorban a ".gif" és a ".jpg" stringekre (feltételes ciklusban hátha több kép is van egy sorban)
    és törölném a következő karakertől (ami ugye " ) a végéig
    és az elejétől, a ".gif" vagy ".jpg" karakterlánctól balra lévő első macskakörömig
    tipp: lehet hülyeség de én elsőre Delphiben szoktam megírni és ha működik tökéletesen, akkor átírom PHP-ra
  • CattiBrie
    #820
    gyűjts ki egy fájlba a HTML azon sorait, amiben szerepel a img tag
    utána soronként keress rá a src-re...

    egyébként mi van a háttérképekkel, ugye pl amik nem img taggel vannak megadva? vagy azok nem kellenek?
  • Dj Faustus #819
    "ciklussal végigmenni az egész html kódon"
    Az odáig ok, csak:
    1. Az src nem mindig az img után van.
    2. Mi van akkor, ha egy sorban többször fordul elő az img tag? (Mi lesz akkor a megfelelő reguláris kifejezés?)
    3. Az ereq leírásában olvasható, hogy a preg_match() gyakran gyorsabb alternatíva. Ott hogy néz ki a reg. kif.? (De ezt inkább hanyagoljuk, mert nem biztos, hogy mindenhol fel van téve a PCRE könyvtár)
  • stormnet
    #818
    ciklussal végigmenni az egész html kódon és az osszes <img -s tagról leválasztod az <img src="-s részt és az utána kovetkezo elérési utat a kov. "-ig egy tombbe rakocsgatod, az nemjó ?
  • Dj Faustus #817
    No akkor én is kérdezek:
    adott egy HTML oldal ami tele van tetszőleges nevű képekkel (nem biztos hogy valid módon megadva).

    Erről a HTML-oldalról szeretném az oldalon szereplő képek neveit (elérési úttal, kiterjesztéssel) egy PHP kóddal lekérni.

    Az világos, hogy az oldalt a $szoveg=@file("http://www.sg.hu"); módon kérhetem le, illetve hogy magát a képet megjelenítő HTML kódot az ereq függvénnyel nyerhetem ki ("<img[^>]*>" reguláris kifejezés segítségével), de hogy hogyan tovább...

    Valakinek van rá ötlete?
  • Max7
    #816
    hmm megelőztél :) és tömörebben tetted ezt :D
  • Max7
    #815
    css-ben így tudnám megoldani bár ebben se vagyok biztos hogy valid :)


    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>css nincs aláhúzva a link</title>
    <style type="text/css">
    <!--
    a:link {
    text-decoration: none;
    }
    a:visited {
    text-decoration: none;
    }
    a:hover {
    text-decoration: none;
    }
    a:active {
    text-decoration: none;
    }
    -->
    </style></head>

    <body>
    <a href="link.html">link</a>
    </body>
    </html>
  • Dj Faustus #814
    Valid megoldás, és ráadásuul css-ben oldottad meg. ;)
    Másik megoldás: tedd a <head> és a </head> közé:
    <style type="text/css">
    a {
    text-decoration: none;
    }
    </style>

  • Max7
    #813
    <p><a href="link.html" style="text-decoration: none">link</a></p>

    nem biztos hogy valid megoldás :) ha nem az akkor css-ben van rá más mód sz.tem