- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Milyen házat vegyek?
- Vezeték nélküli fülhallgatók
- Milyen egeret válasszak?
- Hobby elektronika
- 80% vs. 100% – Tönkreteszed az aksit, ha mindig feltöltöd? – Tech Percek #6
- HDD probléma (nem adatmentés)
- Micro Four Thirds
- Fujifilm X
- Jóárasítja két Arrow Lake-S CPU-ját az Intel
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Siriusb #6886 üzenetére
"ha valamikor bővíteni kell az oldal funkcionalitását, csak jobban jársz..."
Mire gondolsz konkrétan? Csak azért kérdezem, mert elvileg a Joomla is könnyen bővíthető, és számtalan modult készítettek hozzá, ráadásul úgy tudom, az egyes template-ek és modulok sok esetben visszafelé is kompatibilisek (ezt saját tapasztalatból nem tudom se cáfolni, se alátámasztani, csak hallottam olyantól, aki használ Joomlát egy ideje), míg ez Drupalról eddigi tapasztalataim alapján nem elmondható.
Sok fórum olvasgatása során mondjuk arra jutottam én is, hogy a Drupal jópár szempontból "profibb", a kódja szebb, letisztultabb, ráadásul brutálhosszú dokumentáció van hozzá. Másik szempont mondjuk, hogy a Joomlához meg esetleg épp a nagyobb népszerűsége miatt lehet több helyen segítséget találni gyors keresés után."Részemről örülök, hogy már belevágtál ilyen projektbe, én is a Te tudásodból élek :
"
Na, ne túlozz.
A menüs linkeket köszi, bár asszem már találkoztam velük, de most jobban áttanulmányozom.
Ja tényleg, azt elfelejtettem mondani, hogy amennyiben valamelyik részre az "Elsődleges hivatkozások" nevü menürészt bepakolom, ott tök jól látszik a menühierarchia, tehát azt elvileg simán tudnám felülbírálni CSS-sel és/vagy JavaScripttel, hogy hogyan jelenjen meg, nekem csak az volt a fura, hogy elvileg az alapmenürendszernek kapásból kéne tudnia ezt a lenyíló menüs dolgot.(#6888) PazsitZ :
"a drupal vezet globális használatban"
Tényleg? Csak mert eddig úgy tudtam, még mindig a Joomla a népszerűbb, ezért is van, hogy sokkal több template és modul található meg hozzá, mint Drupalhoz...
Mondjuk én csak abból indulok ki, amiket fórumokon és egyéb helyeken olvastam, de az nagyjából mindenhol egybecsengett, hogy a Joomla épp amiatt jóval népszerűbb (állítólagos statisztikák alapján, én ilyeneket mondjuk nem nézegettem), mert kattintgatós módszerrel szinte még a hülye is össze tud vele dobni egy egyszerűbb oldalt. Drupal meg mondjuk állítólag nehézkesebb ilyen szempontból. Őszintén szólva utóbbit sem értem, miért, legalábbis a 7-es változatnál, mert ott egy nagyon fasza AJAX-os felületen full egyszerű cikkeket írogatni, menüket hozzáadni, meg a többi dolgot megvalósítani, ilyen szempontból nem találtam nehezebbnek a Joomla-nál. DE kipróbáltam a Drupal 6-ost is, az még tényleg nem ennyire kézenfekvő, szerintem a 7-es felülete sokat egyszerűsödött."Viszont ezzel szemben sokkal többre képes, mint a joomla."
Milyen szempontból? Úgy tudom, jogosultságok és SEO terén pl. a Drupal erős, de Joomlához meg szinte nincs olyan modul, ami ne lenne megtalálható neten.Ja tényleg, még egy szempont, ami engem még inkább a Drupal felé lök: nálam fejlesztés közben a php.ini-ben a hibajelentéssel kapcsolatos alapbeállítás az E_ALL | E_STRICT, hogy a legszigorúbb hibaellenőrzés legyen bekapcsolva, így elkerülve a későbbi bakikat, és a Joomlánál ezen beállítás esetén szinte nincs olyan menüpont, amelyikbe belelépve ne kapnék valami PHP-hibát (az E_STRICT beállítás tényleg elég szigorú). Ez számomra nagyon zavaró. Ahogy észrevettem, Drupalnál ezzel szemben erre is odafigyeltek, mert a Drupal menüpontjainak böngészgetése közben egyáltalán nem látok PHP-s hibát.
Sokan mondják, hogy ezek a hibajelentések figyelmen kívül hagyhatók, és felesleges foglalkozni velük, de ezzel nem értek egyet. Fejlesztés közben legyen bekapcsolva, így lehet megtanulni elkerülni nemtörődömségből, igénytelenségből vagy épp kisebb tudáshiányból eredő bakikat (én is rengeteget tanultam ezekből). Főleg egy keretrendszernél nem mindegy, mennyire figyelnek oda az alapvető programozástechnikai hibákra, még ha azok kisebb hibák is, amik összességében nem okoznak nagy galibát. -
Sk8erPeter
nagyúr
"Az absztrakt osztály lényege, hogy ez egy osztály, aminek néhány függvénye csak deklarálva van, de nincsenek definiálva (abstract függvények). Ez azt jelenti, hogy az osztály megmondja, hogy milyen pontosan függvényekre van szükség a működéséhez, de ezeket a függvényeket a leszármazottak kötelesek implementálni."
Ezt azért javítanám, mert ez így nem teljesen igaz.
Amit Te írsz, vagyis az, hogy egy osztály nem tartalmaz definíciókat, hanem csupán tartalmazza azon metódusok deklarációját, amelyeknek definícióját majd az azt megvalósító osztályoknak tartalmaznia kell, az inkább az interface-re vonatkozik: [link].
Az absztrakt osztály igenis tartalmazhat metódusdefiníciókat, mivel egy absztrakt osztálynak nem feltétlenül absztrakt az összes metódusa - lásd ezt a példát php.net-ről. Lehetnek tehát olyan osztályok, amelyek megvalósítják az absztrakt osztályt, és az ősosztályban eleve definiált függvényt fel is tudják használni, anélkül, hogy ez explicite felül lett volna bírálva - DE akár az absztrakt osztályban eredetileg is definiált metódust felül is írhatja a leszármazott osztály egy azonos nevű és visszatérési értékű metódussal.Írtam pár rövid példát a szemléltetésre:
abstract class AbstractClassExample{
public abstract function cannotBeDefinedInAbstract(){
echo 'This is an abstract function in abstract class - gives an ERROR, it won\'t be echoed!';
}
}Ez nyilvánvalóan rossz, mert abstract függvénynek nem lehet függvénytörzse, hibát is kapunk rá:
"Fatal error: Abstract function AbstractClassExample::cannotBeDefinedInAbstract() cannot contain body in D:\Honlap\www\proba\index_2.php on line 6"
Ha az adott sort lecseréljük így:
public abstract function cannotBeDefinedInAbstract();
akkor már nem kapunk hibát.A többi esettel kiegészítve itt egy hosszabb példa:
<?php
abstract class AbstractClassExample{
public abstract function cannotBeDefinedInAbstract();
public function itsAlreadyImplementedInAbstractButCanBeOverridden(){
echo 'This is derived from the abstract class!';
}
}
class ExtendsAbstract extends AbstractClassExample{
public function cannotBeDefinedInAbstract() {
echo 'This is the implemented function in derived class!';
}
public function anotherFunction(){
echo 'This is just anonther example function.';
}
}
$extendedClass = new ExtendsAbstract();
$extendedClass->cannotBeDefinedInAbstract();
echo '<br />';
$extendedClass->itsAlreadyImplementedInAbstractButCanBeOverridden();
echo '<br />';
$extendedClass->anotherFunction();
echo '<br />';
?>Ennek kimenete a következő:
This is the implemented function in derived class!
This is derived from the abstract class!
This is just anonther example function.Az itsAlreadyImplementedInAbstractButCanBeOverridden() függvény tehát egy absztrakt osztályban lett megvalósítva, a leszármazott osztály mégis eléri, és megfelelően meg is valósítja az ott szereplő kiírást.
Ez azonban felülbírálható:
class ExtendsAbstract extends AbstractClassExample{
public function cannotBeDefinedInAbstract() {
echo 'This is the implemented function in derived class!';
}
public function itsAlreadyImplementedInAbstractButCanBeOverridden() {
parent::itsAlreadyImplementedInAbstractButCanBeOverridden();
echo '<br />This comes from the derived class.';
}
public function anotherFunction(){
echo 'This is just anonther example function.';
}
}Ebben az esetben az ExtendsAbstract függvényben is megvalósítjuk az említett itsAlreadyImplementedInAbstractButCanBeOverridden() függvényt, így az felül lesz bírálva, a parent::itsAlreadyImplementedInAbstractButCanBeOverridden(); sorral viszont továbbra is érvényesül a szülőben implementált függvény összes feladata, így a kimenet a következőre módosul:
This is the implemented function in derived class!
This is derived from the abstract class!
This comes from the derived class.
This is just anonther example function. -
LW
őstag
A fenti sessionkezelés így nézne ki? [Pastebin]
-
cucka
addikt
Nem muszáj singleton-t használni, tulajdonképpen elsőre bőven jó egy olyan osztály, ami valóban oop-s és elvégzi a dolgát, az osztályt használó kód majd biztosítja azt, hogy csak 1 példány legyen belőle.
(A session amúgy is egy globális valami és egy darab van belőle)Itt találsz példát singleton osztályra.
-
LW
őstag
Köszönöm. Kerestem pár példakódot úgy vélem értem a singleton osztályokat. Estére rendbe rakok mindent.
Ha az osztály példányosítása után szükségem van a singleton osztályra egy másik programblokkban, akkor az első példány referenciáját használom?
Egyáltalán nem sértő. Tisztában vagyok vele, ezért is kérdezek tőled/tőletek.
Nem tanítottak nekem php programozást, de más (egyébként objektum orientált) nyelvet is csak futólag. Ha minden igaz, öt nap múlva megkezdődnek egyetemista éveim. -
cucka
addikt
Egyébként ha már ennél a témánál vagyunk, megosztanék két fontos dolgot, amit néhány évnyi php framework fejlesztés alatt sikerült megtanulni és amiért nem javaslom senkinek, hogy különösebb indok nélkül belevágjon:
1. A saját framework soha nem készül el.
2. A saját framework soha nem lesz annyira jó, hogy elégedetten hátradőlhess.Természetesen hobbiból lehet keretrendszert fejleszteni, meg sok dolgot meg lehet tanulni ezáltal, a fentiek nem erre vonatkoznak.
-
cucka
addikt
Egy gyors ránézés után egyértelmű, hogy nálad nem jött át, hogy mire jó az abstract osztály.
A kódod gyakorlatilag globális függvények halmaza, amiket egy osztályba tettél. Na ettől nem lett oop-s a kód.
Az absztrakt osztály lényege, hogy ez egy osztály, aminek néhány függvénye csak deklarálva van, de nincsenek definiálva (abstract függvények). Ez azt jelenti, hogy az osztály megmondja, hogy milyen pontosan függvényekre van szükség a működéséhez, de ezeket a függvényeket a leszármazottak kötelesek implementálni.
A fentiek alapján ki lehet jelenteni, hogy a te osztályod teljesen fölöslegesen használja az "abstract" kulcsszót, mert pont a lényeg hiányzik belőle.Amire neked ennél a session osztálynál szükséged lenne, az egy rendes példányosítható osztály, ami singleton (tehát egy időben csak egy példánya létezhet, nézz utána wikin, hogy hogyan és miért).
Az alkalmazásod indulásnál példányosítja a session osztályt, majd használja azt. Természetesen az osztály függvényei nem statikusak, mert annak semmi értelme nincs ebben az esetben.Szólj ha valami nem kerek
(Egyébként egy nem sértőnek szánt megjegyzés: sokkal jobban járnál, ha fognál egy komoly php-s framework-öt és elkezdenéd használni, illetve megpróbálnád megérteni, hogy hogy működik, mert nekem innen úgy tűnik, hogy azért van egy-két lyuk a tudásodban, amit be kéne foltozni ahhoz, hogy értelme legyen a saját framework írásának)
-
LW
őstag
Javítva: http://pastebin.com/dwuZLAJK
-
cucka
addikt
Cucka mondta nékem, hogy statikus eljárásokat/függvényeket abstract osztályba rakni bohóckodás.
Most nem nézek utána, de szerintem azt írtam, hogy saját framework-öt írni a bohóckodás. (De ha mégsem, akkor erre gondoltam)
Statikus függvényeket nem blaszfémia használni, egyszerűen csak ugye ezek lényege, hogy egy osztályra vonatkoznak, nem pedig az osztály egyes példányaira, így pontosan akkor kell őket használni, amikor pontosan erre van szükség - általában nincs. Kód vagy osztálydiagram nélkül nehéz okosakat mondani, esetleg megmutathatnád, hogy mit készülsz implementálni.
A statikus függvények másik jellemző felhasználása, amikor rengeteg segédfüggvényeked van (mondjuk egy framework-ben ez jellemző) és ezeket témakör szerint osztályokba rendezed úgy, hogy mindegyik statikus lesz. Tulajdonképpen globális függvényként használod őket. Ennek az előnye:
- ha megcsináltad rendesen az autoload()-ot, akkor az megoldja az include-okat erre is
- nem parse-oltatsz le fölöslegesen egy csomó kódot a php-val
- szép rendezett kódod lesz -
LW
őstag
Cucka mondta nékem, hogy statikus eljárásokat/függvényeket abstract osztályba rakni bohóckodás.
Ha nekem van pár összetartozó függvényem és azoknak esetleg segédfüggvényei, akkor nagyon megszégyenítem az abstract osztályokat azzal, hogy a feladatát megcsúfolva gyűjtőmederként használom, vagy e sajátos felhasználási mód jár valami teljesítménybéli, egyéb hátránnyal?
Így hívom meg őket SESSION_MANAGER::Manage();Jobb ha globális függvényeket kreálok prefixekkel pl?
-
Forza_JUVE
aktív tag
Sziasztok!
Van egy php vendégkönyvem, ami állandóan megtelik spammel. Ezzel a biz. Captcha kóddal próbálkozom, de nem igazán értek a php programozáshoz, így elkelne egy kis segítség.
Követtem a leírásokat ezen az oldalon. Letöltöttem a zip fájlt, majd feltöltöttem a webserver gyökerébe a securimage mappát.
Odáig már eljutottam, h a megfelelő helyre a php-ban beillesztettem a kép helyét ... de vmi nem stimmel.
Csak a háttér jelenik meg és váltakozik ha új képet kérek, de a karakterek nem jelennek meg rajta. Ez miért lehet? Íme egy kép.
Ha nyomkodom a "Different Image"-t ... csak a háttér váltakozik.<img id="captcha" src="/securimage/securimage_show.php" alt="CAPTCHA Image" />
<input type="text" name="captcha_code" size="10" maxlength="6" />
<a href="#" onclick="document.getElementById('captcha').src = '/securimage/securimage_show.php?' + Math.random(); return false">[ Different Image ]</a>Ha a böngészőben megnyitom a kódban szereplő securimage_show.php fájlt, akkor ott is csak a kép jelenik meg karakterek nélkül.
A feltöltött securimage mappában van egy words.txt fájl, benne közel 16000 szóval. Mindegyik 6 karakter ... ezeknek kéne megjelenni, de mégsem.
Amíg a képmegjelenítéssel gond van, nem is akartam továbbmenni, hogy teszteljem.
Vki tudna segíteni??
-
PazsitZ
addikt
A mezők száma nem befolyásolja tudtommal.
De viszont ilyen szintű szerkezetnél felvetődik az adatszerkezet és a velejáró lekérdezések típusa.
Mivel egy táblát teleaggatni tucatnyi indexekkel messze nem takarékos avagy jó megoldás. Amennyiben viszont tényleg egyszerre lekérdezendő szűrést nem igénylő adatokról van szó, nem releváns, hogy 2 darab mezőt vagy 22 kérdezel le.(#6885) Sk8erPeter: Nem tapasztalat, csak hallomás alapján és egy épp pár napja általam nézet grafikon alapján a drupal vezet globális használatban.
Viszont a drupal konfigurálása és applikálása jelentősen komplikáltabb lehet.
Viszont ezzel szemben sokkal többre képes, mint a joomla. -
Frigo
őstag
SZVSZ ezek közül inkább Drupal :nagyon elterjedt és elég komoly közösség alakult ki körülötte ,rengeteg könyv ,tutorial született Drupal témában és talán az egyik alapból legjobban testre szabható CMS ,egyedül talán a modul írás lehet szívatós .Mondjuk komoly e-commerce oldalt nem építenék egyikre se, arra inkább Magento .Wordpress amúgy miért nem játszik ?
-
Siriusb
veterán
válasz
Sk8erPeter #6885 üzenetére
Én mindenképp Drupal mellett vagyok, mert ha valamikor bővíteni kell az oldal funkcionalitását, csak jobban jársz...
Nekem is az tetszik, hogy szinte minden meg van készen, csak integrálni kell a különféle "extrákat", hatalmas idő- és energia megtakarítás.
Részemről örülök, hogy már belevágtál ilyen projektbe, én is a Te tudásodból élek :Drop down menu: http://drupal.org/node/990154 Nem tudom, ezzel találkoztál-e, hátha fel tudod használni.
És még ez: http://www.xtreeme.com/drupal-menu/ -
Sk8erPeter
nagyúr
válasz
Siriusb #6884 üzenetére
Hali!
Köszi a hozzászólást, nagyjából én is ezekre jutottam, de igazából még mindig nem sikerült dönteni ezek alapján sem.
Tulajdonképpen mindkettő jó valamilyen szempontból, Drupalt használtam eddig többet, de ez a lenyíló menüs dolog számomra tökéletesen érthetetlen módon nem akar összejönni, egyszerűen a HTML-kimeneten sem jelenik meg, az már jobb eset lenne, ha CSS-szarakodásra lenne szükség, de sajnos nem csak erről van szó."Mondjuk az nem világos, Neked miért lenne CMS-re szükséged, simán megírsz mindent kapásból, nem?!
"
Hát köszi a feltételezést.Meg tudnám írni az oldalt úgy, hogy jól testreszabható legyen, admin-felülete is legyen, stb., de az a baj ezzel, hogy rengeteg időt vesz igénybe, főleg az, hogy mindent elejétől a végéig meg kell írni magadtól, és lényegében ilyenkor az embernek az idő múltával fel kell fedeznie a spanyolviaszt, tehát a munkája végére nagyjából oda jut el, hogy akár nyugodtan használhatott volna erre egy keretrendszert is.
Azért találom jónak ezeket, mert rengetegen fejlesztik, csiszolgatják, és valóban fel tudják gyorsítani a munkát.
Szívtam már nagyon sokat azzal, hogy admin-felületet elejétől végéig én csináltam meg, és a validálással, teszteléssel, hibák javításával, kiegészítgetéssel, megfelelő adatbázis létrehozásával és minden egyébbel együtt rengeteg időt vett igénybe - de legalább egész stabil tudásra és "fejfalbeverésre" sikerült eközben szert tenni...
Gondolj bele, akár csak azt megoldani, hogy a menürendszer tetszőlegesen bővíthető és egymás alá rendelhető legyen (szülő-gyerek viszony), a hozzá tartozó adatbázis kiépítése, majd miután ez megvan, fancy átrendezhető felületet kialakítani hozzá, nevüket és egyebeket szerkeszthetővé tenni, validálni, hogy elkerüljük a rosszindulatú kód beágyazásának lehetővé tételét, stb., már kapásból egy rohadt sok időt igénybe vevő feladat. És ez még csak egy a sok megoldandó feladat közül.
Szóval végül is nem ördögtől valók ezek a keretrendszerek, tulajdonképpen szükséges rossz, vagy épp jó, mert sok PHP-fejlesztő úgy gányolja szét az oldalát, és rakja tele biztonsági lyukakkal, ahogy kell, ezek nagy része elkerülhető Joomla, Drupal és társaival, még ha ezekben is vannak biztonsági rések - legalább nem tátonganak.Ha a Drupalhoz valakinek sikerült megoldani a lenyíló menüs problémát (adott menüpont a szülőelem, hozzátartozó gyerekelemek az almenüpontok), akkor az ne kíméljen, hogy csinálta.
-
Siriusb
veterán
válasz
Sk8erPeter #6883 üzenetére
Szia!
Ha csak alap dolgokra kell, a Joomla jó - igaz csak egyszer építettem fel benne egy weboldalt félig-meddig, szóval nem túl mérvadó vélemény, mégis az előnyét az egyszerűségében látom, hiszen a Drupal sokkal összetettebb.
Azt hallottam - hozzáértőtől -, hogy a Drupal biztonságosabb. Ami még a Drupal mellett szól, hogy nekem jobban tetszik.Viccet félretéve, sokkal jobb felhasználókezelés - hiszen annyi felhasználó csoportot tudsz létrehozni, amennyit akarsz, a tartalmak megtekintését is tudod ezek alapján szabályozni stb. Úgy általában, sokkal rugalmasabbnak találtam, mint a Joomlá-t.
Amikor legutoljára használtam jQuery-t benne (v6), akkor csak az 1.4.2 verzióval ment, de lavalamp menü működött. Azt hiszem, a 7-es verzió már újabb jQueryt is támogat.Mondjuk az nem világos, Neked miért lenne CMS-re szükséged, simán megírsz mindent kapásból, nem?!
-
Sk8erPeter
nagyúr
Hali!
A tapasztalataitokra lennék kíváncsi. Joomla vagy Drupal?
Weblaboron és még csomó helyen késhegyre menő vitákat olvastam a témában, nagyjából tényleg Windows vs. Linux témához hasonlót.
Nektek volt tapasztalatotok ezzel kapcsolatban, hogy melyikkel tudnátok felgyorsítani a munkátokat?
Joomlát kicsit elvileg többen használják, de Drupal is népszerű, mindkettőhöz sok modul és skin/theme/template van.
Drupal 7-ben nagyon tetszett, hogy full AJAX-os és egész modern admin-felülete van az egyik skinnel, DE sajnos a 7-es változathoz még sok modult nem ültettek át.Na meg Drupalnak a 6-os és 7-es változatával is szoptam a legördülő menüknél, egyszerűen egyáltalán nem akar működni, pedig úgy csináltam mindent, ahogy ebben a tutorialban van (mondjuk ez a Gardens-re vonatkozik), plusz jól adtam meg a szülőelemeket is, tehát nem értem. Az ingyenes Drupal Gardens-es oldalon műxik a menü, ahogy kell, saját oldalon más témáknál nem.
Előre is köszi minden hozzászólást, véleményt!
-
ArchElf
addikt
válasz
DeltaPower #6880 üzenetére
Túl sok indexnél meg lassulnak a manipulációs eljárások (I/U/D), ráadásul nő az adatbázisméret, mint a bolondgomba...
AE
-
Alukard
senior tag
válasz
DeltaPower #6880 üzenetére
A joint azért kerülöm ebben az esetben, mert átlag 22 kisebb csak az értékek szöveges megfelelőjét tartalmazó táblát kéne hozzá fűznöm ehhez a nagy táblához attól függően, hogy milyen típusú ingatlanról van szó...
A 11 kisebb tábla csak 1 alternatív 5let volt... -
DeltaPower
addikt
válasz
Alukard #6879 üzenetére
ebben az esetben felesleges felbontani típus alapján 11 táblára.
általánosan elmondható, hogy minden olyan mezőt indexelni kell, ami joinban vagy feltételben szerepel. kihagyott indexelés miatt nagy (1000+ soros) táblák joinolásánál, keresésénél több nagyságrenddel emelkedhet egy query ideje -
Alukard
senior tag
Szóval, ha jól értem akkor az 51 oszlopost tábla 10e sornál sem lesz probléma ha megfelelően indexelem a táblát... És ha jól emlékszem a főiskolás tanulmányaimra célszerű azokat az oszlopokat indexelni amelyek szűrés végett legtöbbször kerülnek használatra...
Szerkezet szempontjából egy ingatlan adatbázisról lenne szó ami 11 ingatlan kategóriának tartalmazná a paramétereit, típustól függően kerülnének az egyes oszlopok feltöltésre (értelemszerűen helyenként kicsit foghíjjas lenne a tábla). Az elsődleges kulcs 1 auto increment szám lenne, utána min 13 fixen kitöltött oszloppal és a feltöltési érték lehet int, varchar, text... természetesen ahol lehet(int/tinyint/..., varchar) ott maximális mező méret is meg lesz adva.
-
cucka
addikt
válasz
Tele von Zsinór #6876 üzenetére
Javítsatok ki, ha rosszul tudom, de szerintem a mezők száma nem befolyásolja érdemben a sebességet.
-
cucka
addikt
válasz
Alukard #6874 üzenetére
Sok függ attól, hogy milyen lekérdezéseket fogsz futtatni rajta és hogy hogyan indexeled, de általában véve 100ezer sornál kezdődnek a problémák.
(Persze, ha az olcsójános bt-nél van host-olva az alkalmazás, ahol beraktak egy asztali gépet a szerverterembe és azon fut egyszerre száz oldal meg az adatbázisuk, akkor nyilván szűkebb a mozgástér)
-
Alukard
senior tag
Egy kérdés: szerintetek mekkora az a mysql tábla méret ami még gazdaságosan kezelhető?
Azért kérdezem, mert létre kell hoznom egy adatbázist ami vagy egy 51 oszlopos és indulásnak 400 soros táblázatból áll vagy 11, átlag 25 oszlopos táblázatból állna és a ~400 sor ezek között oszlana el...
Sajnos nem tudom már ennél jobban redukálni a dolgokat és ezek a számok nekem -mint kezdőnek- elég nagynak tűnnek....
-
cucka
addikt
a tömb elemei referencia nélkül is megmaradnak az éterben?
Természetesen ez esetben nem maradnak meg az éterben, jól is néznénk ki, ha ilyen memory leak-ekkel lenne tele a php.
A php-ben van garbage collector, ami folyamatosan figyeli a lefoglalt változókat (pontosabban zval-okat) és ha valamelyiknek a ref_count-ja nulla lesz, akkor felszabadítja a hozzá tartozó memóriát. Ha nagyon érdekel a téma, a php manual-ban le van írva részletesen [link] -
LW
őstag
(szuperglobálok folyt.)
Közben gyakorlatban is bevetettem, vagyis tettem egy próbát a megálmodott szuperglobál osztálypéldányokkal és egy-két anomália és kérdés nem hagy nyugodni.
Ha csinálok egy ilyet: $_COOKIE = new Superglobal($_COOKIE); És setcookie-val átírok egy sütit, akkor a példányosított objektum nem változik, viszont az alap szuperglobál tömb változna. (Na ez pl. be is tett a sessionkezelésnek)
Ha csinálok egy másik osztályt, ami örökli a superglobal osztály tagjait és kiegészítem egy Set([...]) függvényt, akkor meg eljárással paraméterezni a setcookie([...])-t sztem kicsit barbár dolog, de átírná az objektumban lévő tömb értékét is a sütik mellett.
Ha egy idegen kód használná ezeket a tömböket (egy megírt osztály pl.), nem tudja, mert osztályok példányává alakítom őket. Ha meghagyom őket és új globális objektumokat hozok létre, akkor meg mindent kétszer tárolok.
Késő van, remélem azért érthetően összeraktam.
üdv. LW
-
LW
őstag
válasz
bnorbert989 #6868 üzenetére
Sztem erre az egy html tagre lesz szükséged:
<img src="(kép elérési útja)" alt="header" width="970" height="399"> -
bnorbert989
tag
Sziasztok.
Van egy e107 alapú webem ,rá integráltam egy témát.Alapból a fejléc illetve a logó egy Flash Alapú dolog.
Én ezt szeretném kciserélni egy Png-képre.
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0' id='heroesmuheader' width='970' height='399'>
<param name='movie' value='".THEME."images/heroesmuheader.swf'>
<param name='bgcolor' value='#fff'>
<param name='quality' value='high'>
<param name='wmode' value='transparent'>
<param name='allowscriptaccess' value='samedomain'>
<embed type='application/x-shockwave-flash' pluginspage='http://www.adobe.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' name='logo' width='970' height='399' src='".THEME."images/heroesmuheader.swf' bgcolor='#fff' quality='high' wmode='transparent' allowscriptaccess='samedomain'>
<noembed>
</noembed>
</embed>
</object>
E helyett szeretném betenni a képet,anélkül hogy én a képből egy swf formátumú fájlt csinálnék.
nagyon nem vagyok képbe a php terén,a kérdésem az hogy milyen kódrésszel tegyembe a képet? -
cucka
addikt
Vágom. Az első megoldást javaslom, mert
- nem kell nyilvántartani, hogy mire futott már le a stripslashes és mire nem
- ha valami ott van a REQUEST-ben, akkor az valószínűleg azért van ott, mert szükség van rá, használni szeretnéd valamire. Ha a REQUEST tele van szeméttel, akkor előbb azt kell megoldani, hogy ne legyen. -
LW
őstag
A végén félreértettél. Ha POSTnak van 100 eleme, és a programnak csak 3 kell belőle, akkor nem kell bejárni és átalakítani az összes elemet, hanem csak használat előtt azt a 3at külön tárolás nélkül. Ha nem tárolom le és újra használom, akkor újra át kell alakítania (az eredetiből).
Igazából a két megoldás különbségéről van szó:
1. pl. Array_map()-al bejárom és GET POST COOKIE elemeit stripslashelem, amennyiben magic_quotes on. Jelentős hátrány: Ha egy rosszindulatú látogató küld egy tartalmas kérést, akkor akarva-akaratlanul stripslashel ész nélkül.
2. Használat előtt stripslashelem a kívánt kulcs alatti elemet. -
cucka
addikt
hanem egyszer beállítom és mindegyikre objektumra érvényes. Végső soron ezért vannak a statikus adattagok, vagy nem?
A lényeg, hogy ha az objektum be tudja állítani magának a konstruktorban, akkor ne kelljen kívülről beállítani.
Amúgy igen, lehet statikusnak is deklarálni ezt a változót, ez esetben mondjuk legyen null a kezdőértéke és a konstruktor csak akkor állítsa be az értékét, ha az null.Am így valóban jobb és szakszerűbb, bár sztem így több memóriát eszik
Többet nyersz a jó kóddal, mint azzal, ha spórolsz 3 byte memóriát.viszont a GET és POST nem minden elemén stripslashelek, hanem csak amelyik kell.
Ha be van kapcsolva a magic_quotes, akkor mindegyiken kell.Az megint egy kérdés, hogy egy elemet többször fölöslegesen is, amennyiben nem tárolom el egy változóban.
Ha egy elemre többször fut le a stripslashes, az nagy baj, mert módosítja magát az adatot is. A kódnak biztosítania kell, hogy csak egyszer fusson le. Például a kód, amit írtam/írtál, az biztosítja ezt. -
LW
őstag
Azért írtam így, mert nem kell annyiszor get_magic_quotes_gpc(); meghívni, ahányszor példányosítom, hanem egyszer beállítom és mindegyikre objektumra érvényes. Végső soron ezért vannak a statikus adattagok, vagy nem?
Am így valóban jobb és szakszerűbb, bár sztem így több memóriát eszik, viszont a GET és POST nem minden elemén stripslashelek, hanem csak amelyik kell. Az megint egy kérdés, hogy egy elemet többször fölöslegesen is, amennyiben nem tárolom el egy változóban.
-
cucka
addikt
Kicsit átírtam. Pár ökölszabály:
- a konstruktor azért van, hogy inicializálja az objektum változóit
- ha nem vagy benne biztos, hogy statikus adattagot/függvényt kell használj, akkor nem kell használd.class Superglobal{
protected $content = array();
protected $magic_quotes = false;
function __construct($sga){
$this->content = $sga;
$this->magic_quotes=get_magic_quotes_gpc();
}
function Get($key, $secure = false, $default = false, $remove_html = false, $remove_js =false){
if(isset($this->content[$key])){
$value=$this->content[$key];
if($this->magic_quotes)$value= stripslashes($value);
if($secure)$value = STRINGS::Secure($value, $remove_html, $remove_js);
return $value;
} else {
return $default;
}
}
} -
LW
őstag
Ilyesmire gondolt, Mester?
class Superglobal{
private $content = array();
static public $magic_quotes = false;
function __construct($sga){
$this->content = $sga;
}
function Get($key, $secure = false, $default = false, $remove_html = false, $remove_js =false){
if(isset($this->content[$key])){
$value=$this->content[$key];
if(self::$magic_quotes)$value= stripslashes($value);
if($secure)$value = STRINGS::Secure($value, $remove_html, $remove_js);
return $value;
} else {
return $default;
}
}
} -
cucka
addikt
Egy kis saját keretrendszert készítek és született az alábbi elgondolás.
Ne készíts saját keretrendszertMinden bizonnyal lassítja a futást, de egyszerűsíti a munkát. Szerintetek érdemes ezt így használni?
Nem érdemes. Ha már keretrendszert készítesz és szeretnél egy szuperglobál osztályt készíteni ahhoz, hogy biztonságosan kezeld a user inputot, akkor
- legyen egy osztályod, ami általánosan meg tudja oldani a feladatot akármilyen tömbre
- a program indulásánál példányosítod az ősosztályt a szuperglobálokra
- az ilyen megoldás egyetlen előnyös oldala, hogy egy helyen le tudod kezelni azt, hogy a szerveren be van-e kapcsolva a magic_quotes_gpc, na pont ez hiányzik a kódból
- a PHP case insensitive függvénynevek esetén, de ha minőségi kódot szeretnél kiadni a kezeid közül, akkor erről a "fícsörről" nem veszel tudomást.
- mivel a PHP egyik alapvető funkciója, hogy implicit cast-ol (szinte) bármit bármivé, ezért ezt beépíteni az osztályodba teljesen fölösleges.Ennek az abstract static bohóckodásnak semmi értelme, gyakorlatilag amit írtál, az ekvivalens azzal, mint ha megírtál volna néhány globális függvényt, csak mellette ott van zajnak egy csomó OOP-s keyword.
-
LW
őstag
Sziasztok. Egy kis saját keretrendszert készítek és született az alábbi elgondolás.
A szuperglobális tömbökből pár kis osztály segítségével típusra átalakítva tudok értékeket használni, azzal sem kell foglalkoznom, hogy létezik-e az elem.
Minden bizonnyal lassítja a futást, de egyszerűsíti a munkát. Szerintetek érdemes ezt így használni?
Példa:
'blah blah blah sql syntax'.GET::Get_var('uname', '', 'secured').'blah blah'üdv. LW
-
Alukard
senior tag
válasz
Brown ügynök #6858 üzenetére
A skype-nak van egy olyan rossz szokása, hogy szereti befoglalni a 80as és a 8080as portokat, ezt a skype beállításaiban ki lehet kapcsolni amúgy.
-
Alukard
senior tag
válasz
Brown ügynök #6856 üzenetére
VH név ütközés? skype?
-
Brown ügynök
senior tag
válasz
Tele von Zsinór #6855 üzenetére
A tűzfal engedi. Most már sikerült elérni hogy 127.0.0.1:8080-on bejön a képernyő, a VH nevet még mindig nem látja.
-
Tele von Zsinór
őstag
válasz
Brown ügynök #6852 üzenetére
Tűzfaladra nézz rá, engedi-e az apache-nak a 8080-on hallgatást.
-
Alukard
senior tag
válasz
Brown ügynök #6852 üzenetére
A host fájl csak az útvonalért felel, hogy az út végén melyik ajtón(port) tudsz bemenni az már a házon(szerver) múlik... Ergó a portokat a VH fájlban kell beállítani. A host-ban ahogy ArchElf kolléga is mondta csak az IP címet kell csak összepárosítani a a VH nevével.
-
ArchElf
addikt
válasz
Brown ügynök #6852 üzenetére
Port nem kell a host fájlba...
AE
-
Brown ügynök
senior tag
válasz
Alukard #6851 üzenetére
Kösz, kijavítottam. Megpróbáltam a host fájlba berakni ezt:
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1:8080 a10.local.com # a10 szerver# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
127.0.0.1:8080 localhost127.0.0.1:8080 nem elérhető
Az Apache elindul, hibát nem jelez, nincs a log-ban semmi. A host fájlt állítom be szerintem rosszul. Ötlet?
-
Alukard
senior tag
válasz
Brown ügynök #6850 üzenetére
docroot végén macskakaparás
ja és ilyen esetben a windows event-log több infóval szolgál, mert rosszúl beállított VH esetén nem szokott elindúlni az apache... legalábbis XAMPP esetén nekem szívózott typo hibáknál és nem indúlt el.
-
Brown ügynök
senior tag
Ha már itt tartunk...
Próbáltam beállítani VirtualHost-t de valamiért nem működött.
Apache httpd.conf :
<VirtualHost *:8080>
ServerName localhost
ServerAdmin opcionális@megadni.hu
DocumentRoot "E:/easyphp/www/A10/
AddDefaultCharset UTF-8
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cenHostnameLookups Off
UseCanonicalName Off
ServerSignature Off
# Könyvtár listázás tiltása:
IndexIgnore *# szerver hiba:
ErrorDocument 500 "Szerver hiba, ne piszkáld!"# Tiltott:
ErrorDocument 403 "Nincs jogosultságod! Ne piszkáld!"<Directory "E:/easyphp/www/A10/">
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>Az Apache nem dob hibát erre.
Host fájlt hogy kellene átalakítani?
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost -
Alukard
senior tag
válasz
Speeedfire #6846 üzenetére
Amióta elkezdtem php-vel játszani, azóta több kisebb-nagyobb projektel foglalkozom/foglalkoztam. Most momentán 6 VH-van beállítva, ebből 4 egy projihoz tartozik.
Azért van szükség a 4 VH-ra mert több domainen fut majd a proji különböző könyvtárakból és az egyes elemeket -mondjuk a frontendet és a backendet- szeretném annyira elválasztani egymástól amennyire csak lehet.
De tovább megyek, fősulin azzal úsztam meg a vizsgát, hogy megmutattam a tanárnak, hogy VirtualBox kliensként futó linux szerverről hogy lehet elérni a Windowsos VirtualBox host-on a linuxos apache VH-kat.
-
Speeedfire
félisten
válasz
fordfairlane #6847 üzenetére
Remélem még páran belém köttök!
-
fordfairlane
veterán
válasz
Speeedfire #6846 üzenetére
Még nálam lokálban is virtualhostok vannak az Apacheban.
-
Speeedfire
félisten
válasz
Sk8erPeter #6845 üzenetére
Valóban így van, de alap esetben kevesen babrálják a virtualhost-ot.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #6844 üzenetére
Ez mondjuk nem igaz, mert VirtualHosttal Apache-ban oda irányítod a webszerver könyvtárát, ahova csak akarod. Pl. lehet, hogy az egyik projekted a http://localhost:4133123 címen elérhető, és a könyvtára - Windows alatt - a D:\ezazegyikprojekt\nos\ helyen található a vinyón, a másik meg http://blabla.local.akarmi.ize címen érhető el, és a könyvtára az F:\tokmindegy\blabla\ helyen van.
-
Sk8erPeter
nagyúr
"jó az easyphp, mert a komodo edit alatt fut szépen"
Mit értesz azalatt, hogy "fut" Komodo alatt?
Gondolom van valami konzolszerűség, amin megmutatja a kimenetet. Ettől függetlenül nem a Komodo értelmezi és futtatja a PHP-kódodat.
NetBeans-nél is be lehet állítani elvileg valahogy, hogy a konzolszerűségen megmutogassa a kimeneteket, én mondjuk a böngészőben szoktam kipróbálni, mi látszik a weboldalon a kódbeli változtatások hatására, parancssori módban a lehető legritkább esetben használom a PHP-t, de annak is van persze létjogosultsága bőven.
Meg mondjuk PHP debuggoláshoz hasznos lehet, hogy a NetBeans saját konzolán látszik a kimenet. -
-
cucka
addikt
Az flock() pontosan arra jó, amit a php manual-ban ír: kér az operációs rendszertől egy lock-ot egy file-ra, magyarul zárolja. Hacsak nem vagy benne biztos, hogy erre szükséged van, akkor valószínűleg nincs szükséged rá.
A netbeans pedig nem fogja lefordítani a php-t, mint ahogy más sem, mert ez egy interpretált nyelv.
-
Lacces
őstag
Másik kérdés: Netbeans-t hogyan kell beállítani, hogy a helyi EasyPHP webszerverrel együttmüködjön?
Nem fordítja le a php oldalakat.
Projekt beállítosn belül valahol?(jó az easyphp, mert a komodo edit alatt fut szépen! minden beállítgatás nélkül)
-
Lacces
őstag
flock($fp, LOCK_EX); illetve van még flock($fp, LOCK_UN);
Néztem angolul a php.net-en, de nem értettem meg, hogy mi ez, mire jó? Valami annyit vettem ki, hogy a fájlba írás/olvasás -nál lehet kérni a zárolás, és azt végrehajtani.
Most akkor mire is jó ez a flock függvény? Gyakorlati haszna van? Most kezdtem el 6 órája tanulni a php-t és hiába van egy közepes angol írásbeli értelmező készségem, ez most kifog rajtam...
Belezavarodtam, hogy ez miért kell és mire jó? (nem bírom angolul felfogni)A segítésget előre is köszönöm!
Lehet már aludnom kéne :-D
-
kadam4
tag
válasz
Sk8erPeter #6837 üzenetére
Sikerült megoldanom, már működik localhoston is szépen.
A probléma oka, hogy cooki beállítás előtt valóban más is volt, méghozzá az index.php-ban.
Átírtam egy picit, így lett egy cookie.php, amiben külön megírtam mikor kell cookie-t beállítani és mikor nem, és ezt a fájlt rögtön be is töltöm az index.php elején, ha szükség van rá. és így akkor működik már localhoston és tárhelyen is egyaránt.
Korábban csak az zavart be, hogy tárhelyen meg működött, de mindegy, legalább tanultam belőle, hogy a setcookie() előtt mi lehet és mi nem.Akik pedig segítettek tanácsaikkal itt az oldalon, azoknak pedig nagyon szépen köszönöm!
-
Sk8erPeter
nagyúr
Hát ja, először localhoston oldd meg a problémát.
"akkor sem állítódik be a cookie"
Mármint gondolom ezalatt azt érted, hogy mindig az általad korábban írt "Warning: Cannot modify header information - headers already sent by (output started at c:\php\index.php:16) in c:\php\page.php on line 17" hibaüzenet jelenik meg.
Nekünk meg ezt kód nélkül amúgy is igen nehéz debuggolni. Azt írja egyébként, hogy az index.php 16. sorában van az első output. Ott mi szerepel? Nem biztos, hogy szándékos az az output, néha akár egyetlen karakter (pl. szóköz) is gondot okozhat, ami véletlenül odakerült.
Ha viszont az output szándékosan került a setcookie() elé, akkor az amúgy is rossz."ha az elején hívom meg, akkor szétesik az oldal szerkezete"
Ettől függetlenül a cookie-kat az elején állítsd be, úgy a logikus. -
kadam4
tag
válasz
Sk8erPeter #6834 üzenetére
Igen ezt úgy értem, hogy a Test_Cookie megjelenik rendesen.
A két magyarázatot olvastam is, de mint írtam, ha saját gépen beállítom: output_buffering = On , meg display_errors = Off , akkor sem jobb a helyzet, mert akkor sem állítódik be a cookie.
Így meg elég macerás, hogy javítok valamit, és fel kell tölteni tárhelyre, hogy kipróbáljam.A megcseréléssel pedig az a gondom,hogy egy a page.php az index.php-be kerül meghívásra, és ha az elején hívom meg, akkor szétesik az oldal szerkezete.
-
Sk8erPeter
nagyúr
"a webtárhelyen probléma nélkül megy"
Ezt úgy érted, hogy az általad beállítani kívánt Test_Cookie is megjelenik rendesen?
Arra, hogy webtárhelyen miért mehet esetleg, arra itt volt két lehetséges magyarázat - de ezek természetesen nem jelentik azt, hogy a tárhelyen bármi "jobb" lenne, mert a probléma attól még fennáll, hogy rossz sorrendben vannak a dolgok, a cookie-kat azután próbálod beállítani, miután a headereket már elküldted a böngésző felé. Megoldás az, hogy megcseréled a sorrendjüket... -
kadam4
tag
válasz
PazsitZ #6832 üzenetére
Értem, akkor az lesz a probléma, hogy van előtte HTML. Ugyanis van egy index.php, amiben van HTML. De a page.php az index.php oldalon kerül meghívásra. És a page.php-ban szerepel a cookie küldés is.
Esetleg erre nincs valami megoldás?
Meg miért van az, hogy a webtárhelyen probléma nélkül megy, EasyPHP-val pedig nem akar működni?
-
kadam4
tag
válasz
Brown ügynök #6825 üzenetére
Az EasyPHP-t frissítettem, de a probléma, még mindig fent áll.
-
kadam4
tag
válasz
fordfairlane #6828 üzenetére
Ha az Output_buffering-ot On-ra állítom, akkor sem működik.
Ha a warningot kikapcsolom, akkor az üzenet ugyebár eltűnik, de attól még a cookie nem fog működni.
-
cucka
addikt
válasz
fordfairlane #6828 üzenetére
Szerintem meg ki vannak kapcsolva a warning-ok (nagyon helyesen
)
-
kadam4
tag
válasz
Brown ügynök #6825 üzenetére
Rendben, majd frissítem.
Tárhelyre feltöltve, akkor miért működik rendesen?
-
Speeedfire
félisten
válasz
Tele von Zsinór #6823 üzenetére
Ilyet nem látok win7 alatt.
Mindegy, akkor ez a kényelmi funkció nem fog menni. -
Brown ügynök
senior tag
Szerintem majd frissítsd az EasyPhP-t: EasyPHP 5.3.6
A problémához: A header információkat hamarabb küldted el és csak utána állítod be a Cookie-t.
-
kadam4
tag
Sziasztok!
Tudna valaki segíteni a következőben?
Cookiet szeretnék beállítani, de valamiért localhost-on nem működik. Viszont tárhelyre feltöltve meg igen. Azt szeretném, ha localhoston is működne.
EasyPHP 1.8-at használok.Így állítom be:
setcookie("Test_Cookie", "OK", time() + 600);Localhoston ez a hibaüzenetet adja:
Warning: Cannot modify header information - headers already sent by (output started at c:\php\index.php:16) in c:\php\page.php on line 17 -
Tele von Zsinór
őstag
válasz
Speeedfire #6822 üzenetére
Próbáld meg a parancsikonban a working directoryt átírni, régebben ez segített, most meg nem tudom tesztelni.
-
Speeedfire
félisten
válasz
Tele von Zsinór #6821 üzenetére
A defaultra gondolok. Szóval ne a dokumetumok/netbeans legyen hanem a munka/web az alapértelmezett mappa. Kis kényelmi funkció csak, de szerintem jó dolog.
-
Tele von Zsinór
őstag
válasz
Speeedfire #6815 üzenetére
Mire gondolsz? 7.0-át használok, a projekt mappa pedig egy nbprojekt n. mappa az adott meló helyén.
-
Santosh
tag
válasz
DeltaPower #6819 üzenetére
Nagyon köszönöm, ez megoldotta a problémát:
$zip->extractTo('./valami/'); -
Santosh
tag
Sziasztok!
Joomla rendszert szeretnék áttelepíteni egy másik tárhelyre, azonban a file-onkénti átvitel nagyon lassú sajnos (a routerem lassítja, még nem jöttem rá, hogy mi az oka). Arra gondoltam, hogy zip file-ban tölteném fel a joomla-t, majd a tárhelyen tömöríteném ki. Létrehoztam egy index.php-t, amibe a következőt írom:
<?php
$zip = new ZipArchive;
$res = $zip->open('valami.zip');
if ($res === TRUE) {
echo 'ok';
$zip->extractTo('/valami/');
$zip->close();
} else {
echo 'failed, code:' . $res;
}
?>Ekkor azonban ezt az üzenetet kapom válaszként:
ok
Warning: ZipArchive::extractTo() [ziparchive.extractto]: Permission denied in /joomlaportal/username/www/index.php on line 6Ha tudnátok segíteni, akkor azt előre is nagyon köszönöm.
-
Alukard
senior tag
Ez inkább html... pontosabban CSS...
body
{
background-image:url('smiley.gif');
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
}forrás: [link]
Amúgy lehetne olyan játszani, hogy adott a kép, intro oldallal meghatározod a használható terület méretét és php segítségével átméretezed a hattérképet, hogy passzoljon, de ilyenkor figyelni kell a CSS-re is...
A legjobban akkor jársz, ha egyszerű háttered van amit ismételtethetsz valamelyik irányban CSS-el és valamilyen alapszínben végsződik...
Mondjuk van 1 szín átmenetes felső rész, megcsinálod az átmeneted, mondjuk 50px magasan és 10px szélesen, CSS-el fölrakod a balfelsőbe és vízszintesen ismételteted és a végszínét adod meg alap háttérszínnek.
-
Xirtam
veterán
Skacok, hogy tudom megoldani azt, hogy a weboldal background része, minden felbontásban jól nézzen ki és ne csuszon szét. Egyszóval dinamikus legyen? Mert ugye megcsinálom a saját felbontásomra, de kisebb felbontáson szét van csúszva. Ebben kérném a segítségeteket. Köszönöm
Szóval egy fix pontot szeretnék adni a háttérnek. De nem igazán tudom rá a megfelelő parancsot!
-
Speeedfire
félisten
Netbeans 7.0 alatt hol lehet a projektek könyvtárát beállítani? Nem akarom, hogy a dokumentumok legyen az.
-
RootRulez
félisten
válasz
Brown ügynök #6812 üzenetére
ennyi? kiírni meg az echo-val?
-
RootRulez
félisten
Sziasztok!
Nem igazán értek a php-hoz (már annak is örültem, hogy kiírattam, mit hányszor töltöttek le az oldalamról). Szóval érdekel, hogy a fájl méretét ki lehetne-e íratni? Tehát ne kelljen a letölthető fájl cseréje után az oldalt is szerkesztgetni?
Köszi: RR
-
Alukard
senior tag
Üdv Ismét
Új projekt, új kérdések
Dolgozom egy galéria technológiai újításán... 13 évvel ezelőtti webes technológiákra épül és a tulajdonos szeretne egy kis modernizálást. Tartalmaz jó pár egyedi megoldást az oldal melyeket szeretne viszont látni... ezek jó része nem is gond, mert az oldalon lévő java/cgi scriptek 99%-át ki lehet váltani php-vel, de van egy pont ahol elakadtam és szeretnék némi segítséget/ötletet kérni.
A pont ahol elakadtam az a képeslap küldés. Nem találtam php5 kompatibilis postcard scriptet, és a kérdésem az lenne, hogy esetleg tudtok -e ilyen létezéséről?
Sajnos ezt a funkciót nem lehet kihagyni az oldalból, mert az oldalhoz tartozó statisztikák aktív használatról tanúskodnak.
-
vakondka
őstag
Én akkor jártam így más webshop rendszernél mikor beraktam kézzel egy új linket ami mutat az egyik oldalra, de nem a rendszer saját link készítő függvényével hanem sima HTML kóddal szúrtam be, így elvesztette a SESSION-t és újat generált az új linkre kattintva, tehát azt hitte a rendszer, hogy én már egy másik látogató vagyok tehát kaptam az új munkamenet mellé egy új üres kosarat is.
Többek között ez is okozhat nálad hibát... -
Xirtam
veterán
Ezt találtam:
1. clean all three table ps_cart and ps_cart_product and ps_order
but if you don't want loss your order you should do this work
2.at first check in ps_order and what is the bigest id_cart in this table then insert a record in ps_cart table with more id_cart than bigest id_cart in ps_order
Ebben tudna valaki segíteni? Mert nemigazán értek az SQL-hez!
-
Xirtam
veterán
Köszönöm sikerült a képfeltöltéses dolog.
A másik,
Eddig müködött a webshopomon a kosárba rakás a termékeknél. Viszont most olyan próblémám van vele, hogy bekerül a kosárba a termék, majd amikor rányomok a kosárnál, hogy FIZETÉS kidobja, hogy üres a kosár. Bármi féle ötlet? Az oldalam, ezen az elven alapul: [link]
-
Forza_JUVE
aktív tag
válasz
Sk8erPeter #6801 üzenetére
OK ... bár nem lesz rövid.
Lehet h elég lett volna csak a <form> részt, de gondoltam, minthogy kimaradjon valami, inkább idemásolom az egész php-t:-------------------------------------------------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="hu" lang="hu"><head>
<title>******</title>
<meta name="description" content="******"/>
<meta name="robots" content="index, follow" />
<meta name="keywords" content="******"/>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" Content="hu"/>
</head><body bgcolor="<?=$background?>" style="font-family:<?=$font_face?>">
<font size="4" color="<?=$title_color?>"><b><?=$title?></b></font>
<br><br>
<form method="post" action="<?=$self?>">
<input type="hidden" name="do" value="add">
<table width="500" border="0" cellspacing="0" cellpadding="0" bgcolor="<?=$table_border?>">
<tr>
<td>
<div align="center">
<table width="100%" border="0" cellspacing="1" cellpadding="5">
<tr bgcolor="<?=$table_content_1a?>">
<td width="28%">
<div align="right"><font size="2">*Név: </font></div>
</td>
<td width="72%">
<input type="text" name="vname" size="30" maxlength="70" value="<?=$_SESSION['name']?>">
</td>
</tr>
<tr bgcolor="<?=$table_content_1a?>">
<td width="28%">
<div align="right"><font size="2">*E-mail cím: </font></div>
</td>
<td width="72%">
<input type="text" name="vemail" size="30" maxlength="100" value="<?=$_SESSION['email']?>">
</td>
</tr>
<tr bgcolor="<?=$table_content_1a?>">
<td width="28%">
<div align="right"><font size="2">Weboldal: </font></div>
</td>
<td width="72%">
<input type="text" name="vurl" size="30" maxlength="150" value="<?=$_SESSION['url']?>">
</td>
</tr>
<tr bgcolor="<?=$table_content_1a?>">
<td valign="top" width="28%">
<div align="right"><font size="2">*Hozzászólás: </font></div>
</td>
<td width="72%">
<textarea name="vcomment" cols="40" rows="7" wrap="virtual"><?=$_SESSION['comment']?></textarea>
<br><font size="1">* kötelező kitölteni!</font>
</td>
</tr>
<?if (strtoupper($imgcode) == "YES") {?><tr bgcolor="<?=$table_content_1a?>">
<td width="28%">
<div align="right"><font size="2">Verification Code :</font></div>
</td>
<td width="72%">
<font size="1">Please retype this code below :</font>
<img src="image.php?<?=time()?>" border="1"><br>
<input type="text" name="vsecc" size="4" maxlength="4">
</td>
</tr>
<?}?><script type="text/javascript"
src="http://www.google.com/recaptcha/api/challenge?k=******">
</script>
<noscript>
<iframe src="http://www.google.com/recaptcha/api/noscript?k=******"
height="300" width="500" frameborder="0"></iframe><br>
<textarea name="recaptcha_challenge_field" rows="3" cols="40">
</textarea>
<input type="hidden" name="recaptcha_response_field"
value="manual_challenge">
</noscript><tr bgcolor="<?=$table_content_1b?>">
<td colspan="2">
<div align="center">
<font size="2">
<input type="submit" value="Mehet">
<input type="reset" value="Törlés">
<input type="button" value="Vissza" onclick="window.location='<?="$self?page=$page"?>'">
</font>
</div>
</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
</form></body>
</html><!-- End of entry form -->
<?
break;
case "add":
$vname = isset($_POST['vname']) ? trim($_POST['vname']) : "";
$vemail = isset($_POST['vemail']) ? trim($_POST['vemail']) : "";
$vurl = isset($_POST['vurl']) ? trim($_POST['vurl']) : "";
$vcomment = isset($_POST['vcomment']) ? trim($_POST['vcomment']) : "";
$vsecc = isset($_POST['vsecc']) ? strtoupper($_POST['vsecc']) : "";if (strlen($vname) > 70) $vname = substr($vname,0,70);
if (strlen($vemail) > 100) $vemail = substr($vemail,0,100);
if (strlen($vurl) > 150) $vurl = substr($vurl,0,150);$_SESSION['name'] = $vname;
$_SESSION['email'] = $vemail;
$_SESSION['url'] = $vurl;
$_SESSION['comment'] = stripslashes($vcomment);if ($vname == "" || $vcomment == "") {
input_err("Nem töltöttél ki egy mezőt!");
}if ($vemail != "" && !preg_match("/([\w\.\-]+)(\@[\w\.\-]+)(\.[a-z]{2,4})+/i", $vemail)) {
input_err("Érvénytelen e-mail cím!");
}if ($vurl != "" && strtolower($vurl) != "http://") {
if (!preg_match ("#^http://[_a-z0-9-]+\\.[_a-z0-9-]+#i", $vurl)) {
input_err("Érvénytelen webcím!");
}
}$test_comment = preg_split("/[\s]+/",$vcomment);
$jmltest = count($test_comment);
for ($t=0; $t<$jmltest; $t++) {
if (strlen(trim($test_comment[$t])) > 70) {
input_err("Érvénytelen szóhasználat: ".stripslashes($test_comment[$t]));
}
}if (isset($_SESSION['add']) && $_SESSION['add'] >= $max_entry_per_session) {
input_err("Egy munkamenetben csak $max_entry_per_session hozzászólás engedélyezett!",false);
} elseif (!isset($_SESSION['add'])) {
exit;
}if ($vsecc != $_SESSION['secc'] && strtoupper($imgcode) == "YES") {
input_err("Invalid verification code");
}
//--only 2000 characters allowed for comment, change this value if necessary
$maxchar = 2000;
if (strlen($vcomment) > $maxchar) $vcomment = substr($vcomment,0,$maxchar)."...";$idx = date("YmdHis");
$tgl = date("F d, Y - h:i A");$vname = str_replace("<","<",$vname);
$vname = str_replace(">",">",$vname);
$vname = str_replace("~","-",$vname);
$vname = str_replace("\"",""",$vname);
$vcomment = str_replace("<","<",$vcomment);
$vcomment = str_replace(">",">",$vcomment);
$vcomment = str_replace("|","",$vcomment);
$vcomment = str_replace("\"",""",$vcomment);
$vurl = str_replace("<","",$vurl);
$vurl = str_replace(">","",$vurl);
$vurl = str_replace("|","",$vurl);
$vemail = str_replace("<","",$vemail);
$vemail = str_replace(">","",$vemail);
$vemail = str_replace("|","",$vemail);if (strtoupper($os) == "WIN") {
$vcomment = str_replace($newline,"<br>",$vcomment);
$vcomment = str_replace("\r","",$vcomment);
$vcomment = str_replace("\n","",$vcomment);
} else {
$vcomment = str_replace($newline,"<br>",$vcomment);
$vcomment = str_replace("\r","",$vcomment);
}if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && eregi("^[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}$",$_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ipnum = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ipnum = getenv("REMOTE_ADDR");
}$newdata = "|~|$idx|~|$tgl|~|$vname|~|$vemail|~|$vcomment|~|$vurl|~|$ipnum|~|";
$newdata = stripslashes($newdata);
$newdata .= $newline;if (!is_spam($newdata)) {
$tambah = fopen($data_file,"a");
if (strtoupper($os)=="UNIX") {
if (flock($tambah,LOCK_EX)) {
fwrite($tambah,$newdata);
flock($tambah,LOCK_UN);
}
} else {
fwrite($tambah,$newdata);
}
fclose($tambah);//--send mail
if (strtoupper($notify) == "YES") {
$msgtitle = "******";
$vcomment = str_replace(""","\"",$vcomment);
$vcomment = stripslashes($vcomment);
$vcomment = str_replace("<br>","\n",$vcomment);
$msgcontent = "Local time : $tgl\n\nThe addition from $vname :\n----------------------------\n\n$vcomment\n\n-----End Message-----";
@mail($admin_email,$msgtitle,$msgcontent,"From: $vemail\n");
}
//--clear session
$_SESSION['name'] = "";
$_SESSION['email'] = "";
$_SESSION['url'] = "http://";
$_SESSION['comment'] = "";
$_SESSION['add']++;
$_SESSION['secc'] = "";
redir($self,"Hozzászólás rögzítve ... köszönöm!");
} else {
redir($self,"Sajnos a hozzászólást nem tudom rögzíteni!");
}
break;case "del":
$record = file($data_file);
$jmlrec = count($record);
for ($i=0; $i<$jmlrec; $i++) {
$row = explode("|~|",$record[$i]);
if ($id == $row[1]) {
?>-------------------------------------------------------------------------------------
nos, ez lenne ... a Captcha-s részt kiemeltem félkövérre.
Amúgy közvetlenül felette van az a "Verification Code" rész (dőlten) ami hasonló célt szolgálna ugyebár.
Ez eredetileg is benne volt a php-ban, de vmi oknál fogva nem jelenik meg a kép a beírandó karakterekkel.
Így fest: kép Nem tudom mi baja van ?!
Éppen ezért is kezdtem el ezt a Guglis reCAPTCHA dolgot.Köszi szépen előre is a segítséget!
-
Sk8erPeter
nagyúr
Van tmp könyvtárad a gyökérben?
http://atw.hu/gyik#gyik5
"Miért nem működik a file feltöltés PHP-vel?A munkamenet fájlokat a PHP minden esetben a gyökérkönyvtárad alatti 'tmp' könyvtárban tárolja, ezért nincs más dolgod, mint létrehozni azt."
=============
(#6800) Forza_JUVE:
"(Ha szükséges, bemásolhatom a php kódot is.)"
Akkor tedd azt.
Kicsit nehéz lenne anélkül kitalálni, mi az ábra.
Persze a privát meg publikus kulcsot csillagozd ki, az most itt nem számít.
Új hozzászólás Aktív témák
Hirdetés
- Debrecen és környéke adok-veszek-beszélgetek
- Samsung Galaxy S22 és S22+ - a kis vagány meg a bátyja
- Milyen okostelefont vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Luck Dragon: Asszociációs játék. :)
- Diablo IV
- Milyen házat vegyek?
- Építő/felújító topik
- Google Pixel topik
- E-roller topik
- További aktív témák...
- Dell Latitude 5510 15,6", i7 10610U, 16GB RAM, SSD, jó akku, számla, garancia
- Acer Predator Helios 300 - 15,6"FHD IPS - i7-7700HQ - 8GB - 256GB SSD+1TB HDD - GTX 1060 6GB -MAGYAR
- HP LaserJet Pro M404dn
- ÚJ aktiválatlan Apple iPhone 16 Pro Max 256GB ! 1ÉV nemzetközi APPLE GARANCiA
- teljesen ÚJ aktiválatalan Apple iPhone 16 Pro 256GB ! 1ÉV nemzetközi APPLE GARANCiA
- Bomba ár! Lenovo ThinkPad T15 G1 - i5-10GEN I 16GB I 256GB SSD I 15,6" FHD Touch I Cam I W11 I Gari!
- Samsung Galaxy Tab A8 32GB, Újszerű, 1 Év Garanciával
- Xerox WorkCentre 3025 hibás/donor
- Acer Nitro 5 AN515 - 15,6"FHD IPS 144Hz - i5-11400H - 16GB - 512GB SSD+1TB HDD - RTX 3050 - Win11
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest