22786
Html-, css- és php-help
  • Jim Morrison
    #18462
    igaz, de ez hogy kaptam is linket hozzá sokat dobott az ő kommentjén :p nyugi, neked is köszönöm :)
  • SzirmosSzisza
    #18461
    Az is js :)
  • Jim Morrison
    #18460
    js el? azt majd megnezem, de lyukasbogare most nagyon tetszik :)
  • Lyukasbogrács
    #18459
    nem "ha nem", hanem "ha van", akkor...
  • Lyukasbogrács
    #18458
    ha nincs LIMIT a lekérdezésedben, akkor felesleges újra lekérni a rendezett adatokat, kliensoldalon is lehet rendezni: tablesorter
    ha nem, akkor ajax.
  • SzirmosSzisza
    #18457
    Javascripttel újra betöltöd az adatokat. Illetve igen, GET-tel szokták.
  • Jim Morrison
    #18456
    ja várjunk, erre kell a GET nem post ugye? nemvagom
  • Jim Morrison
    #18455
    kiiratok egy oldalra egy lekerdezest, es vannak gombjaim amiket ha megnyomunk akkor annak megfeleloen rendezi a kiiratas (vagyis a lekerdezesben szerepel order by asd desc, asc stb) es azt hogy tudnam megcsinalni, hogy ezek a gombok formban vannak ami egy masik fajlra mutat(amiben van a switch, hogy hogyan rendezze), de ha ranyomok a gombra akkor ugye oda ugrik a weboldal is. Hogy tudnam megcsinalni, hogy ugyanazon az oldalon maradjak, de valtozzon a kiiratas?
    remelem ertheto.
  • QuippeR
    #18454
    szerintem használj PDO-t a "mysql_" kezdetű függvények helyett, illetve gondolkozz el egy openid megoldáson
  • TheLostOne
    #18453
    Hello

    Úgy alakultak a dolgok, hogy a projekt amin jelenleg még szívességből, nem hivatalosan dolgozunk elég nagyszabásúvá válhat, hamarosan emiatt a cégalapítás ideje is eljöhet.

    A kérdésem ennek ellenére technikai jellegű lenne. Mindig is maximalista módon dolgoztam, csak az elvárásoknak tökéletesen megfelelő munkát voltam hajlandó kiadni a kezeim közűl, annak ellenére is, hogy eddig kizárólag non-profit működtem. Most azonban a saját magam felé támasztott elvárások még jobban megnőttek, kiemelt figyelmet szeretnék fordítani a biztonságra, a projekt komolysága megköveteli.

    Konkrétan tehát:
    -SQL Injection ellen elegendő a mysql_real_escape_string(), vagy még ajánlatos emellé valami? (A form elő-validációkat azért eddig is védtem bizonyos karakterek kézi szűrésével)

    -Minimum 8 karakteres jelszó megkövetelése elég, vagy ajánlott kötelezően kis-nagy betű + szám is bele? Kiemelten fontos lenne a felhasználói fiókok védelme, viszont nem szeretném, ha ez a kényelmetlenné tenné a rendszert.

    -Milyen tűréshatárral érdemes bruteforce, illetve http-flood védelmet készíteni? A jelenlegi flood védelem ha jól emlékszem 300 (kliensoldalon késleltetett) lekérést enged élő formvalidáció céljából sessionönként, utána IP-t tilt.

    -XSS támadások ellen elegendő, ha minden egyes felhasználók számára hozzáférhető beviteli mezőből szűrve vannak a speciális karakterek, illetve a projekt jellemzői miatt lehetőségük sem kell, hogy legyen nyilvános tartalmat kiírniuk?

    -Ezeken kívül van még valami, amire érdemes odafigyelni, de nem gondoltam még rá?

    -Jól gondolom, hogy egy megfelelően megírt, saját, zárt forrású keretrendszer biztonságosabb, mint egy ismert nyilt forrású? Azért vagyok ezen az állásponton, mert ha megfelelő a külső védelem, akkor a forráskód nem-ismeretének köszönhetően szinte lehetetlen belső sebezhetőségeket találni, ellenben egy open-source frameworkkel, amibe mindenki bele tud nézegetni.
  • Malakai
    #18452
    Na most én leszek lusta átnyálazni levlistákat, esetleg van aki követi a WebSocket working groupot és van-e arról szó, hogy mennyire közelítenek a protokol véglegesítéséhez? :)
  • repvez
    #18451
    Igen tudom, hogy ez igy elég összetetnek irtam, de gondoltam, hogy megoldható valami egyszerü modon is.
    EXcelben addig eljutottam hogy azokra a napokra amikor dolgozni kell akkor egy x-et teszek és a végén kiirja hogy hány ora a ledolgozott idö.CSak a kivételeket nem tudom és a feltétel rendszereket hogyan kellene macrozni benne, lévén, hogy a legbonyolultabb amit excelben eddig használtam az a darab fügvény volt.
  • MerlinW
    #18450
    Írjunk árajánlatot?:)
  • repvez
    #18449
    Tudna nekem valaki segiteni abban , hogy hogyan lehetne megcsinálni egy olyan táblázatot amiben könnyen lehetne egy honapra elöre megtervezni 24/72-es munkarendnek a beosztását 5 fövel?Figyelembe véve azt is ha nem szabályosan követik egymást a pihenök vagy a munkanapok éstem ezalatt ha szabadságra megy az illetö vagy elöbb kell bejönnie minthogy letellene a 72ora a 2 munkanap között.
    természetesen a honap napjait figyelembevéve és összesitést is készitene a 24orás idökrol havi és éves lebontásba.
    Remélem hogy nem olyan bonyolult, elösször excelben probálkoztam, ott addig megy is hogy 24/72-re megvan a táblázat, de nem automatikus a kitöltése és a változásokat nem veszi figyelembe.
  • Lyukasbogrács
    #18448
    akkor működik. elvileg ha nem működne, akkor a visszatérési érték false lenne, ami 0 és akkor 1970-01-01 01:00:00-et írna ki. vagy azt a beragadt időt, amikor még működött. ehhez már nem értek.
  • Agy Halott #18447
    Nebassz, kiirja a datumot...

    Nem eppen azt az idot ami a windows-omon van de gondolom ez szerver ido lehet, mivel 2001.07.07 07:18:30-kor csekkoltam es kiirta, hogy 2011-07-06 21:57:26.

    Akkor ha nem mukodne, akkor nem irna ki semmit?

    A sok adat amit kiirt anno:
    SPOILER! Kattints ide a szöveg elolvasásához!
    array(1) {
    [0]=>
    array(26) {
    [0]=>
    int(2145)
    [1]=>
    int(26533889)
    [2]=>
    int(33188)
    [3]=>
    int(1)
    [4]=>
    int(1082)
    [5]=>
    int(1082)
    [6]=>
    int(0)
    [7]=>
    int(271)
    [8]=>
    int(1309989446)
    [9]=>
    int(1310019296)
    [10]=>
    int(1310019296)
    [11]=>
    int(4096)
    [12]=>
    int(8)
    ["dev"]=>
    int(2145)
    ["ino"]=>
    int(26533889)
    ["mode"]=>
    int(33188)
    ["nlink"]=>
    int(1)
    ["uid"]=>
    int(1082)
    ["gid"]=>
    int(1082)
    ["rdev"]=>
    int(0)
    ["size"]=>
    int(271)
    ["atime"]=>
    int(1309989446)
    ["mtime"]=>
    int(1310019296)
    ["ctime"]=>
    int(1310019296)
    ["blksize"]=>
    int(4096)
    ["blocks"]=>
    int(8)
    }
    }
  • Lyukasbogrács
    #18446
    Igen. Szerintem onnan lehet tudni, hogy ki van kapcsolva, ha nem azt írja ki, amit kéne :D amúgy egy számot kéne visszaadnia a függvénynek (ami egy timestamp), date()-nek átpasszolod és kiíratod. próbáld ki pl.: echo date('Y-m-d H:i:s', fileatime($_SERVER['PHP_SELF']));
    ha ez a mostani idő, akkor működik. szabad tudni, hogy mi az a csomó minden adat, amit kidobott?
  • Agy Halott #18445
    Szoval, ha nem lenne kikapcsolva, akkor nem kene itt butykolni? Sima PHP-vel kiolvashato?
    Honnan tudom, hogy le van tiltva? Ertem ezalatt, hogy amikor meghivtam a fuggvenyt, egy csomo minden adatot kidobott, nem volt kozte amit kerestem?
  • Lyukasbogrács
    #18444
    mint mondtam, a hozzáférés ideje fájlrendszer szinten tárolódik, de ha le van tiltva a frissítése, annak semmi köze a php-hez. a fileatime() ki tudja olvasni (már PHP 4 óta), de írja is, hogy
    [i]This can be costly performance-wise when an application regularly accesses a very large number of files or directories. Some Unix filesystems can be mounted with atime updates disabled to increase the performance of such applications;[/i]
    [apro]tehát erőforrásigényes, és néhány unix fájlrendszernél a csatoláskor ezt ki is kapcsolják, hogy növeljék a teljesítményt. otthon saját gépen ez nem lehet probléma, de szerveren nagy valószínűséggel ki lesz kapcsolva, ezért kell alternatív megoldáshoz folyamodni :][/apro]
    örülök, hogy sikerült megoldani, szívesen.
  • Agy Halott #18443
    Jaaaaaaaaaaaa, hogy menteni kell, az utolso megnyitas idejet, mert csak akkor lehet ellenorizni, hogy mikor volt utoljara megnyitva?
    Azt hittem, hogy a PHP 5.*.* verzio mar tart ott, hogy ezt a filebol ki tudja olvasni...

    Ezt egy a hatterben futo automatikus scripthez keszitenem ami ellenorzi, hogy ha nem volt az elmult 30 napban hasznalva a kep, akkor torli azt.

    Igy mar sikerult megoldanom a file_put_contents() fuggvennyel.
    Koszonom.
  • Lazarus
    #18442
    Közben sikerült :P

    Main_class.prototype.init_data = function()
    {
    var obj = this;
    $.get('get_data.php?photo_group&photo_all', function(data) {
    obj.data = $.evalJSON(data);
    processData();
    });

    processData = function()
    {
    // TODO: Feldolgozni a beolvasott adatokat
    alert(obj.data["photo_group"][0]["title"]);
    }
    }
  • Lazarus
    #18441
    Gondoltam kipróbálom milyen lehet javascriptben osztályokkal dolgozni, meg is van az első dilemmám:

    function Main_class()
    {
    this.data = 0;
    this.init_data();
    }

    Main_class.prototype.init_data = function()
    {
    $.get('get_data.php?photo_group&photo_all', function(data) {
    parent.data = $.evalJSON(data);
    });

    alert(this.data)
    }

    Onnan a $.get complete funkciójából hogyan szokás szakszerűen kimenteni az adatot úgy hogy a Main osztály data változója eltárolja a lekérés visszatérési értékét? this-el nem tudok rá hivatkozni és parentel sem :/
  • Jim Morrison
    #18440
    köszi !
  • MerlinW
    #18439
    Én pedig így használom:

    <?php

    function myConnect() {
    /**************************************** SETTINGS */
    $link = NULL;
    $dbhost = "localhost";
    $dbusername = "";
    $dbuserpass = "";
    $dbname = "";
    /************************************************* */

    if (!$link) $link = mysql_connect($dbhost, $dbusername, $dbuserpass); //endif

    if (!$link) { return 0; } //Kiszolgáló hiba
    elseif (!mysql_select_db($dbname)) { return 0; } //Adatbázis hiba
    else { mysql_query('SET NAMES UTF8', $link); return $link; } //endif

    };

    ?>
  • SzirmosSzisza
    #18438
    Vagy akár már a config.php-ban is csatlakozhatsz végül is, az is egy fix dolog, illetve az utolsó előtti szó adatbázis, nem tábla, kell majd egy szerkesztés nekem :D

    Amúgy itt egy példa: http://pastebin.com/Tijug0ci
    az a set utf-8 nem muszáj, de én csak így tudtam elérni, hogy jól rakja be az ékezetes betűket is :/
  • SzirmosSzisza
    #18437
    Csinálsz egy config.php-t ahova beírod ami kell ($host,$pw,$db,$user...)
    Utána csinálsz mondjuk egy functions.php-t ahova rakod a függvényeidet és ennek az elejére egy require("config.php"); és itt a functions.php elején megcsinálod az SQL csatlakozást és utána ezt elég beincludeolni / requirelni bármilyen oldal elején és tudsz már SQL lekérdezéseket futtatni. Illetve, ha feltöltöd tárhelyre elég a config.php-t átírni.

    Amúgy arra gondoltam, hogy a mylsq_query("...."); elég, nem kell mellé a $con, ha csak egy táblát használsz.
  • MerlinW
    #18436
    Mert kliens oldalon akarsz szerveroldali függvényt hívni.
    Tedd az oldal tetejére egy feltételbe - if (isset(insert)) - az SQL parancsot, onclick-en pedig:
    document.location.href='aktualis_oldal.php?insert';
  • Jim Morrison
    #18435
    és php kód nem lehet? nem akarok ennek az 5 sornak is új fájlt... de ha így nem megy akkor oké...
    hogy érted hogy felesleges? én eddig úgy csináltam, hogy minden php fájl elején meghatároztam hogy hova csatlakozzon. mondjuk akartam is kérdezni, hogy meg lehet e csinálni azt, ha mondjuk felteszem tárhelyre a fájlokat akkor csak egy helyen írjam át a csatlakozási adatokat, vagy minden fájl elején írjam majd át...
  • SzirmosSzisza
    #18434
    Az onclick-be valami javascript kód kéne. Amúgy ha össz-vissz egy adatbázishoz csatlakozol, akkor felesleges kirakni a $con-t mindenhova.
  • Jim Morrison
    #18433
    bocs, mov2 nél a pasd meg a SELECT egybement, de most véletlenül. a lényeg miért nem fut le a két lekérdezés gombnyomásra.
  • Jim Morrison
    #18432
    van egy gombom:
    <input type="button" onclick="veglegesites()" value="szöveg" />
    és utána a php kód:
    <?php
    function veglegesites()
    {
    $con = ...
    $mov1="INSERT INTO kasd SELECT * FROM kkasd";
    $mov2="INSERT INTO pasdSELECT * FROM ppasd";
    mysql_query($mov1,$con) or die('Error: ' . mysql_error());
    mysql_query($mov2,$con) or die('Error: ' . mysql_error());
    }
    mysql_close($con);
    ?>

    megnyomom a gombot, megnézem phpMyadmin ban történte valami, de semmi. lefuttatom ott a mov1et, és tökéletesen működik. MIÉÉRT?
  • Malakai
    #18431
    Codepage Converter esetleg, bár autómata encoding felismerés azthiszem nincs benne.

    Ez meg egy sebtiben összedobott php script, csak saját felelősségre! :)
    class, példa
  • Máté12
    #18430
    Ouch csak nem jó.. :S

    mysql_query("UPDATE `fights` SET `end` = CASE WHEN ( SELECT
    (`user1` = `1`) + (`user1` = `2`) + (`user1` = `3`) + (`user1` = `4`)+ (`user1` = `5`)+ (`user1` = `6`)+ (`user1` = `7`)+ (`user1` = `8`)+ (`user1` = `9`)+ (`user1` = `10`)+ (`user1` = `11`)+ (`user1` = `12`) + (`user1` = `13`) < (`user2` = `1`) + (`user2` = `2`) +(`user2` = `3`)+(`user2` = `4`)+(`user2` = `5`)+(`user2` = `6`)+(`user2` = `7`)+(`user2` = `8`)+(`user2` = `9`)+(`user2` = `10`) + (`user2` = `11`) +(`user2` = `12`) + (`user2` = `13`) ) THEN `user1` ELSE `user2` WHERE `id` = 1 END ");
  • Máté12
    #18429
    Bocsi semmi, csak a WHERE lemaradt!

    Köszi mind kettőtöknek :)
  • Máté12
    #18428
    mysql_query("UPDATE `fights` SET `end` = CASE WHEN ( SELECT
    (`user1` = `1`) + (`user1` = `2`) + (`user1` = `3`) + (`user1` = `4`)+ (`user1` = `5`)+ (`user1` = `6`)+ (`user1` = `7`)+ (`user1` = `8`)+ (`user1` = `9`)+ (`user1` = `10`)+ (`user1` = `11`)+ (`user1` = `12`) + (`user1` = `13`) > (`user2` = `1`) + (`user2` = `2`) +(`user2` = `3`)+(`user2` = `4`)+(`user2` = `5`)+(`user2` = `6`)+(`user2` = `7`)+(`user2` = `8`)+(`user2` = `9`)+(`user2` = `10`) + (`user2` = `11`) +(`user2` = `12`) + (`user2` = `13`) ) THEN `user1` ELSE `user2` END ");

    Ezzel működik, ám ha > akkor 'barta' ha < akkor 'mate'..
  • Lyukasbogrács
    #18427
    ha nincs mentve az utolsó hozzáférés ideje fájlrendszer szinten, akkor azt nem is fogod tudni használni sehogy. egyáltalán másik képből generálsz képet, vagy a semmiből? mihez akarod hozzáfűzni, hogy mikor nézték meg?

    ha lemezen van a fájl, akkor:
    $filename = 'elérési/út/a/fájlodhoz';
    $mimetype = 'mime/típus'; // image/jpeg, vagy image/png vagy image/gif attól függően, hogy mit szolgálsz ki
    file_put_contents($filename . '.txt', time());
    header('Content-Type: '.$mimetype );
    echo readfile($filename);

    ha generálod a képet, akkor csak a file_put_contents sor a lényeges neked. ez a megadott fájlba írja a megadott adatot.
  • bracsek #18426
    Persze a where ben össze kellett volna kötni, de nincs kedvem létrehozni a táblát így meg csak ötletet adtam, nem bonyolult megoldani, ha kicsit kísérletezel.

    SQL ben minden van amit el tudsz képzelni, és amit nem az is, nem csodálkoznék ha mondjuk kerülne egy őrült aki a mariót megírná mysqlben :) olyan szinten hozzá férhet vajon a mysql az erőforrásokhoz, képernyő... billentyűzet? :D érdekes felvetés.
  • SzirmosSzisza
    #18425
    Esetleg próbáld meg felzárójelezni < előtti és után részt vagy where id = 1-et hozzáadni mindkettő lekérdezéshez. csak tipp, eddig nem is tudtam, hogy van case SQL-ben
  • Máté12
    #18424
    mysql_query("UPDATE `fights` SET `end` = CASE WHEN ( SELECT
    (`user1` = `1`) + (`user1` = `2`) + (`user1` = `3`) + (`user1` = `4`)+ (`user1` = `5`)+ (`user1` = `6`)+ (`user1` = `7`)+ (`user1` = `8`)+ (`user1` = `9`)+ (`user1` = `10`)+ (`user1` = `11`)+ (`user1` = `12`) + (`user1` = `13`) < (`user2` = `1`) + (`user2` = `2`) +(`user2` = `3`)+(`user2` = `4`)+(`user2` = `5`)+(`user2` = `6`)+(`user2` = `7`)+(`user2` = `8`)+(`user2` = `9`)+(`user2` = `10`) + (`user2` = `11`) +(`user2` = `12`) + (`user2` = `13`) FROM `fights` WHERE 1 ) THEN `user1` ELSE `user2` END");

    Sajnos így sem ír be semmit :(
  • bracsek #18423
    THEN `user1` ELSE `user2` END


    ezt a részt lehagytad a végéről? a ;t te írtad.