22786
Html-, css- és php-help
  • Agy Halott #15342
    Persze mindenkepp, igy gondolod?

    foreach ($tomb as $array =>$key){
    if ($key==$beszurando){
    $beszurjuk=false;
    break;
    }
    }

    Csak azert, mert mukodik a kod es ezzel a break-es cuccal lenne fullos.
  • Cat 02 #15341
    Mivel csak az első IF van ciklusban... de lehetőleg az értékadás után rakd.
  • Agy Halott #15340
    <?
    $tomb=file("txt.txt");
    $beszurando=$_SERVER['REMOTE_ADDR']."\r\n";
    $beszurjuk=true;

    foreach ($tomb as $array =>$key){

    if ($key==$beszurando){
    $beszurjuk=false;
    }
    }

    if ($beszurjuk==true){
    array_push($tomb,$beszurando);
    file_put_contents("txt.txt", $tomb);
    }
    echo count($tomb);
    ?>


    Az elso vagy a masodik IF reszhez kell a break?
  • CattiBrie
    #15339
    Szóval mind a kettő kell. Köszönöm! :)
  • Malakai
    #15338
    A meta ködös világa. :)
    Nem, mindkettő volt és használható (x)html(4)-ben is. A linkelt videón nem is szerepel, ott charset van, az meg nem ugyanaz.

    A html4 úgy fogalmaz, hogy a name metódus és a http-equiv kiválthatja egymást. Viszont a html-equiv felülírhatja a http headereket, míg a sima name metódus csak sima meta infó. Tehát ha megadod, hogy <meta http-equiv="Content-Language" content="hu" /> akkor mintha lenne egy olyan sor a http headerben, hogy Content-Language: hu. Elméletben, de azért sokkal inkább ajánlott eleve a megfelelő http headert küldeni. :)

    Hogy botok melyiket kedvelik inkább egy SEO guru megmondja, azt nem vágom.
  • Dj Faustus #15337
    A http-equiv="Content-Language" HTTP-fejlécet hoz létre, a böngészőnek és a keresőmotoroknak szolgál információul. Bővebben >>

    A name="language" pedig a Web Content Accessibility Guidelines 13.2.2 pontja miatt (akadálymentességi szempontból) kell.
  • Cat 02 #15336
    Második HTML5.
    Ez alapján legalábbis.
  • KAKOLUKIA
    #15335
    Helló!Aki ért a videókészítéshez, légyszíves írjon privátba, mert van néhány kérdésem videókészítéssel kapcsolatban.
  • CattiBrie
    #15334
    Valaki el tudná mesélni nekem, hogy mi a különbség az alábbi két sor között?
    Avagy hol találok jó leírást.

    <meta http-equiv="Content-Language" content="hu" />
    <meta name="language" content="hu" />


    Melyiket célszerű használni, miért?
  • QuippeR
    #15333
    jó az a kód, csak a $beszurjuk=true-t nem az else ágba kell rakni, hanem még a foreach elé. ez egyébként megoldja az üres txt fájl problémáját is.

    az if ágba meg lehet rakni egy break-et, mert ha megtaláltuk már a listában az IP-t, akkor fölösleges megvizsgálni a hátralévő 5000 sort is, úgyse kell beszúrni.
  • Agy Halott #15332
    Koszi ez mar 100as. Pedig tenyleg hasznaltam a googlet kerestem, kutattam es nem talaltam ezt az oldalt.

    Meg egyszer koszonom!
  • Voyager5
    #15331
    Itt van egy hasonló script.
    Ez ugyan berakja a dátumot időt is, de simán kiszedheted ha az nemkell.
  • Agy Halott #15330
    :(

    Kozben azt nem is neztem, hogy tenyleg nem menti-e le tobbszor a mar listan szereplo IP cimet. Sajnos lementi tobbszor is ugyanazt.
  • Agy Halott #15329
    Pofam leszakad!

    Igy mar minden rendben.

    Mitol lehet ez, hogy kell neki egy loket?

    ...es persze koszonom szepen!
  • Voyager5
    #15328
    :O
    Akkor nemtudom mivan, nem probaltam ki, csak elmeletben gyartottam le.
    Probald esetleg ki, hogy nem ures a txt.txt, hanem van egy sor es utanna sortores.

    Nincs fwrite, mert a file_put_contents emlekeim szerint egyszerre kezeli le az fopen, fwrite, fclose-t.
  • Agy Halott #15327
    Nem dobott hibat viszont szinten nem irja be a txt-be az IP cimet, mint az en kodom. Am nincs benne a kododban az fwrite....
  • Dns5000
    #15326
    probaltam de a responseXML null mindig :S
    valószinüleg nem teljesen XHtml az oldal :(
    de van megoldás sikerült megcsinálni a regexet ami kimásolja az egész táblát és csak azt amiben az adatok vannak.
    Ezt be is lehet szúrni az oldalba és akkor elhet document.getelemetsbyname et vagy xpathot is használni rá.
    De szerintem mostár meg tudom majd csinálni regexel kiszedem az adatokat a stringből. És be tudom szúrni olyan formában ahogy szeretném.
    var source=responseDetails.responseText;
    var re = new RegExp
    ("<table class=\"reszletes\"(.|\n|r)+?</table>","g");
    var myArray = source.match(re);
    newelem.innerHTML=myArray[0];
  • Dj Faustus #15325
    Egyszerűbben: JQuery load függvénye:
    $('#tartalom').load('adat.html td.adat'); - így a tartalom azonosítójú blokkba fog kerülni az adat.html-ben levő adat osztályú táblázatcella tartalma.
  • Cat 02 #15324
    Igen, ez így hülyeség szerintem, bár este van.
    Csinálj egy megszámlálást.
    $szamol=0;
    foreach($t as $ip)
    {
    if ($t == $_SERVER['REMOTE_ADDR']) $szamol++;
    }
    if szamol>0 akkor benne volt az ip cím, ha meg 0, akkor nem volt benne.

    edit: ez kb az mint alattam, csak az alattam levő takarékosabb, mert egy nem számol, csak igazzá tesz
  • Voyager5
    #15323
    Na gyorsan akkor (lehet, h hibas gyorsan keszult :P)
    <?php
    $tomb=file("txt.txt");
    $beszurando=$_SERVER['REMOTE_ADDR']."\r\n";
    foreach ($tomb as $array =>$key)
    {
    if ($key==$beszurando)
    {
    $beszurjuk=false;
    }
    else
    {
    $beszurjuk=true;
    }
    }
    if ($beszurjuk==true)
    {
    array_push($tomb,$beszurando);
    file_put_contents("txt.txt", $tomb);
    }
    echo count($tomb);
    ?>
  • Agy Halott #15322
    Raktam kettot is az IF meg ELSE vegere de vmi nem jo.

    <?php
    $a=fopen("txt.txt","a") or die("");
    $t=file('txt.txt');


    foreach ($t as $t) {
    if ($t == $_SERVER['REMOTE_ADDR']){
    fclose($a);
    break;}

    else{
    fwrite($a, $_SERVER['REMOTE_ADDR']."\r\n");
    break;}
    }
    echo count($t);
    ?>


    Nem menti el az IP cimet, pedig a txt ures. Kivettem az elso break-et akkor sem jo.
  • Cat 02 #15321
    Így minden egyes alkalommal felül írja a fájlt :o
    Szal nincs benne ? Beleírom
    Még mindig nincs benne ? Megint beleírom
    Már megint nincs az Istenit ? Megint beleírom
    Rakj bele legalább egy break;-et :D
  • Agy Halott #15320
    <?php
    $a=fopen("txt.txt","a") or die(":(");

    $t=file('txt.txt');
    foreach ($t){
    if ($t == $_SERVER['REMOTE_ADDR']){
    fclose($a);}
    else {
    fwrite($a, $_SERVER['REMOTE_ADDR']."\r\n");}
    }
    echo count($t);
    ?>


    Tenyleg egyszeru ez a foreach... de igy az if/else resznel behal, nem fut le a fwrite es az fclose.
  • karajjj
    #15319
    sima for ciklus, ami a tömb első elemétől az utolsóig léptet
    nézelődj
  • Cat 02 #15318
    php.net :)
    Olyan mint egy for ciklus, csak tömbön megy végig.
  • Agy Halott #15317
    Jol hangzik, de annal a franya foreach-nel elverzek! Hol kell azt berakni?
  • Cat 02 #15316
    Ha array, akkor in_array. Vagy menj rajta végig foreach-csel. De így szerintem a $a egy üres tömb lesz :)
    Vagy akár megcsinálhatod regexp-el is. Bár akkor lehet, hogy az egymás utáni IP címeket is nézi.
  • Dj Faustus #15315
    Mivel egyrészt Javascriptet használsz, másrészt teljes HTML-oldalt töltesz be, javaslom, hogy használd ki a DOM-ban rejlő lehetőségeket.

    Tehát:
    1. Ne responseText-tet használj hanem responseXML-t.
    2. A responseXML-ből, getElementsByTagName-mel kérd le az összes táblázatcellát (<td> tag)
    3. A kapott tömbön menj végig, és amelyiknek a class attribútuma (getAttribute segítségével lekérheted) adat, annak a tartalmát szedd ki (innerHTML segítségével).
  • Agy Halott #15314
    Ezzel befurodtem es gondoltam megprobalom egyszerubben:

    <?
    $a=fopen("txt.txt","a+") or die(":(");

    $a = array();
    if ($a == $_SERVER['REMOTE_ADDR']){
    fclose($a);}
    else {
    fwrite($a, $_SERVER['REMOTE_ADDR']."\r\n");}

    $t=file('txt.txt');
    echo count($t);
    ?>


    Viszont igy meg nem mukodik! :(
  • Voyager5
    #15313
    A file() fuggvenyt hasznald az kell neked, aztan egy foreach, egy if-else es keszen is vagy.
  • Agy Halott #15312
    A sortorest sikerult megoldanom:
    A \r\n hianyzott.

    Ezt az IP ellenorzot pedig megnezem. Remelem sikerul vmit egyedul is osszehoznom. :)
  • Cat 02 #15311
    Fűzd hozzá a stringet.
    Szal pl csinálsz egy változót, azt egyenlővé teszed a fájlt tartalmával, aztán hozzáadod az ip címet és utána beírod a fájlba. (sajna fájlba sose írtam php-val, csak számolgattam fájlokat, szal nem tudom a pontos függvényeket). A sortörés meg elvileg echo "\n";
  • karajjj
    #15310
    akkor mondjuk mielőtt elmented a címet, beolvasod a file-t és egy foreach-csel soronként végignézed, hogy bennevan-e már, ha nincs, akkor meg hozzáadod egy új sorban
  • Agy Halott #15309
    Hello!

    Egy ujabb keressel fordulok hozzatok. Szeretnek csinalni egy egyszeru, file alapu IP logolo php scriptet. Ez eddig OK nem problema. Amit viszont nem tudok megoldani, hogy a fileba ugy mentse el az IP cimeket, hogy ha mar egyszer szerepel egy adott IP cim a listan, akkor azt ne adja hozza ujbol.
    Ami meg fontos, hogy minden IP cimet uj sorba, egymas ala kene pakolgatnia.

    http://pastebin.com/cDjcJH1k

    Koszi.
  • Cat 02 #15308
    off
    A Microsoft Internet Explorer programot alapvetően úgy lehet használni, hogy ahol a hagyományos Windows-os egérkurzor átalakul kis mutató kézzé, ott rá tudunk bökni a mögötte lévő lapra. Ennél eggyel fejlettebb módszer, hogy a Cím melletti kis téglalapba beírjuk a kívánt címet, pontosan! xD
  • bracsek #15307
    Nem igen láttam erre választ, de immár ha későn is leírom mit tennék.

    Levágnám a fájl elejét valahogy felismerem honnan kezdődik a táblázatom egészen az első <tr> ig.

    Levágom a fájl végét az utolsó </tr> utántól.

    Split a </tr><tr> ekre a maradékon, ekkor minden sor egy egy tömbelem lesz.

    És kihasználva hogy jó esetben 1 ciklussal vannak kiíratva akkor tovább splittelem a megfelelő módon. A tömböm első indexe adott az első splitből, a másodikat meg kialakítja a második split vagy ha nem lehet splittelni akkor egy kicsit bonyolultabb sordarabolás.
  • Cat 02 #15306
    Ez lett volna az. Nem regexp, de olyasmi mint neked kell, csak PHP :s
  • Dns5000
    #15305
    source ben benne van egy egész oldal nem csak amit az előbb írtam
    és javascripben kellene csinálni.
    Vissza néztem az utolsó 2 oldalt de nem találtam regexes dolgokat.
    source=responseDetails.responseText;
    var re = new RegExp("Alapterület:");
    source.match(re);
  • Cat 02 #15304
    Alapterület után kezdesz egy sort és mész az első ">"-ig, utána pedig másolod a string-et "m"-ig. Ha lehet ilyet. De Faustus nemrég linkelt ide dolgokat amik pont ilyenekre jók.
  • Dns5000
    #15303
    újabb regexp probléma
    <td width="45%" class="cim">Alapterület:</td>
    <td class="adat">36 m²</td>

    Ebből hogy hogy szedem ki a 36ot? Alpterület: re lehet rákeresni utánna van a</td>\n lehet hogy van még más white space is :S