22786
Html-, css- és php-help
-
#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. -
#851 jól érteted :) Dj faustus meg már megin megelőzött :) -
#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. -
#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. -
#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" /> -
#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>';}
} -
#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? -
#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 :) -
#844 :D:D -
#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 -
#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 -
#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 -
#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 -
#838 bazz nagyon amatőrök :D ezt is ki lehet játszani :D -
#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 -
#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. -
#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. -
#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!) -
#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.
-
#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? -
#830 A Content type részhez ebből a listából választhatsz. -
#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"); ?> -
#828 elég 1 helyre beirni! -
#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 -
#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 -
#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 -
#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 -
#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? -
#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ó ? -
#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? -
#816 hmm megelőztél :) és tömörebben tetted ezt :D -
#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>
-
#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>
-
#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