Výsledky 1 až 11 z 11

Téma: PHP > prepisovani dat v souboru pomoci web stranky

  1. #1

    Standardní PHP > prepisovani dat v souboru pomoci web stranky

    Zdravim,

    měl bych prosbičku co se týče PHP (viz nadpis).
    pro nastínění situace:

    - představte si ceník
    - všechny ceny v tabulkách jsou definovány ze souboru např data.php
    - pak tu máme "příplatek" (který se může měnit)
    - a spodní ceník (viz odkaz) je vlastně součet horních cen + příplatek

    tabulky definované v ceníku jsou takto:
    Kód:
        $priplatek_h = 2.00;
        $cena_a1 = 50.00;
        $cena_a2 = 60.00;
    Pokud kliknete dole pod ceníkem na změnu cen, otevře se stránka kde můžete ceny (nebo příplatek) upravit.

    Což o to nyní mi to funguje, ALE rád bych to ošetřil proti blbostem, poněvadž:
    - napíšu-li cokoliv jiného než číslo = chyba
    - napíšu-li číslo ale namísto tečky udělám čárku (což by se stalo asi několiksetkrát) = opět chyba

    kamarád mi poradil cosi s funkcí (double) což řeší první problém
    a to že napíšu-li místo čísla třeba slovo, systém jej zamění za hodnotu 0.00

    ovšem druhý problém to stále neřeší...


    Způsob jakým se přepisuje soubor je následující:
    Kód:
      if(isset($_POST['posting'])) {
        $p = $_POST;
        if(!is_double($p['priplatek_h'])) (double)$p['priplatek_h'];
        if(!is_double($p['cena_a1'])) (double)$p['cena_a1'];
        if(!is_double($p['cena_a2'])) (double)$p['cena_a2'];
        atd..
        if(authorize($HTTP_POST_VARS["name"], $HTTP_POST_VARS["password"])) {
        $texty = '
        $priplatek_h = '.$p["priplatek_h"].';
        $cena_a1 = '.$p["cena_a1"].';
        $cena_a2 = '.$p["cena_a2"].';
        atd..
    ';
          $f = fopen($main, "w+");
          fwrite($f, $texty);
          fclose($f);
    přičemž "$main" je soubor do kterého se data zapisují...
    A soubor samozřejmně má atributy 777 čili umožněno čtení, zápis i vykonání.

    Nápady, řešení ?
    PS nejsem php programátor, čili prosím polopatě..
    Paul Atreides
    NPE-squad.com - Clan Leader

    COMP: Win7 x64 prof. | C2D E8400 3Ghz | ASUS P5B DeLuxe | Corsair 6000 MB DDR2 800MHz | ASUS GTX 560 Ti 1GB-DDR5 | SB Audigy SE 7.1 | Seagate 1000GB & 500GB (šuple WD 320GB) | Corsair 520W | 26" LG fullHD 1920x1080px 8ms
    NAS-server: Win Home Server 2011 | 1,6 Atom D525 (2 core | 4 threads) | ASrock mini-ITX | 4 GB DDR3 800MHz | Western 1TB GreenPower | Fortron 200W 80-BronzePlus | ftp, web, mumble, vpn, Servio DLNA share system, komplet PLEXI case
    NetBook: ASUS Eee1001PQ (violet) | 1,6 ATOM | 1 GB RAM | 250GB HDD | 1024x600 px LCD | baterie 7h :)
    FOTO: Olympus E-520 | 14-42 ZuikoDigital | 40-150 ZuikoDigital

  2. #2

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Tak jeste pred tim pretypovanim na double muzes zmenit v retezci carky za tecky:

    Kód:
    if(!is_double($p['priplatek_h'])) {
      $p['priplatek_h'] = (double)str_replace(',', '.', $p['priplatek_h']);
    }
    Jeste by se toho dalo udelat se vstupem vic, treba trim(), odstranit mezery uvnitr retezce atd. Ale jestli to vyplnujes jen ty, tak asi vis, co tam delas nejcasteji za chyby

  3. #3
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 738
    Vliv
    300

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    a) pokud to chces osetrit primo na vstupu, tak zde je namiste nejaky ten script
    b) co si matne pamatuju, php umi fci is_neco vicero, jedna je zminena
    c) nejaky extra blby duvod proc to cpat do souboru a ne do databaze ? Jakmile tam budes mit vic nez nekolik jednotek veci, tak to bude nespravovatelny a pomaly.
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  4. #4

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Citace Původně odeslal peshwood Zobrazit příspěvek
    Jeste by se toho dalo udelat se vstupem vic, treba trim(), odstranit mezery uvnitr retezce atd.
    Díky vyzkouším

    A reakce pro Jezevce - ja bohuzel db neumim (php tedy taky ne, ale tohle je jeste takova vec kterou jakz takz zvladam)
    Paul Atreides
    NPE-squad.com - Clan Leader

    COMP: Win7 x64 prof. | C2D E8400 3Ghz | ASUS P5B DeLuxe | Corsair 6000 MB DDR2 800MHz | ASUS GTX 560 Ti 1GB-DDR5 | SB Audigy SE 7.1 | Seagate 1000GB & 500GB (šuple WD 320GB) | Corsair 520W | 26" LG fullHD 1920x1080px 8ms
    NAS-server: Win Home Server 2011 | 1,6 Atom D525 (2 core | 4 threads) | ASrock mini-ITX | 4 GB DDR3 800MHz | Western 1TB GreenPower | Fortron 200W 80-BronzePlus | ftp, web, mumble, vpn, Servio DLNA share system, komplet PLEXI case
    NetBook: ASUS Eee1001PQ (violet) | 1,6 ATOM | 1 GB RAM | 250GB HDD | 1024x600 px LCD | baterie 7h :)
    FOTO: Olympus E-520 | 14-42 ZuikoDigital | 40-150 ZuikoDigital

  5. #5

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Presto myslim, ze by bylo vyhodnejsi tu db se naucit. Na tohle v nejjednodussi forme, sice ne moc koser, ale furt lepsi nez ten file, potrebujes jednu tabulku, ktera nahradi ten soubor.

    Abys takovouhle zakladni db rozjel potrebujes:

    stahnout MySQL, proklikat se next, next instalaci.
    stahnout phpMyAdmin, klikatko k databazi
    a pro samotne dotazovani se naucit 3 prikazy:
    SELECT
    UPDATE
    INSERT

    Db pak za tebe mimojine vyresi treba tuto validaci udaju, kterou tu slozite resis.

    Fanless Experiment || Gigabyte Z77-DS3H | Intel i5-3570K | Thermalright HR-02 | 16G DDR3 | Sapphire HD 7750 Ultimate | Crucial M4 256GB | Seasonic X-400FL | Fractal Define R4
    Dell D430 || i945G | C2D 1.2G ULV | 2G DDR2 533 | GMA950 | 12" 1280x800 | 80G 4k2 | 802.3ab | 802.11g | 802.15.1 | HSDPA | Windows 7 x64
    Storage || i965G | E2200 | 4G DDR2 | RAID5 6x Samsung HD154UI 1.5TB - ~7TiB | 802.3ab ...powered by Ubuntu Server x64
    Accessories || E-MU Tracker Pre USB 2.0 | Meier Corda Headsix | Sony MDR-CD470 | Pioneer A-204R | Tesla ARS 9218 32 | LG 32LD350

    "Music is essentially useless, as life is." George Santayana


  6. #6

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Citace Původně odeslal monsoon Zobrazit příspěvek
    Presto myslim, ze by bylo vyhodnejsi tu db se naucit. Na tohle v nejjednodussi forme, sice ne moc koser, ale furt lepsi nez ten file, potrebujes jednu tabulku, ktera nahradi ten soubor.

    Abys takovouhle zakladni db rozjel potrebujes:

    stahnout MySQL, proklikat se next, next instalaci.
    stahnout phpMyAdmin, klikatko k databazi
    a pro samotne dotazovani se naucit 3 prikazy:
    SELECT
    UPDATE
    INSERT

    Db pak za tebe mimojine vyresi treba tuto validaci udaju, kterou tu slozite resis.
    MySQL + phpadmin je součístí webu (hostingu) kde jsou stránky. to problém není
    vytvořit db také ještě umím
    Ale neumím se dotazovat ze souboru do db.

    Je to težký - nejsem za to placen abych to musel umět - asi by mi to v lecčem pomohlo, ale v práci na to není čas se to učit. A na doma raději dělám jiné věci....
    Paul Atreides
    NPE-squad.com - Clan Leader

    COMP: Win7 x64 prof. | C2D E8400 3Ghz | ASUS P5B DeLuxe | Corsair 6000 MB DDR2 800MHz | ASUS GTX 560 Ti 1GB-DDR5 | SB Audigy SE 7.1 | Seagate 1000GB & 500GB (šuple WD 320GB) | Corsair 520W | 26" LG fullHD 1920x1080px 8ms
    NAS-server: Win Home Server 2011 | 1,6 Atom D525 (2 core | 4 threads) | ASrock mini-ITX | 4 GB DDR3 800MHz | Western 1TB GreenPower | Fortron 200W 80-BronzePlus | ftp, web, mumble, vpn, Servio DLNA share system, komplet PLEXI case
    NetBook: ASUS Eee1001PQ (violet) | 1,6 ATOM | 1 GB RAM | 250GB HDD | 1024x600 px LCD | baterie 7h :)
    FOTO: Olympus E-520 | 14-42 ZuikoDigital | 40-150 ZuikoDigital

  7. #7
    Senior Member Avatar uživatele D_a_v_i_d
    Založen
    08.12.2002
    Bydliště
    Praha
    Věk
    44
    Příspěvky
    5 153
    Vliv
    358

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Tady máš docela pěknej "step by step" postup jak pracovat s DB na MySQL via PHP, od připojení, přes výběr DB, SELECT dotaz (a jeho zpracování), INSERT atd...

    http://www.howtodothings.com/compute...ith-mysql.html

    Připojuji se k názoru, že než tohle "prasit" v souborech, je DB asi tak 100x lepší Souborem se to dá dělat taky, ale do Brna můžeš jet taky na kole, ale v autě je to kratší a pohodlnější
    A Jedi gains power through understanding; a Sith gains understanding through power

    Destkop machine: Intel Core i5 2400/MSI P67A-C45 /2x4 GB DDR3 1333 MHz/Sapphire HD6790/22" LCD HP w2216/DSL 8MBit connected
    Na filmy v posteli: Lenovo IdeaPad S9e/1,6 GHz Intel Atom, 1 GB RAM, 80 GB HDD
    Na práci: Dell E5500/T9550 2,66 GHz Intel, 3 GB RAM, 120 GB HDD

  8. #8

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Taky díky Davide K+ (pokud to pujde... EDIT hmm tak nejde až rozdám zase K nekomu dalsimu)

    PS chtel jsem si jeste malinko rypnout ze do brna to bude autem i na kole stejne dlouhé (nikoliv kratší) hehe
    Paul Atreides
    NPE-squad.com - Clan Leader

    COMP: Win7 x64 prof. | C2D E8400 3Ghz | ASUS P5B DeLuxe | Corsair 6000 MB DDR2 800MHz | ASUS GTX 560 Ti 1GB-DDR5 | SB Audigy SE 7.1 | Seagate 1000GB & 500GB (šuple WD 320GB) | Corsair 520W | 26" LG fullHD 1920x1080px 8ms
    NAS-server: Win Home Server 2011 | 1,6 Atom D525 (2 core | 4 threads) | ASrock mini-ITX | 4 GB DDR3 800MHz | Western 1TB GreenPower | Fortron 200W 80-BronzePlus | ftp, web, mumble, vpn, Servio DLNA share system, komplet PLEXI case
    NetBook: ASUS Eee1001PQ (violet) | 1,6 ATOM | 1 GB RAM | 250GB HDD | 1024x600 px LCD | baterie 7h :)
    FOTO: Olympus E-520 | 14-42 ZuikoDigital | 40-150 ZuikoDigital

  9. #9
    Senior Member Avatar uživatele D_a_v_i_d
    Založen
    08.12.2002
    Bydliště
    Praha
    Věk
    44
    Příspěvky
    5 153
    Vliv
    358

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Citace Původně odeslal Atreides Zobrazit příspěvek
    Taky díky Davide K+ (pokud to pujde... EDIT hmm tak nejde až rozdám zase K nekomu dalsimu)

    PS chtel jsem si jeste malinko rypnout ze do brna to bude autem i na kole stejne dlouhé (nikoliv kratší) hehe
    Časově, rejpale Chtěl jsem to opravit, ale nakonec jsem si řekl, že to nechám být, aspoň se toho nějakej puntíčkářskej mameluk chytne

    EDIT: S DB určitě neškodí umět aspoň základní operace a SQLko je jednoduchý a všude na netu se válí spousta "how to" návodů, pokud tomu věnuješ tak jedno odpoledne, tak to podle mě zmákneš, pokud s PHP umíš základní věci.
    Naposledy upravil D_a_v_i_d; 09.12.2009 v 15:30.
    A Jedi gains power through understanding; a Sith gains understanding through power

    Destkop machine: Intel Core i5 2400/MSI P67A-C45 /2x4 GB DDR3 1333 MHz/Sapphire HD6790/22" LCD HP w2216/DSL 8MBit connected
    Na filmy v posteli: Lenovo IdeaPad S9e/1,6 GHz Intel Atom, 1 GB RAM, 80 GB HDD
    Na práci: Dell E5500/T9550 2,66 GHz Intel, 3 GB RAM, 120 GB HDD

  10. #10
    Administrátor mince Avatar uživatele Jezevec
    Založen
    08.10.2002
    Bydliště
    Teplice
    Příspěvky
    6 738
    Vliv
    300

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Co se DB tyce, staci ti naprosty minimum a omoc si to zjednodusis. Na spouste hostingu totiz nebude mit webserver pravo zapisovat do souboru - to bude prvni na co narazis.

    V uplne nejhloupejsi variate potrebujes tabulku s 6ti sloupci
    id, zbozi, typ_ceny, cena1, cena2, cena3, na prvni 3 by sis mel dat index, prvni by mel byt samo automaticky generovany unikarni klic. Priplatek bych resil asi mimo DB a v ni bych uchovaval uz vypocitany ceny.

    Pak potrebujes neco jako select typ_ceny, cena1, cena2, cena3 from tabulka where zbozi = 'moje zbozi' order by typ_ceny, to ti vrati vsechny ceny k tomu zbozi (v typu budes mit trebas tu velikost baleni ...)

    Pri zmene pak update tabulka set cena1 = '100', cena2 = '200' ... where zbozi = ' ... ' samo das tam promene. Pro vlozeni ceny pak pouzijes obdobne insert.

    Jen upozornuju na jednu vec, MySQL umi "od prirody" menit kodovani stringu, pokud bys tedy hodlal pracovat krom cisel s texty s diakritikou, existuji 3 mista ktera je treba ohlidat. Je to nastaveni MySQL (kodovani ve kterem se ukladaji data - lze definovat bud v konfiguraci jako default nebo pro kazdou databazi/tabulku/...), kodovani konexe - to muzes zmenit po pripojeni k databazi, opet se da default nastavit v konfiguraci MySQL a treti vec je skutecne kodovani dat se kterymi hodlas pracovat - zalezi na hlavickach ktere posles klientovi. Nejvhodnejsi je si pohlidat aby vsude bylo utf8 a nebudes mit problemy ani s obrazky cizincu .
    IMPROBE AMOR, QUID NON MORTALIA PECTORA COGIS - krutá jsi, lásko, kam až ty doženeš smrtelná srdce -- Vergilius
    Mnoho je prostředků, které léčí lásku, ale žádný není spolehlivý.
    S tím, čeho se na nás dopustili druzí se už nějak vyrovnáme. Horší je to s tím, čeho jsme se na sobě dopustili sami.
    -- Francois La Rochefoucauld
    Nabídnout přátelství tomu, kdo chce lásku, je jako dát chleba tomu, kdo umírá žízní.

  11. #11

    Standardní Re: PHP > prepisovani dat v souboru pomoci web stranky

    Citace Původně odeslal Jezevec Zobrazit příspěvek
    Co se DB tyce, staci ti naprosty minimum a omoc si to zjednodusis. Na spouste hostingu totiz nebude mit webserver pravo zapisovat do souboru - to bude prvni na co narazis.
    Ta samozřejmně jde jinak bych to ani po vás nechtěl poradit.
    btw nevyužívám běžně dostupný hosting - je to složitejší...

    Citace Původně odeslal Jezevec Zobrazit příspěvek
    Jen upozornuju na jednu vec, MySQL umi "od prirody" menit kodovani stringu, pokud bys tedy hodlal pracovat krom cisel s texty s diakritikou, existuji 3 mista ktera je treba ohlidat. .... Nejvhodnejsi je si pohlidat aby vsude bylo utf8 a nebudes mit problemy ani s obrazky cizincu .
    Ano toto znám z fóra, které provozuji a vím že kodování je problém (když se leze do db a zvolí je v phpadminu jiné kodování - pak je to sranda...
    Paul Atreides
    NPE-squad.com - Clan Leader

    COMP: Win7 x64 prof. | C2D E8400 3Ghz | ASUS P5B DeLuxe | Corsair 6000 MB DDR2 800MHz | ASUS GTX 560 Ti 1GB-DDR5 | SB Audigy SE 7.1 | Seagate 1000GB & 500GB (šuple WD 320GB) | Corsair 520W | 26" LG fullHD 1920x1080px 8ms
    NAS-server: Win Home Server 2011 | 1,6 Atom D525 (2 core | 4 threads) | ASrock mini-ITX | 4 GB DDR3 800MHz | Western 1TB GreenPower | Fortron 200W 80-BronzePlus | ftp, web, mumble, vpn, Servio DLNA share system, komplet PLEXI case
    NetBook: ASUS Eee1001PQ (violet) | 1,6 ATOM | 1 GB RAM | 250GB HDD | 1024x600 px LCD | baterie 7h :)
    FOTO: Olympus E-520 | 14-42 ZuikoDigital | 40-150 ZuikoDigital

Informace o tématu

Users Browsing this Thread

Toto téma si právě prohlíží 1 uživatelů. (0 registrovaných a 1 anonymních)

Podobná témata

  1. upload a download pomoci php
    Založil Jack68 v sekci fóra Programování
    Odpovědí: 3
    Poslední příspěvek: 09.08.2009, 21:10

Pravidla přispívání

  • Nemůžete zakládat nová témata
  • Nemůžete zasílat odpovědi
  • Nemůžete přikládat přílohy
  • Nemůžete upravovat své příspěvky
  •