konto usunięte

Temat: Kwiatki w cudzych skryptach / bazach

Tomasz Biniecki:
Kiedys widzialem CAPTCHA a w zrodle strony pole hidden z zawartoscia obrazka. Takie dosc smieszne. Na stronach angielskiego Ministry Of Defence tez sa niezle kwiaty. Praktycznie zadnego error handling.

Norma. Ja (nie tak znowu dawno temu) miałem docznienia z CAPTCHA-ą sprawdzającą się w JS. ;o)
Alan Gabriel B.

Alan Gabriel B. Software Engineer,
IFX

Temat: Kwiatki w cudzych skryptach / bazach

To ja tak w temacie:

Wykopane
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Kwiatki w cudzych skryptach / bazach

Michał Wujas:
generalnie schemat jest do sklepu internetowego i uwaga nie ma żadnego zdefiniowanego klucza obcego ;-)

to takie dziwne dla ciebie ?

komercyjne nie maja:

shoper, sote, sunweb

nie komercyjne tez:

oscommerce

wiec nie ma sie co dziwic, ze jakis programista tego nie zrobil.Dariusz Ż. edytował(a) ten post dnia 15.09.08 o godzinie 08:45

konto usunięte

Temat: Kwiatki w cudzych skryptach / bazach

Dariusz Ż.:
Michał Wujas:
generalnie schemat jest do sklepu internetowego i uwaga nie ma żadnego zdefiniowanego klucza obcego ;-)

to takie dziwne dla ciebie ?

komercyjne nie maja:

shoper, sote, sunweb

nie komercyjne tez:

oscommerce

wiec nie ma sie co dziwic, ze jakis programista tego nie zrobil.Dariusz Ż. edytował(a) ten post dnia 15.09.08 o godzinie 08:45

Ok, doprecyzuje, nie miał kluczy obcych zdefiniowanych i nie usuwał danych powiązanych, przez co baza nie była spójna.
Michał Zwoliński

Michał Zwoliński vojo w języku
esperanto to droga
:)

Temat: Kwiatki w cudzych skryptach / bazach

A co powiecie na przesyłanie w url zserializowanego obiektu?

Temat: Kwiatki w cudzych skryptach / bazach

Dariusz Ż.:
oscommerce


Ha ha ha Oscommerce to jeden wielki kwiat.
Proponuje przejscie na Magento od zaraz.
Tomasz Skaraczyński

Tomasz Skaraczyński projektant,
programista, ATP
Skaraczyński Tomasz

Temat: Kwiatki w cudzych skryptach / bazach

Mam wątpliwość czy wszystkie kwiatki, o których tutaj piszecie są prawdziwymi kwiatkami. Wiele rozwiązań zależy od tego kiedy np. poprawiana platforma powstała. Dla przykładu, brak kluczy obcych w sklepach internetowych może wynikać bezpośrednio z tego, że serwis powstał dla MySQL'a w wersji bez kluczy obcych.

Żeby nie było spamu. Jakiś czas temu zostałem poproszony o konsultacje w sprawie 'znikających pieniędzy' w sklepie internetowym. Okazało się, że programista napisał kod w którym najpierw dla zmiennej z ceną wywoływał number_format, potem używał takiej zmiennej do przeliczenia wartości koszyka. Dopóki mechanizm konwersji (z uwagi na notacje ',' dla liczb rzeczywistych) obcinał tylko grosze nikt tego nie zauważał (dosyć długi czas). Sprawa wydała się kiedy z zamówienia 'zginęło' 1000 złotych (notacja ' ' dla tysięcy po number_format).

pozdroTomasz Skaraczyński edytował(a) ten post dnia 15.09.08 o godzinie 11:49

Temat: Kwiatki w cudzych skryptach / bazach

Ja mam piękny kwiatek:
Na pewnej stronie przeglądanie listingu produktów/promocji (ogólnie rożnych tabel) odbywało się na takiej zasadzie ze najpierw cale zapytanie ladowalo w sesji, a kolejne strony zmieniane byly poprzez podstawianie numerka z GET za LIMIT w zapytaniu.
"Najlepiej" rozwiązana była karta danego produktu, w GET przekazywany był numer wiersza z zapytania, nie ID klucza głównego którego BTW nie było a ROWID ;]. Przekazanie takiego linka bezpośrednio do produktu innej osobie kończyło się wyświetleniem błędu.
Ogólnie strona na takim silniku jedzie już z 5-6 lat. Branża reklamowa i wszystko jasne ;].

Kolejny kwiatek z innej strony: "przyjazne" linki zrobione tak że produkt kojarzony jest nie z ID kategorii a z jego nazwą. Nie muszę nawet prorokować co się stanie jak zmienimy nazwę kategorii. Na szczęście pomysłodawca pomyślał jak temu zaradzić - kategorie mają 2 nazwy ;]. Wyświetlenie produktów z danej kategorii realizowane jest więc w taki sposób:
produkty.php?niezle_kwiatki . I wszędzie w produktach z tej kategorii mamy w polu kategoria wpisany ten ciag ;].

Chetnie bez trudu wynajde wiecej ;].
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Kwiatki w cudzych skryptach / bazach

Tomasz Biniecki:
Ha ha ha Oscommerce to jeden wielki kwiat.
Proponuje przejscie na Magento od zaraz.

OT:

propozycja przejscia powinna miec uzasadnienie biznesowe dla klienta, przechodzenie tylko dlatego ze jest jakis nowy engine jest po prostu glupie.

Temat: Kwiatki w cudzych skryptach / bazach

Dariusz Ż.:
Tomasz Biniecki:
Ha ha ha Oscommerce to jeden wielki kwiat.
Proponuje przejscie na Magento od zaraz.

OT:

propozycja przejscia powinna miec uzasadnienie biznesowe dla klienta, przechodzenie tylko dlatego ze jest jakis nowy engine jest po prostu glupie.

Tak powinno byc ale jesli juz masz cos do zrobienia i stoisz przed wyborem to o OScommerce nie powinien byc jednym z nich. Zobacz sobie do OScommerce i do Magento (oparty na ZF). Mozna wiec latwo i przyjemnie a wtedy do twojego motto 'Programista z zamilowania' dolaczy tez pasja ;-)Tomasz Biniecki edytował(a) ten post dnia 16.09.08 o godzinie 16:14

Temat: Kwiatki w cudzych skryptach / bazach

przyklad z teraz:
class user{

public __construct()
{
public $sql = new dbo();
.
.
.
.
}
.
.
.

}


podobnie jest zbudowany object product, award, messageBoard
I co sie dzieje jak mamy 1000 objektow... he he he

$dsn = "mysql://root:xxx@caladomena.ie/my_db";


i jeszcze jeden okaz! caladomena.ie oczywiscie w kodzie nie w configu. MySql remote connection on.Tomasz Biniecki edytował(a) ten post dnia 16.09.08 o godzinie 16:40
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Kwiatki w cudzych skryptach / bazach

Tomasz Biniecki:
Tak powinno byc ale jesli juz masz cos do zrobienia i stoisz przed wyborem to o OScommerce nie powinien byc jednym z nich. Zobacz sobie do OScommerce i do Magento (oparty na ZF). Mozna wiec latwo i przyjemnie a wtedy do twojego motto 'Programista z zamilowania' dolaczy tez pasja ;-)[edited]Tomasz Biniecki edytował(a) ten post

Ja nie napisalem ze polecam osCommerce. Uszczypliwosci z twojej strony pomine bo nie wnosza nic do tematu, a tylko obnizaja twoje PR.

Temat: Kwiatki w cudzych skryptach / bazach

Dariusz Ż.:
Tomasz Biniecki:
Tak powinno byc ale jesli juz masz cos do zrobienia i stoisz przed wyborem to o OScommerce nie powinien byc jednym z nich. Zobacz sobie do OScommerce i do Magento (oparty na ZF). Mozna wiec latwo i przyjemnie a wtedy do twojego motto 'Programista z zamilowania' dolaczy tez pasja ;-)[edited]Tomasz Biniecki edytował(a) ten post

Ja nie napisalem ze polecam osCommerce. Uszczypliwosci z twojej strony pomine bo nie wnosza nic do tematu, a tylko obnizaja twoje PR.

Przepraszam jesli moja jak mi sie wydawalo sympatyczna uwage odebrales jako uszczypliwosc. Oczywiscie wcale nawet nie pomyslalem ze polecasz oscommerce.
Pisze tylko w oparciu o wlasne doswiadczenie i czesto sie tak trafia ze robie cos zle i tego nie lubie a dopiero ktos bardziej doswiadczony mi pomoze i podpowie jak co zrobic. Jeszcze raz przepraszam.
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Kwiatki w cudzych skryptach / bazach

Tomasz Biniecki:
Pisze tylko w oparciu o wlasne doswiadczenie i czesto sie tak trafia ze robie cos zle i tego nie lubie a dopiero ktos bardziej doswiadczony mi pomoze i podpowie jak co zrobic.

Ja sie nauczylem zyc z osCommercem i zarabiac na nim pieniadze, nie jest najwyzszych lotów no, ale tego nie mozna tez powiedziec o komercyjnych sklepach.

konto usunięte

Temat: Kwiatki w cudzych skryptach / bazach

Kuba Świegot:
Prosto z IRC:

<`ronin> lazarus, jaki typ pola mam dać, żeby zapisywać pliki w bazie?
<lazarus> zapisuj w katalogach, nie w bazie
<`ronin> a dlaczego? w bazie mam lepszy dostęp
<lazarus> ...

Uważam, że najlepszym rozwiązaniem są bfile.
Skąd ten lęk przed blobami?

Co do kwiatków to najgorsze co może być to brak dokumentacji.
Wydaje nam się, że ktoś zrobił coś głupiego, poprawiamy a okazuje się, że dalej sam to wyprostowuje. Niestety po naszej poprawce dopiero teraz jest źle.

Chyba najwiecej kwiatków jest w studenckich wprawkach, prace bez projektu robione ad hoc.
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Kwiatki w cudzych skryptach / bazach

Dominik P.:
Uważam, że najlepszym rozwiązaniem są bfile.
Skąd ten lęk przed blobami?


boja sie admini serwerów, a programisci ten lek "powielaja".

Temat: Kwiatki w cudzych skryptach / bazach

boja sie admini serwerów, a programisci ten lek "powielaja".

Wydaje mi sie, ze to nie tak. Sa plusy i minusy filesystem vs blob i nalezy wziac pod uwage jak rozne bazy danych wspieraja blob. Z jednej strony mozna sie zgodzic ze latwiej zrobic backup takich zasobow ale co np. sie dzieje jesli masz 1000 produtow ich 'image as blob' i wyswietlasz na swojej stronie. Co dzieje sie wtedy z serwerem baz danych? hmmm? Inny scenariusz: Korzystasz z ORM dajmy na to Doctrine - chcemy zmienic 'data source' z mySQL na cos innego.
Jak zachowuje sie blob w innych bazach danych?

Prosze podaj przyklady nad jakimi pracowales z blob ja sam nie mam wielkiego doswiadczenia. Robilem kiedys project w firmie Cable&Wirelss i oni majac produkt ktorym byly 'downloads' trzymali je jako blob. Jednak zanim request klienta dotarl do miejsca w ktorym korzystal z tej tabeli musial przejs weryfikacje (login, payment itd.) tak wiec w tym wypadku baza nie byla obciazana.

Temat: Kwiatki w cudzych skryptach / bazach

Kwiatek?
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="expires" content="tue, 01 jan 1980 1:00:00 gmt" />
<meta http-equiv="pragma" content="no-cache" />
<meta name="robots" content="noarchive" />
<meta name="googlebot" content="noarchive" />
<meta name="robots" content="noindex" />
<meta name="googlebot" content="noindex" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript">

// ==================================================================== Tutaj zmieniamy godziny
var czas_od = "21:20";
var czas_do = "22:10";
// ==================================================================== Tutaj zmieniamy godziny

function updateHours() {
var froms = document.getElementsByName("from");
var tills = document.getElementsByName("till");
var fromsGMT1 = document.getElementsByName("fromGMT1");
var fromsGMT2 = document.getElementsByName("fromGMT2");
var tillsGMT1 = document.getElementsByName("tillGMT1");
var tillsGMT2 = document.getElementsByName("tillGMT2");
var czas_od_array = czas_od.split(":");
var czas_do_array = czas_do.split(":");
var minutes_from = czas_od_array[1];
var minutes_till = czas_do_array[1];
var hoursGMT1_from = ((1*czas_od_array[0]+1) % 24).toString();
var hoursGMT2_from = ((1*czas_od_array[0]+2) % 24).toString();
var hoursGMT1_till = ((1*czas_do_array[0]+1) % 24).toString();
var hoursGMT2_till = ((1*czas_do_array[0]+2) % 24).toString();
if (hoursGMT1_from.length == 1) hoursGMT1_from = "0" + hoursGMT1_from;
if (hoursGMT2_from.length == 1) hoursGMT2_from = "0" + hoursGMT2_from;
if (hoursGMT1_till.length == 1) hoursGMT1_till = "0" + hoursGMT1_till;
if (hoursGMT2_till.length == 1) hoursGMT2_till = "0" + hoursGMT2_till;

for (i=0; i<froms.length; i++) {froms[i].innerHTML = czas_od;}
for (i=0; i<tills.length; i++) {tills[i].innerHTML = czas_do;}
for (i=0; i<fromsGMT1.length; i++) {fromsGMT1[i].innerHTML = hoursGMT1_from + ":" + minutes_from;}
for (i=0; i<tillsGMT1.length; i++) {tillsGMT1[i].innerHTML = hoursGMT1_till + ":" + minutes_till;}
for (i=0; i<fromsGMT2.length; i++) {fromsGMT2[i].innerHTML = hoursGMT2_from + ":" + minutes_from;}
for (i=0; i<tillsGMT2.length; i++) {tillsGMT2[i].innerHTML = hoursGMT2_till + ":" + minutes_till;}
}
</script>

<style type="text/css">
<!--
body { font-family: arial, helvetica, sans-serif; font-size: 11pt; background-color: #fff; margin-bottom: 0; margin-left: 4px; margin-right: 4px; margin-top: 0; padding:0;}
.theme-main-pl {position: relative; float: left; margin-top: 0;margin-bottom: 0; border-bottom: 2px solid #ffcc00; width: 100%; }
.theme {float: left; width: 90%; font-weight: bold; font-size: 11pt; font-family: verdana, arial, sans-serif; white-space: nowrap; color: #668ac6;}
table.info-pl { margin-top: 0; padding: 3px; width: 100%; background-color: #fbf9ea; border-bottom: 1px solid #ffcc00; }
table.info-pl td { font-size: 10pt; vertical-align: top;}
.theme-main {float: left; margin-top: 0;margin-bottom: 0; border-bottom: 2px solid #a7a7a7; width: 100%; }
.table-info { padding: 3px; background-color: #ffffff; border: 1px solid #a7a7a7; }
table.info { margin-top: 0; padding: 3px; width: 100%; background-color: #fbf9ea; border-bottom: 1px solid #8e8e8e; }
table.info td { font-size: 10pt; vertical-align: top;}
-->
</style>
</head>

<body onload="updateHours();">
<br /><br />
<img src="/error/allegro/logo1.gif" alt="Allegro" title="" /><br />
<div class="theme-main-pl"><div class="theme">Przerwa konserwacyjna - przepraszamy</div>
</div><br clear="all" />
<table class="info-pl" cellpadding="5" cellspacing="0">
<tr>
<td>
W godzinach <a name="from"></a> do <a name="till"></a> serwis Allegro będzie niedostępny.
Oferty sprzedaży, które powinny zakończyć się w tym czasie, zostaną przedłużone o 24 godziny.

<br />Przepraszamy.
<br /><br />
Zespół Allegro
</td>
</tr>
</table><br />
<br />
Dariusz Żukowski

Dariusz Żukowski [keczerad]
Programista z
zamiłowania.

Temat: Kwiatki w cudzych skryptach / bazach

Tomasz Biniecki:
Prosze podaj przyklady nad jakimi pracowales z blob ja sam nie mam wielkiego doswiadczenia. Robilem kiedys project w firmie Cable&Wirelss i oni majac produkt ktorym byly 'downloads' trzymali je jako blob. Jednak zanim request klienta dotarl do miejsca w ktorym korzystal z tej tabeli musial przejs weryfikacje (login, payment itd.) tak wiec w tym wypadku baza nie byla obciazana.

pracuje obecnie na plikach, bo mam dosc przepychenek z "madrymi adminami", tyle tylko to jest tak, ze koszty sa po mojej stronie bo ja musze wymyslic logike do usuwania i panowania nad transakcjami. Dobrze zaprojektowana struktura w bazie danych nie obciazy serwera. Dal przykladu w nowy M$ SQL 2008 sa już pola typu "plik" i moga być przechowywane na innym dysku, co przyspieszy prace odczytu danych tych nie plikowych. Mozna tez wysynac teze ze skoro M$ robi takie rzeczy to jednak chyba wygodniej przechowywac plik w bazie tym bardziej, ze oprócz backupu mamy dostep do transakcyjnosci co jest duuuzo zaleta.Dariusz Ż. edytował(a) ten post dnia 18.09.08 o godzinie 09:32
Piotr P.

Piotr P. Software Developer

Temat: Kwiatki w cudzych skryptach / bazach

Dominik P.:

Uważam, że najlepszym rozwiązaniem są bfile.
Skąd ten lęk przed blobami?

Bo część obecnych aplikacji była projektowana dawno temu gdy rozmiar pliku był ograniczony. Utrzymywanie 20GB plików w bazie było wyzwaniem nie lada.

Minusem utrzymywania plików w bazie jest choćby replikacja. Czy to całej bazy czy inkrementalnych zmian. Nie mam na myśli replikacji danego silnika ale rozwiązania gdzie jedna strona to MySQL, druga SQLite a trzecia PostgreSQL na przykład.

Większość rozszerzeń do PHP które operują na plikach wymaga lokalizacji pliku a nie uchwytu do pliku. W takich przypadkach nie masz innego wyjścia jak odczytac plik, zapisać go w /tmp na przykład i rozpocząć pracę z kopią pliku.

Jeśli chcesz wykorzystać x-sendfile albo nawet nginx czy lighttpd do wysyłania plików, utrzymywanie ich w bazie pociągnie za sobą widoczne obciążenie systemu.

Są też plusy oczywiście :)

Następna dyskusja:

Hierarchiczne struktury w r...




Wyślij zaproszenie do