- HiFi műszaki szemmel - sztereó hangrendszerek
- Bluetooth hangszórók
- Vezeték nélküli fülhallgatók
- Eldurvul a Nova Lake-kel az Intel-féle hibrid dizájn
- Milyen TV-t vegyek?
- Fujifilm X
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- CPU léghűtés kibeszélő
- Azonnali notebookos kérdések órája
- Home server / házi szerver építése
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11389 üzenetére
No de mi lehet szarul beállítva?
Egyébként az ügyfél tárhelye náluk van tárolva.Egyébként "persze" a phpinfo()-t letiltották:
"Warning: phpinfo() has been disabled for security reasons"
....Ja, amúgy azt észrevettem, hogy sok esetben pl. egy-egy foreach-ciklusnál száll el (pl. menühierarchia összepakolásánál, vagy ilyesmi; írja ilyenkor a Fatal errornál, hogy hol szállt el a kódban, és sokszor core-kódoknál is írja), pedig ezekkel nincs gond localhoston.
Szóval nem értem. -
Sk8erPeter
nagyúr
Sziasztok!
A PHP memóriazabálását mivel szoktátok mérni?
Én most az XHProf extensiont raktam fel (itt van egy korai (0.10.3) compiled változat Windows-hoz, PHP 5.3-ra, IIS, tehát VC9-verzió, ez működik), azzal méregetem, és pl. ír egy ilyet az egyik Drupalos oldallekérésre:
Total Incl. PeakMemUse (bytes): 16,114,824 bytes
OK, tehát 16 MB-os nagyságrendben kajált, nincs is ezzel gondom, de a szerveren érdekes módon pontosan ugyanez a Drupal rengetegszer kifut a 128 MB (!!) memóriakorlátból, ezért kezdtem el méregetni.
Nem igazán értem, hogy ha eszerint 16 MB körül van, akkor hogyan lehetséges, hogy éles szerveren túllépi a memóriakorlátot.
(Eleinte nem volt ilyen gáz, de most már egy nyamvadt content type létrehozásánál is ezt csinálja, ezért elkezdtem gyanakodni, hogy valamelyik contrib modul nagyon brutálisan leak-el.)
Ráadásul úgy, hogy most localhoston telepítve van a Devel modul, ami úgy van beállítva, hogy most logoljon mindenféle query-t is, pont mérési célból, tehát eléggé zabálja az is a memóriát.
Pedig ha a 128 MB-ot túllépi, akkor ott már valami nagy gáz van....Ötlet?
Köszi! -
Sk8erPeter
nagyúr
válasz
pvt.peter #11381 üzenetére
Használd az "u" modifiert, úgy már nem cseréli le kettőre. A patternben meg ez is elég:
/(?:[^A-z\d\.-])/Példa:
$pattern = '/(?:[^A-z\d\.-])/u';
$replacement = '_';
$subject = 'teniszütő akármi lálálá ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP';
echo preg_replace($pattern, $replacement, $subject, -1);Eredmény:
tenisz_t__ak_rmi_l_l_l___RV_ZT_R__T_K_RF_R_G_PSzerk.: magyarázat:
Itt vannak a modifierek: [link]
az említett modifier:
"u (PCRE_UTF8)
This modifier turns on additional functionality of PCRE that is incompatible with Perl. Pattern strings are treated as UTF-8. This modifier is available from PHP 4.1.0 or greater on Unix and from PHP 4.2.3 on win32. UTF-8 validity of the pattern is checked since PHP 4.3.5." -
Sk8erPeter
nagyúr
Minek raksz minden sorba nyitó PHP-taget és zárót?
<?php
for ($i = 1; $i <= 24; $i++) {
if ($i == $ora[0]) {
echo "<option value=" . $i . " selected=selected>" . $i . "</option>";
} else {
echo "<option value=" . $i . ">" . $i . "</option>";
}
}Egyébként ebben nincs szintaktikai hiba, tehát máshol kell keresned a hibát.
#11379: ha megoldódott, illik közölni, mi volt a hiba oka. -
Sk8erPeter
nagyúr
Hasznos oldal PHP-s függvények próbálgatására:
http://onlinephpfunctions.com/Egyből kódot is generál a kipróbált függvényből.
Pl. a szóban forgó preg_replace():
http://preg_replace.onlinephpfunctions.com/ -
Sk8erPeter
nagyúr
Meg mondjuk az inline style-nak ITT, a kiküldött leveleknél az is a nagy előnye, hogy amennyiben offline tárolódik a cuccos, pl. mert asztali klienst használ az illető, akkor sem esik szét a tartalom, megmaradnak a szélességek, színek, stb. Igaz, attól még a külső képek nem fognak megjelenni, ha épp nincs internetkapcsolata.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11343 üzenetére
Pl. azért, mert nem tetszik a neve.
De ez nem olyan elképzelhetetlen, de elég, ha csak arra gondolsz, hogy X könyvtárból Y-ba akarod átrakni a stílusfájlodat. -
Sk8erPeter
nagyúr
válasz
Speeedfire #11341 üzenetére
És mi van, ha a CSS-fájlodat átnevezed a szerveren?
Az, hogy szétesik a levél. Ezért szoktak inline style-t alkalmazni leveleknél. -
Sk8erPeter
nagyúr
válasz
Speeedfire #11330 üzenetére
Tényleg gáz, mert ez az ő szempontjukból is szar: ha megtiltják a tetszőleges felhasználását, akkor olyan, akinek az ő szigorúan meghatározott logójuk nem illik az oldal dizájnjába, majd inkább leszedi a francba, hogy ne érje szó a ház elejét? Szóval elég fura.
Mondjuk a Fácsé is megköti azt, hogy pl. a FB streamek dizájnját nem lehet átszabni, de asszem a logóra vonatkozóan ilyen szigorú megkötéseket nem láttam (bár attól még lehet, hogy van, annyira nem mentem bele). -
Sk8erPeter
nagyúr
válasz
Speeedfire #11328 üzenetére
Ezek a korlátozások tényleg nagyon szélsőségesek...
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11322 üzenetére
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11320 üzenetére
Ha ez a timeline-os nem tetszik, akkor marad az, amit korábban írtál:
"Bár agyalok rajta, hogy lehet jobb lenne mondjuk ajax-al meghívni ezt, ha már az oldal betöltött."
Ez így jó. -
Sk8erPeter
nagyúr
válasz
Speeedfire #11318 üzenetére
Mindenképp kliensoldali kód kéne.
Nem próbáltam még, ez az Embedded Timelines (+[link]) nem jó? Mert elég egyszerű kliensoldali kódot mutat rá. -
Sk8erPeter
nagyúr
Hátha valakinek jól jön, így lehet UTF-8 with BOM-kódolású fájlokat keresni:
grep -rl $'\xEF\xBB\xBF' .
(UNIX/Linuxon egyértelmű, Windows-on Cygwin-nel érdemes keresni)
Fájlkiterjesztésre szűkítve (pl. *.php kiterjesztéssel):
$ grep -rl $'\xEF\xBB\xBF' . '\.php$'Ezt nem teszteltem, de ezzel állítólag le lehet cserélni UTF-8 without BOM-ra:
find . -type f -exec sed 's/^\xEF\xBB\xBF//' -i.bak {} \; -exec rm {}.bak \;
Persze ha csak 1-2 fájl van, akkor manuálisan is lehet Notepad++-szal.
Nálam most ez azért jött jól, mert van fent localhoston egy tesztcélú Drupalom, azon kb. 25-30 contrib modul telepítve, és azok közül valamelyik BOM-mal volt kódolva, nehéz lett volna kinyomozni, melyikben van a gond, ezzel egyből meglett (mint kiderült, a modult latest devben javították azóta). -
Sk8erPeter
nagyúr
válasz
Speeedfire #11303 üzenetére
Ez nagyon hasznosnak tűnik, köszi.
Jó lesz arra, hogy gyors áttekintést adjon olyan keretrendszerekről, amiknek utána akartam már nézni, miket tudnak, csak valahogy sosem jutott rá időm. De ezeket meg tudom nézni kaja közben is.(#11300) Speeedfire : akkor ez megoldódott? Drupalban a Date modulnak is van ilyen függvénye, ha kell még, előkereshetem.
-
Sk8erPeter
nagyúr
válasz
DelArco #11301 üzenetére
Nem vontam kétségbe egy percig sem, de itt úgy tűnt, mintha épp Te tennéd ezt; igazából a félreértést az okozta, hogy nem nagyon definiáltad, mire is vagy kíváncsi, milyen technikai részletekre. Nyugodtan beszélhetünk róla, ha körülírod, mire gondolsz. Amúgy bocs, hogy türelmetlen voltam, és úgy vettem le, hogy kötöd az ebet a karóhoz, de akkor csak félreértettük egymást.
-
Sk8erPeter
nagyúr
válasz
fordfairlane #11295 üzenetére
Ha megnézed, kapott válaszokat, csak furán reagált, ha mondta volna, hogy "de nem ezt értem 'technikai hátrányok' alatt, hanem azt, hogy...", akkor no para. Amúgy tényleg elharapózott mostanság egy kis feszkó itt a fórumon, oké, mondd ki, hogy én is tehetek róla.
(de asszem nem csak az én saram, ha visszanézel
)
-
Sk8erPeter
nagyúr
válasz
DelArco #11287 üzenetére
Még egy az előzőn kívül: már meg lett válaszolva a kérdésed, csak úgy tűnik, neked nem sikerült felfogni.
(ne a válaszadók szellemi képességeit vond kétségbe plíz)
Az általad "technikai hátránynak" nevezett valami épp az UTF-8-karakterek támogatottságának esetleges hiánya.
Ha ez sem elég az előzőeken kívül, akkor tényleg jobb, ha befejezzük a témát. -
Sk8erPeter
nagyúr
válasz
DelArco #11282 üzenetére
Lehet ékezetes változókat használni. De tényleg nem értelek. Már pont elkezdtem volna leírni jópár szempontot, ami miatt kifejezetten kerülendő az ékezetes változónevek használata, de most látom, hogy a szempontok pont az általad linkelt cikkben van leírva. Akkor mi a kérdésed?
Na mindegy, ha már leírtam (de nem folytatom akkor a sort, mert ott van minden egyéb szempont is a linkednél):
Pl. ha kiadod egy amerikai ügyfélnek az ékezetekkel teleb@szott kódodat, akkor az szerinted melyik éghajlatra fog küldeni, és miket fog mondani a szüleidről?Mit csinálsz, ha olyan billentyűzet-kiosztás előtt vagy, ahol nincsenek ékezetek? Mit csinálsz, ha épp olyan konzolról (pl. SSH-n bejelentkezel vhova) kell kódot megírni vagy változtatni, ahol az ékezetek nem támogatottak, vagy helytelenül jelennek meg? Vagy ha van olyan asztali kliens kódszerkesztőd, ahol ugyanez a helyzet? Ez csak egy pár darab szempont a rengeteg közül, de első körben ennyi elég lesz.
-
Sk8erPeter
nagyúr
Csatlakoztál egyáltalán az adatbázishoz előtte?
Egyébként az egyértelműség érdekében javítsd mysql_fetch_assoc()-ra, ÉS stringszerűen használd, ne úgy, ahogy most csinálod:
echo $row[szallitonev];
HELYETT
echo $row['szallitonev']; -
Sk8erPeter
nagyúr
válasz
Peter Kiss #11263 üzenetére
"fokozatosan jövök le a cuccról"
Kitartás, minden csak akaraterő kérdése!
-
Sk8erPeter
nagyúr
válasz
19.Norbika #11230 üzenetére
Bizony.
-
Sk8erPeter
nagyúr
válasz
SureStudio #11220 üzenetére
select " from
A hibás részt aláhúztam. Helyettesítsd az idézőjelet egy csillaggal vagy egy/több meghatározott mezőnévvel.(#11219) Forrest Tome :
A cellán belülre rakj egy divet, annak korlátozd a szélességét.(#11218) [pod]Diablo :
keresőbarát URL-ek kialakításával tudod eltüntetni a kérdőjelet, ez viszont nem kezdő kérdés, nézz utána a .htaccess-es módosításoknak, ha tényleg fontos. Sok megvalósítási lehetőség van rá, hátha majd lesz valakinek itt ideje leírni neked, hogy s miként. -
Sk8erPeter
nagyúr
válasz
Speeedfire #11165 üzenetére
Sztem a PHP_EOL-ra gondol.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11161 üzenetére
Meglepő, mi?
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11153 üzenetére
Szívesen! Tényleg nagyon hasznos, a PHP-s kódformázó a szintaktikai hibákat is kidobja egyből.
(#11159) Speeedfire :
utólag is lehet formázni kimenetet NetBeans-szel.Úgyhogy PazsitZ jól mondta, NetBeans ugyanúgy alkalmas kódformázásra, mint az előbbiek. Pl. létrehozol egy új (akár PHP-s) fájlt, bedobod a kimeneti HTML-kódot, és megnyomod a formázást, aztán megvan.
(#11157) Speeedfire :
azért lehet jobb a PHP_EOL, mert az adott platformnak megfelelő sorvége-jelet fogja kimenetként adni, pl. \n-t vagy a Windows-os \r\n-t. -
Sk8erPeter
nagyúr
válasz
pvt.peter #11150 üzenetére
JS-kódra, HTML-kódra:
http://jsbeautifier.org/PHP-kódra:
http://beta.phpformatter.com/ -
Sk8erPeter
nagyúr
válasz
#65675776 #11095 üzenetére
daa-raa, már ne haragudj, de azért az előzményeket jobban elolvashattad volna: nem hiszem, hogy csak nekem kéne csiszolni a stílusomon. Emlékszel, hogy legutóbb is ki miatt szóltatok rám? Gondolom már sejted: akkor is Athlon64+ rohant hozzátok nyöszörögni segítségért, mert képtelen - férfiként viselkedve - elviselni, hogy valaki vitába száll vele. (Látom, már mást is bemártott, aki szintén szeret vitázni, és szerintem tök jól lehet vele polemizálni személyeskedés nélkül is. Athlonnak úgy tűnik, akkor sem sikerült kibírnia, hogy valaki más véleményen van.)
Azt írja, zavarja a "tudálékosság" szakmai topicban? daa-raa, kérlek, egyszer fuss át a hozzászólásain, csak a kedvemért. Ha nem áll fel a hátadon a szőr a stílusától, akkor biztosan türelmes ember vagy.
Azt észrevetted, hogy ő minden vitát elvisz a személyeskedés irányába, és nem lehet vele ténylegesen szakmai alapon vitatkozni? Őt miért nem részesítetted "megrovásban"? Bocs, de zavar ez a teljesen egyoldalú moderálás: ha én mentem volna hozzátok sírni, akkor most Athlon64+ kapott volna dádát? Valószínűleg igen. Köszönöm a megértést. -
Sk8erPeter
nagyúr
válasz
Peter Kiss #11082 üzenetére
Örülök, hogy ennyi jött át neked az egészből...
Legalább bebizonyítottad, hogy veled aztán értelmes vitát nem lehet folytatni személyeskedés nélkül. Na mindegy, reméljük, majd idővel elsajátítod ezt a képességet.
Addig is királykodj nyugodtan a topicban!(#11081) j0k3r! :
hát az biztos, hogy a fenti thread helyett tényleg értelmesebb lett volna beverni pár sört. -
Sk8erPeter
nagyúr
válasz
Peter Kiss #11068 üzenetére
"Első körben syntax error"
Ezt most remélem csak viccnek szántad. Szerintem teljesen nyilvánvaló volt, hogy csak egyfajta pszeudo-kód volt."Single responsibility mond valamit? Nem hiszem."
Ezt az okoskodó stílust igazán mellőzhetnéd, hálás lennék érte, ha végre magadon kívül mással is megpróbálnál tisztelettel beszélni. Feltételezgetni meg nem kell, Te meg attól nem leszel több, hogy gyönyörűszép kulcsszavakat dobálgatsz. Igen, tudom, miről beszélsz, és tényleg az a követendő.De hogy végre a szakmai részéről is beszéljünk, és megpróbáljak eltekinteni a szokásos nevetséges személyeskedésedtől: alapvetően igazad van, belátom, hogy a kódom a mutatott formában gány szar. Az a tömbös megoldás okádék, tényleg ezerszer értelmesebb lett volna mondjuk objektumpéldányokat összegyűjteni egy tömbbe, nem csak belehányni ilyen "szótárszerűen". Egyetértek. Utólag ránézve a hsz.-emre nem vagyok rá büszke, de ez van, ezt is megbeszéltük, volt már pár hsz.-em, nyilván van pár, amit jobb lenne törölni utólag. Szívesen fogadom a kritikát, de sokkal jobb lett volna, ha eleve elmondod, mit nem tartasz helyesnek, ahelyett, hogy kvázi leidiótázol. Összesen a tab hozzáadására koncentráltam, néhány HTML-elem legenerálására, és kész, de se időm, se kedvem nem volt szép megoldáson törni a fejem. Ez valóban nem helyes mentalitás, legközelebb inkább várni fogok arra, hogy majd Te jól megírod a feladathoz tartozó szép kódot, ellátod jó tanácsokkal a kérdezőt, és lesz időd és agyad is gondolkozni másnak a problémáján. Legalább nem fogunk vitatkozni.
De ismét elmondom, én nagyon szívesen vitatkoznék veled, de szinte eddig az összes párbeszédünket sikeresen elterelted személyeskedés irányába, és arra próbáltad kihozni a vitát, hogy Te értesz hozzá, én nem, és kész. Ez így nem túl produktív, és a topicot követőket sem biztos, hogy érdekli a kakaskodás."És még egyszer ne add be senkinek, hogy nekem könnyebb volt a rövid beszélgetések után összehozni azt, amit."
Mi ez a rendreutasító stílus? Most komolyan, kinek képzeled magad, hogy meghatározod, hogy mit ne csináljak még egyszer? Adja magát a kérdés: mert különben mit csinálsz? (Azért ilyenkor sajnálom, hogy ezt a nagy hévben nem szemtől szembe mondod.)
Csak hogy én is tanácsoljak valamit, lehetőleg egy kicsit tekerd le a hangerőt, mert ezzel a stílussal elég nehéz érvényesülni, így csak összeveszni lehet. -
Sk8erPeter
nagyúr
válasz
j0k3r! #11071 üzenetére
"nagyjabol lefedne a kerdezo igenyeit, miszerint egy komplett hmlt oldalt akar generalni php-val."
Úgy tűnik, tényleg rohadtul félreértettem a kérdező szándékát, úgy értelmeztem, hogy jQuery UI Tabs füleket szeretne szimplán legeneráltatni, erre akar osztályt írni, és kész. Ezért még csak nem is gondoltam több HTML-elem generálására. A lehető leggyorsabban implementálható, legostobább megoldást írtam egy qrva szar nap után (bár én sem szeretem, amikor mentségeket hoznak fel, hogy fáradt voltam, meg ilyenek, most érted, kit érdekel?Akkor ne írjon semmit, most én estem ebbe a hibába
).
Igaz, rossz mintát mutattam én is, nekem mindössze annyival volt a bajom, hogy ha valaki leszól egy kódot, akkor indokolja is. De még egyszer mondom, beláttam, hogy rosszak volt az instrukciók, amiket írtam, hiba volt egyáltalán "tollat ragadni" akkor. -
Sk8erPeter
nagyúr
Ja, láttam a képet, tényleg ideillő.
Az írásod végével is nagyjából egyetértek, a legegyszerűbb megoldást is agyon lehet bonyolítani, szépíteni, amíg világ a világ (ahogy egy projektnek sincs vége soha, mindig lehet valahova szépíteni), de ha valaki először egy egyszerű összegyűjtésre, kiíratásra vágyik, akkor szerintem jelen esetben felesleges a hatmillió leszármaztatás, gyönyörűzés.
Athlon64+ akár elvihette volna olyan irányba is, hogy egy komolyabb, komplett osztályt ír arra, hogy mindenféle esetet lekezelve legeneráljunk jQuery UI tabokat, sőt, még a megfelelő könyvtárakat is behúzza, ezenkívül képes legyen arra is, hogy akár CDN-ről, akár helyi példányból húzza be a jQuery UI-t, ha még nincs include-olva, aztán eldönthető legyen, a vonatkozó kód minimalizált vagy fejlesztői változatát szeretnénk behúzni, sőt, még akár körépakolhatott volna egy rendes admin-felületet GUI-val, és akkor már hű de tuti lenne.
Amit én írtam, azt kb. két perc megírni, majd működésre bírni. Amit Athlon64+ írt, az már egy szétboncolt, komplexebb OOP-s, nyilván rugalmasabban továbbfejleszthető változat, amibe bele lehet építeni még sok mindent, de az előnye akkor jön elő igazán, amikor valaki advanced megoldásra vágyik, és bonyolultabb célokra is használni szeretné. Az övé nyilván szép (mert ő írta, és mert OOP-s, és széjjel van boncolva), az enyém meg nyilván ocsmány, mert nagyon leegyszerűsített, szimplán a konkrét feladatra összpontosított, kezdő által is könnyen kezelhető kód volt. Hát mit is képzeltem én, hogy nem rakok a kódomba legalább egy leszármaztatást? -
Sk8erPeter
nagyúr
Oké, akkor bocs, ha sértő volt a stílusom, én hajlandó vagyok beismerni, ha hibáztam.
Akkor ezek szerint erősen fogalmaztam, amikor felhívtam a hibáidra a figyelmet. De legalább megpróbáltam részletezni, Athlon64+ csak annyit mondott a kódomról, hogy ocsmány megoldás, és kész, 0 indoklás.
Peace! -
Sk8erPeter
nagyúr
válasz
Peter Kiss #11054 üzenetére
Ahtlon64+, ezt hívják kicsit nevetséges hozzáállásnak, "no offense".
(Annyira gáz ez a "no offense", semmi értelme nincs, mert attól még a kicsit faragatlan stílusodat nem tompítod vele...
Akkor már jobb, ha nincs mögötte semmi, mert így csak cinikus.
)
Nulla indoklás, nulla érvelés. Így a mondókádat semmivel nem támasztod alá, ennek megfelelő értékű is ebben a formában.
Már a legelején mondtam, hogy a lehető legegyszerűbb megoldást okádtam ki, ami működőképes lehet, és nem igazán erőltettem meg magam, hogy gondolkodjak jobb megoldáson. Plusz mivel a srác kezdeti, kiinduló kódrészletet sem mutatott, abból indultam, ki, hogy egyszerű megoldásra vár első körben, nem egy viszonylag komplikált megoldást szeretne látni (komplikáltat értsd: át is kell nézni a kódot ahhoz, hogy értsd a működését, nem adja magát egyből, mint amit mutattam). Ennek fényében már könnyebb volt neked megmutatni a tutit, ahol OOP-síted a teljes feladatot, mindent szétbontva, ami rendben is van, de ha már úgy döntesz, oltogatsz másokat, akkor legalább arra is vegyél fáradságot, hogy alátámaszd egy kicsit az érveidet. A szakmai kommunikáció érdekében legalábbis ez elvárható, hogy ne tűnjön puszta személyeskedésnek.
Mondjuk azt már megszoktam, hogy úgy állsz hozzá, hogy amit mondasz, az az etalon, mindenki más csak hülyeségeket beszél ("no offense"), és az jó, hogy van önbizalmad, de azért nem ártana, ha végre úgy is tudnánk kommunikálni, hogy abból nem csak a kakaskodás része marad meg, hanem egymás fejlődése érdekében vitatkozunk valamiről."nagy pirospont a külön header és tab-ok legyártásáért"
Hát ez valóban egyszerűen lenyűgöző, hogy képes volt külön függvényt létrehozni rá.Mondjuk annyiban jogos, hogy változhat a jQuery UI, és ahhoz, hogy jól működjön, esetleg a tabok fejlécét a body elejére kell rakni, a tartalmát meg a legvégére.
Na jó, ez most a gonoszkodás része volt, de amúgy nyilván jó az, hogy így külön kezelhető a kettő.
Amúgy kicsit vicces, hogy Soak kódját magasztalod, amikor nyilvánvaló, hogy az OOP-s elveket teljesen felrúgja, szerintem az általa mutatott módon és helyen teljesen értelmetlen az osztály-leszármaztatása is, és egy nem túl jó mintát mutat (lásd pl. public változók használata).A Te mintád kiindulásnak már jó, mondjuk érdekes lett volna többet tudni a konkrét megvalósításról, renderelésről, bár az már talán az egyszerűbb része.
====================================
(#11055) Soak :
"Az elso kerdeaedet nem ertem."
A $this objektumon mész végig egy foreach-csel. Megismétlem, a $this-en. Nem is mondjuk egy $this->tabs változón, hanem a $this-en. Írjam még egyszer?
Az is gány, és a többit is fenntartom továbbra is (pl. public változók, stb.). -
Sk8erPeter
nagyúr
foreach($this as $key => $value)
Jesszus, Te itt igazából mit művelsz?ucfirst($key)
ucfirst($value)
Miért akarod felülbírálni a felhasználó által megadott nevet, hogy legyen upper case az első betű? Nehogy már.Ilyet nem szabad. Hadd döntse el a felhasználó, nagy- vagy kisbetűvel szeretné, kódból ne írd felül.
class Content extends HtmlBuilder{
public $prop1;
public $prop2;
public $prop3;
}Itt konkrétan az egész leszármaztatásnak abszolúte SEMMI értelme.
Ezenkívül public változókat használni itt mi értelme van? Akkor minek az OOP, az encapsulation, stb.?
Lényegében ezzel felrúgod ezeket az elveket, példányosítás után azt lehet belepakolni, amit csak akarsz.Amúgy itt az egész szétválasztásnak sincs sok értelme, hogy külön legyen megcsinálva a "header" (legalábbis így nevezted), meg a tartalom maga, ennek úgyis egymás alá kell kerülnie, szétválasztva nem valószínű, hogy szükség lesz rá, tehát lehetne akár egyetlen render() metóduson belül.
-
Sk8erPeter
nagyúr
válasz
pvt.peter #11049 üzenetére
Csak azt mondom, ami hirtelen eszembe jutott, lehet, hogy lehetne még ezerszer jobb megoldással (pl. template-ezéssel).
Esetleg gyűjthetnéd egy private $tabs = array(); tömbbe a füleket (privát osztályon belüli változó), ahol a tömb kulcsai maguk a fül azonosítói lennének. Kiegészíthetnéd az addNewTabet úgy, hogy egyből a HTML-tartalmat is hozzáadod:
public function addNewTab(tabId, tabLabel, htmlContentOfTab)
Aztán lenne egy renderTabs() metódus, ami legenerálná az összes fület ciklusokkal, úgy, hogy létrehozná a megfelelő linkeket (ez egy ciklus), meg hozzácsapná az azonosítókkal ellátott diveket (ez még egy ciklus).
Az osztályon belül a private $tabs = array(); tömbbe valahogy így gyűjthetnéd ki (ami az osztályon belül így lenne elérhető: $this->tabs):
$tabs = array(
'fragment-1' => array(
'label' => 'One',
'content' => '<p>tartalom egy.............</p>'
),
'fragment-2' => array(
'label' => 'Two',
'content' => '<p>tartalom kettő.............</p>'
),
'fragment-3' => array(
'label' => 'Three',
'content' => '<p>tartalom három.............</p>'
),
);Ez csak első megközelítés, de ezt így nagyon egyszerű lenne megvalósítani. Persze gondolni kell az XSS elkerülésére is biztonsági okokból, ha WYSIWYG-jellegű admin-felület lenne a tartalom belepakolására.
-
Sk8erPeter
nagyúr
Feltételezve, hogy jó, ha az aktuális év lesz az évszámnál, meg feltételezve, hogy mindig vezető 0-kkal kezdődik a dátum a 10-es számok alatt (tehát pl. hónap második napja 02, óra harmadik perce 03), ez működőképes (aztán a formátumot tetszőlegesen testreszabhatod, ez a szokásos "év-hónap-nap óra:perc:másodperc" formában lesz):
$date = DateTime::createFromFormat('d.m H:i', '28.07 17:00');
echo $date->format('Y-m-d H:i:s');KIMENET:
2012-07-28 17:00:00 -
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11043 üzenetére
Mondjuk az akkor jön különösen jól, amikor egy sima összehasonlítás kell, hogy melyik dátum volt később vagy előbb (sima másodperc-alapú összehasonlítás, így ez nagyon gyors, ahogy azt is gyorsan meg lehet mondani, hogy melyik a nagyobb, 150 vagy 200), vagy pl. pontosan hány másodperc van a két dátum között, mert csak egy egyszerű kivonásra van szükség; ráadásul tudtommal a UNIX timestamp formátum támogatása a lehető legszélesebb körű, és kevesebb konverziós probléma lehet vele, mint az egyes egyedi dátumformátumokkal, ami adatbázis-beállításoktól is függhet, meg lokalizációtól (pl. nem egyértelmű eldönteni, hogy 01.01.12 dátumnál melyik a nap, melyik a hónap!).
Persze aztán valószínű, hogy egyes dátumkonverzióknál gyorsabb a natív dátumformátum, de többnyire nem ez jelenti a szűk keresztmetszetet, és egy UNIX timestampet meg többféle nyelvben is úgy formázgatsz, ahogy tetszik.
Épp ezért alapvetően én is többször használom a UNIX timestampet mostanában. -
Sk8erPeter
nagyúr
válasz
Speeedfire #11040 üzenetére
Ja értem, nem baj, hátha valakinek szüksége lesz rá ilyen formában is, akkor legalább tudja, hogy így is lehet. Ez a MySQL default timestamp-beállításnak megfelelő forma.
(#11041) Soak :
szívesen.
Igen, a gomb "csak" ráteszi a style-t, de ez most baj? Vagy nem vágom, mire akarsz kilyukadni. -
Sk8erPeter
nagyúr
válasz
Speeedfire #10950 üzenetére
$dateObj = new DateTime();
echo $dateObj->format('Y-m-d 00:00:00');=======================================
(#10955) Soak
"nem találtam jó módszert arra, hogy szépen styleoljam az <input type="file">-t"
Ilyen? http://jsfiddle.net/Sk8erPeter/JEVgF/ -
Sk8erPeter
nagyúr
De azt láttad, hogy a CSS-kódot is hozzápakoltam időközben?
Lásd jobb fölső sarok:
.iranyitoszam-wrapper {
float:left;
}
#iranyitoszam {
width:130px;
}
.ui-autocomplete {
position:relative !important;
}Ez a lényeg, emiatt jelenik meg jól.
De Te magad is láthatod, hogy jól működik a példaoldalon...
Szerk.: ja meg localhoston teszteltem először ugyanezt, tehát jó a kód.=============
(#11028) Speeedfire : ez egy osztás művelet, úgyhogy ez nem működőképes így.
Ilyenre csak az a jó, amit CSorBA írt közben. -
Sk8erPeter
nagyúr
Ha statisztikát szeretnél készíteni, akkor jó a megközelítés.
Egy táblában nyilvántartod így: user_id | tag_id | number_of_visits
(persze a mezőnevek opcionálisak)
És igen, tag oldalának meglátogatásakor csak hozzáadsz +1-et a number_of_visits-hez (default érték 0). Elég akkor létrehozni a táblában a bejegyzést, amikor meglátogatja a bejelentkezett felhasználó az adott tag gyűjtőoldalát (addig meg egyértelmű, hogy még nem látogatta meg a tag oldalát).Aztán persze az is jó, ha a felhasználónak lehetőséget biztosítasz kedvenc tagek megjelölésére (pl. ahogy a stackoverflow-n van).
=============
(#10992) Forza_JUVE :
látom azóta megvan, de annyit azért szebben kéne megoldani, hogy ne kelljen a felhasználónak megnyomnia a böngésző "Vissza" gombját, hanem Te irányítsd vissza automatikusan a feldolgozó fájlból az eredeti fájlba (header() függvénnyel), a felhasználónak címzett üzeneteket (hiba, siker, stb.) mentsd mondjuk session-változóba, és legyen egy hely, ahol mindig kiíratod ezeket az üzeneteket. (Így lehet legegyszerűbben megoldani, ha nincs AJAX-kommunikáció.)A Google reCAPTCHA-t meg nagyon egyszerű beüzemelni, ez az egyik legfőbb erénye, meg az, hogy nem valami könnyű feltörni (bár sokan nem szeretik, amiatt, mert nehezen olvashatóak egyes szavak).
==============
(#10983) Brown ügynök:
action="<?php echo $_SERVER['PHP_SELF']; ?>"
Sztem felesleges, ehelyett szimplán:
action=""
(üresen hagyva)
ez valid megoldás is egyben. -
Sk8erPeter
nagyúr
Visszatértem.
Erre gondolsz? (http://jsfiddle.net/Sk8erPeter/YCE4Z/7/embedded/result/)
Most ez pont a beviteli mező mellett jelenik meg. -
Sk8erPeter
nagyúr
válasz
SureStudio #10917 üzenetére
Szívesen!
-
Sk8erPeter
nagyúr
válasz
SureStudio #10913 üzenetére
Igen, szinte minden if után elrontottad a nyitó kapcsos zárójelet, helyette sima zárójelet írtál, ebben már nincs syntax error:
<?php
if (isset($_POST["submit"])) {
if (empty($_POST["email"])) {
$hiba[] = " Email megadása kötelező ";
}
if (empty($_POST["username"])) {
$hiba[] = "Felhasználónév üres!";
}
if (empty($_POST["pass"])) {
$hiba[] = "A jelszó nincs megadva!";
}
if (!isset($hiba)) {
$email = $_POST("email");
$username = $_POST("username");
$pass = $_POST["pass"];
} else {
echo "A következő hibák fordultak elő!<br />";
echo implode("<br />", $hiba);
}
}
$username = isset($_POST["username"]) ? $_POST["username"] : '';
$email = isset($_POST["email"]) ? $_POST["email"] : '';Egyébként ezzel csekkoltam.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #10908 üzenetére
"nem kóser"
Kifejtenéd bővebben?Vagy direkt szívatsz ezekkel a sokatmondó megjegyzésekkel?
Nálam "kóser":
$date = new DateTime();
$date->setISODate(2012, 42);
$weekFirstDay = $date->format('Y.m.d');
$weekFirstDayAsTimestamp = $date->getTimestamp();
$date->modify('+6 days');
$weekLastDay = $date->format('Y.m.d');
$weekLastDayAsTimestamp = $date->getTimestamp();
echo $weekFirstDay . ' - ' . $weekLastDay;
echo '<br /> As a timestamp: <br />';
echo $weekFirstDayAsTimestamp . ' - ' . $weekLastDayAsTimestamp;Kimenete:
2012.10.15 - 2012.10.21
As a timestamp:
1350309139 - 1350827539Itt tudod csekkolni: [link]
Ja, egyébként azt tudnod kell, hogy mivel így példányosítjuk: new Datetime()
ez alapértelmezettként a jelenlegi időt veszi alapul, tehát az óra-perc-másodperc egyezni fog azzal az időponttal, amikor épp lefut a script.De mivel itt arról van szó, melyik a hét első napja, és melyik az utolsó (eddig csak napok szerinti dátumról beszéltünk), ezért ezt itt még nem említettem meg, mert nem tűnt fontosnak.
-
Sk8erPeter
nagyúr
DeltaPowernél a pont.
Konfiguráld rendesen.================
(#10904) Soak :
de azt még a Buta Béla is megérti, hogy ha az a cím, hogy www.oldal.hu/felhasznalok/ButaBéla, akkor az az ő oldala, és még az előtte szereplő "felhasznalok" cím sem okoz remélhetőleg gondot.
Egyébként nem is kell olyan nagyon gondolkodásra serkenteni a júzert ahhoz, hogy eljusson a saját profiljához, ha nem találja meg az erre szolgáló linket, akkor már a felülettel van baj.
Úgyis ritkább az a júzer, aki a címet is értelmezgeti, megjegyzi. -
Sk8erPeter
nagyúr
válasz
Speeedfire #10900 üzenetére
Én meg azt nem értem, mi a gond.
$model[123]->ertek
Az átadásnál erre gondoltam:
$myModels = $model->findAll();
echo $myModels[123]->ertek;Tehát a $myModels-nek adtam át a findAll visszatérési értékét...
-
Sk8erPeter
nagyúr
válasz
Speeedfire #10894 üzenetére
Itt van valami iterátor implementálva, vagy ez mitől működik egyáltalán?
A findAll nem egy tömböt ad vissza? Csak mert azt semminek nem adod át... Nem azon kéne végigrohangászni, és nem csak ismétlődően kiíratni ugyanazt az értéket? Legalábbis ha itt nincs valami fasza iterátor, akkor ez nem jó, bár nem is úgy néz ki, mint egy implementált iterátor...Soak:
"Nem értem hogy mire gondolsz azzal ,hogy Nem egyértelmű, mit szeretnél lekérni"
Arra, hogy pl. lekérhetnéd azt is, hogy
www.example.com/cikkek
Akkor ez nálad azt fogja jelenteni, hogy a "cikkek" felhasználónevű júzer után fogsz kutakodni?
Ezért mondtam, hogy legyen akkor már
www.example.com/users/józsi -
Sk8erPeter
nagyúr
válasz
Speeedfire #10891 üzenetére
"Adatbázisból lekérek 100 elemet egy objektumba és egyesével akarom kiíratni az adatokat.
pl az i.-edik $model->ertek"
Mármint gondolom nem "egy objektumba", hanem objektumok tömbjébe.Azé' nem mindegy.
De mutass konkrét kódot, hogy csinálod. Gondolom valami ciklusban, nem? Ahhoz meg van egy változód, amit lépésenként inkrementálsz (ha foreach, akkor tedd bele, azt' kész), így megtudod a 123. elemét a ciklusnak, most akkor mi a kérdés igazából?
Vagy ha van egy tömb, aminek mondjuk a 123. eleme kell (és van is ennyiedik eleme), akkor azt használod, ha kell... de lehet, hogy csak félreértelek.===========
(#10892) Soak : ez miért lesz így jó megoldás?
Nem egyértelmű, mit szeretnél lekérni, így ez majd később nehézségekhez vezethet, amikor minden URL-t keresőbaráttá akarsz tenni, nem csak a users-t.
Kérdésre: könyvtárba bepakolni meg akkor nem sok értelme van, akkor maradjon inkább a jelenlegi megoldásod. -
Sk8erPeter
nagyúr
Szerintem úgy kéne, hogy ez csak akkor igaz, ha a /users/valaki címet nyitják meg.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^users/(.*)$ profile.php?username=$1 [QSA,L]Nem próbáltam, de sztem így nézne ki.
Vagy egyszerűen futtass rá minden kérést az index.php-ra, és PHP-vel intézd el a kiszolgálást: keress URL aliast adatbázisban, stb.
(#10889) Speeedfire :
"Ha van egy objektumhalmazom, akkor hogyan tudok hivatkozni az xyz.-edik elemére?"
Nem értem a kérdést. Milyen "objektumhalmazról" van szó? (Egyáltalán mi az az "objektumhalmaz"? Objektumok tömbje, vagy mire gondolsz?!) -
Sk8erPeter
nagyúr
válasz
Speeedfire #10886 üzenetére
Én a DateTime-mal elég sokat szarakodtam, megéri vele foglalkozni, nagyon egyszerű használni, komplex dátumkalkulációkra is.
Szívesen! -
Sk8erPeter
nagyúr
válasz
Speeedfire #10884 üzenetére
Ne viccelj, ennél jóval egyszerűbb.
DateTime használatával:$date = new DateTime();
$date->setISODate(2012, 42);
$weekFirstDay = $date->format('Y.m.d');
$date->modify('+6 days');
$weekLastDay = $date->format('Y.m.d');
echo $weekFirstDay . ' - ' . $weekLastDay;Kimenete:
2012.10.15 - 2012.10.21Ez tetszőlegesen és kényelmesen formázható.
-
Sk8erPeter
nagyúr
válasz
RootRulez #10878 üzenetére
JavaScripttel meg lehet oldani (ha úgy oldod meg, hogy a popup-blokkolók ne tiltsák azonnal), de én ebben nem segítek, mert utálom az ilyen ugrálós, hatmillió linket megnyitó oldalakat.
Inkább akkor valami igényesebb megoldást javasolnék, mondjuk több modal ablak megnyitását jQuery UI vagy hasonló segítségével. -
Sk8erPeter
nagyúr
válasz
laracroft #10876 üzenetére
Szívesen!
De most látom, hogy az előbb elírtam az alábbit:
"
if ($account=="")
{
$account=" and ACCOUNT like '%".$account."%'";
}
ekkor a query-d vége így fog kinézni:
... and ACCOUNT like ''"
Helyesen:
... and ACCOUNT like '%%'tehát futtat egy feleslegesen erőforrás-igényes keresést, ami nagyon nem jó.
-
Sk8erPeter
nagyúr
válasz
laracroft #10873 üzenetére
Nem ártana tudni, mi van az egyes változókban.
De annak abszolút semmi értelme, hogy ha üres egy változó, akkor a LIKE-hoz berakod, mint pl. ez:
if ($account=="")
{
$account=" and ACCOUNT like '%".$account."%'";
}ekkor a query-d vége így fog kinézni:
... and ACCOUNT like ''
Ez miért jó?
Ha üres, akkor egyszerűen ne rakd hozzá.
Az már másik kérdés, de szerintem rossz szokás, hogy pont a mezőidet csupa nagybetűvel használod, ha már nagybetű, akkor már a nyelvi elemeket (mint a LIKE) szokták inkább MySQL-ben nagybetűkkel írni (persze ezt sem kell feltétlenül, csak megszokás kérdése).Mindenesetre a debuggoláshoz gyűjtsd egy változóba az összefűzött query-det, írasd ki, hogy megnézd, hogy néz ki a végeredmény, és csak utána futtasd rajta a mysql_query-t:
$query = 'SELECT .......';
$naplo_res = mysql_query($query); -
Sk8erPeter
nagyúr
válasz
Peter Kiss #10861 üzenetére
"gyakorlatilag a levegőbe lógnak különféle változóid, amelyeknek aztán értéket adsz"
Ezt hogy érted?
Azért kérdezem, mert végül is pl. a Drupal template-ezés is úgy működik, hogy adott .tpl.php fájlok (ezek a template-ek), kapnak különböző változókat (vagy csak egy tömböt, ha az úgy praktikusabb). Ezeket ki lehet írni vagy manipulálni a széjjelbontott template-fájlokban. -
Sk8erPeter
nagyúr
Nem hallottam még ilyen definíciót.
Amúgy ha neked van igazad, akkor biztos a Drupal kitalálója, fejlesztői, a hozzájárulók olyan hülyék, hogy rossz elnevezést adtak:
Drupal Themes
...Szerk.: látom közben frissítetted a hsz.-t.
Nemcsak a WordPress-nél meg CMS-eknél hívják így, hanem még számtalan helyen. -
Sk8erPeter
nagyúr
Dehogy színeket értek
Inkább "sminkekre" gondolok, amiket le tudsz tölteni netről, vagy kreálni tudsz pl. CMS-ekhez. Csak lazán kapcsolt elemek, ezért cserélhetők, mivel csak a kinézetet befolyásolják (legalábbis jó esetben nem nyúlnak hozzá az adatokhoz - bár van rá lehetőség, ha nagyon akarom - hanem csak a megjelenítéshez nyúlnak). -
Sk8erPeter
nagyúr
"Ha valaki nincs bejelentkezve akkor bizonyos funkciók nyilván nem jelennek meg"
Igen, de attól még az oldal struktúrája nagyjából ugyanaz. Legalábbis ha pl. arra gondolunk, hogy van egy oldalad, és ha be vagy jelentkezve, és admin is vagy, akkor egy adott tartalomnál megjelenik egy "Edit" link a szerkesztéshez...
Szerintem az, hogy teljesen különválasztasz mindent, nem túl praktikus, mert csak nehézkesebbé teszed a kódod kezelését: az esetek többségében van egy csomó tartalom, amit bejelentkezett és "anonim" felhasználónak is szeretnél megmutatni, de a bejelentkezetteknek csak több/más tartalmat adsz, attól még a megjelenés hasonló.
Persze megint másik kérdés, hogy teljesen különálló admin-felületed van, ami nincs "összekötve" az alapvető megjelenéssel, hanem full máshogy néz ki, de akkor meg azt érdemes valami alkönyvtárba rakni (pl. fantáziadúsan /admin), és ott engedni a bejelentkezést, meg minden egyebet.
Mondjuk megint egy szempont: a theme elvileg egy külön "réteg", tehát elvileg a theme-nek akár váltogathatónak is kéne lennie."plusz jobban átláthatóbb, ha nem egy oldalon van minden"
Itt most nem tudom, mire gondoltál pontosan. -
Sk8erPeter
nagyúr
válasz
Alex91 #10840 üzenetére
De a kérdésed kb. olyan volt, mintha azt kérdeznéd, hogy "van egy asdkljaew.asdjh nevű fájl a gépemen, ez mi?"
Legalábbis a qx.php számomra kb. ennyit mondott.
Érdemben válaszolva a kérdésre:
require_once "qx.php";
Ez a qx.php nevű fájlt kísérli meg include-olni, és ha a fájl nem létezik, vagy más könyvtárban van, akkor annak "Fatal error" a vége. [link] -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10830 üzenetére
Szívesen!
Viszont azért arra figyelj, hogy simán lehet, hogy egy e-mail-címet valamilyen oknál fogva többször is fel akarnak használni, azért egy ilyen keresést még az adatbázisba való feltöltés előtt csinálhatnál. Ha nincs még ilyen, akkor mehet, ha van ilyen, akkor visszadobod, hogy "kösz, de ilyen már van, anyáddal szórakozzá'".Most jövök rá, hogy azt elfelejtettem neked mondani, hogy az id mező ne csak auto increment (automatikusan növekvő) legyen, hanem primary key is! (elsődleges kulcs)
Nem kell megadni a query-ben az id-t ilyen esetben, ha amúgy is auto increment. -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10825 üzenetére
Akkor nem csináltad meg, amit korábban írtam, hogy legyen auto_increment.
Az id márpedig nem baj, hogy ott van, sőt.Karakterkódolásra: jó az utf8_hungarian_ci, de a dokumentumaid is legyenek UTF-8 kódolásúak BOM nélkül, ezt Notepad++-ban tudod lecsekkolni és konvertálni, meg az elején kiadhatnál egy ilyet, a csatlakozás után: SET NAMES utf8
Szerk.: na, most látom, előttem már írták is pont ugyanezeket.
Csak nem "DOM nélkülire", hanem BOM nélkülire.
A DOM kicsit más. -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10821 üzenetére
A query lefuttatása után is használd a mysql_error() és mysql_errno() függvényeket, mondjuk ahogy a példákban látható, hogy kiderüljön, van-e hiba. Legalábbis addig hagyd bent, amíg rá nem jövünk.
Meg van ez a rész:
if (isset($_POST['name']) && isset($_POST['email']))
egészítsd ki egy else ággal is:
if (isset($_POST['name']) && isset($_POST['email'])) {
.......
}
else {
// debuggolás erejéig
echo 'blabla';
}Gondolom egyébként ezek a kódok a fantáziadúsan elnevezett php.php fájlban vannak.
Ezt találtam a Freewebes cuccosról:
http://freeweb.hu/informacio/mysql.htmlMySQL beállítások
Az adatbázis-szolgáltatás kizárólag a FreeWeb-en PHP programokkal érhető el.MySQL adatbázis szerver neve: felhasználóinév.sql.freeweb.hu
MySQL felhasználói neved: freewebes felhasználói neved
MySQL adatbázisod neve: freewebes felhasználói neved
MySQL adatbázisod jelszava: adatbázis jelszavadHa régi Freewebes adatbázisod van, akkor:
MySQL adatbázis szerver neve: sql
MySQL felhasználói neved: freewebes felhasználói neved
MySQL adatbázisod neve: freewebes felhasználói neved
MySQL adatbázisod jelszava: generált sql jelszavad<?
mysql_connect("felhasznaloinev.sql.freeweb.hu","felhasznalo","jelszo");
mysql_select_db("felhasznalo");Neked régi vagy új adatbázisod van?
Jó adatbázist választasz ki? -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10817 üzenetére
Ez melyik tárhely?
Ezek szerint találtál leírást a megfelelő adatokról...A mysql_errno() és mysql_error() segíthet valamennyit a hibafelderítésben.
Az előzőnél legalább kiderült, hogy eleve csatlakozni nem tudott.Ja, és megmutathatnád a teljes formodat, mert lehet, hogy az isset() feltétel nem teljesül, így meg sem próbálja feltölteni az adatot.
(#10818) SektorFlop :
sok ingyenes tárhelynél pont, hogy megfelelő a "localhost", és ez ugyanaz, mint a 127.0.0.1.
"Localhost-ot helyi hálózat esetén szoktuk használni"
... és a localhost még mindig ugyanaz, mint a 127.0.0.1, és igen, "helyinek" minősül a tárhely szempontjából az adatbázisszerver is, ha ugyanott üzemel (pont erről írtam korábban, hogy általában nem választják szét ingyenes tárhelyeknél, de nagyon sokszor a fizetőseknél sem). Csak a mysql_connect a megfelelő portot (default: 3306) használja a kapcsolódáshoz. -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10810 üzenetére
Az action attribútumba a feldolgozó fájlod elérési útját írd. Ha üresen hagyod, az is valid, az annyit jelent, hogy akkor ugyanabban a fájlban fog megtörténni a feldolgozás, tehát "önmagára" irányítja át az űrlap (form) feldolgozását.
Igen, a "foo" helyére írd az adatbázisod nevét.
A későbbi kódban viszont az `adatbázis_neve` felesleges, mert már korábban kiválasztottad, melyiket fogod használni. Az akkor lenne érdekes, ha nem választanád ki előtte."de pl. a localhost helyére már nem tudom h mit kéne írnom?!"
Ha a helyi szerveren van az adatbázisszerver is, akkor jó a "localhost". Akkor kell ide explicite kiírnod egy másik szerver IP-címét, ha másik szerveren van az adatbázisszerver.
A hostingcégek nagy részénél a "localhost" a jó beállítás, mert az esetek többségében nem külön van az adatbázisszerver.A kódodban lemaradt egy kapcsos zárójel a végéről (ez: }).
Előszűrőnek jó ez a kódformázó is, kidobja a hibákat:
http://beta.phpformatter.com/A kódod remélhetőleg így már jó lesz - nem teszteltem, csak gyorsan hozzádobtam a lezáró kapcsos zárójelet, plusz a másik változót is ($name):
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
die('Can\'t use foo : ' . mysql_error());
}
if (isset($_POST['name']) && isset($_POST['email'])) {
$name = mysql_real_escape_string($_POST['name']);
$email = mysql_real_escape_string($_POST['email']);
$mysql = mysql_query("INSERT INTO `tábla_neve` (`id`, `email`, `name`) VALUES (`$email, $name')");
}Remélem, az id meződ auto_increment.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #10809 üzenetére
Hányas PHP-vel tesztelted ezt annak idején?
Mert az isset($_GET['edit']) TRUE-t ad vissza pl. PHP 5.3.8-cal, amennyiben így hívod meg az oldalt:
index.php?editGyorsteszt:
<?php
header('Content-Type: text/html; charset=utf-8');
function my_var_export($var, $text = '...', $output_type = TRUE) {
if (gettype($var) === 'string') {
$var = htmlentities($var);
}
return '<p>' . $text . ($output_type ? ' (' . gettype($var) . ')' : '') . ':</p><pre>' . var_export($var, TRUE) . '</pre>';
}
echo my_var_export(isset($_GET['edit']), 'isset($_GET["edit"])');
echo my_var_export($_GET, '$_GET tömb:');az "edit" nélkül:
edittel (index.php?edit):
====
Szerk.: OK, látom módosítottad az álláspontodat.
Amúgy ja, szerintem is érdemes inkább értéket adni neki.
-
Sk8erPeter
nagyúr
válasz
SektorFlop #10807 üzenetére
Akkor jó.
Azt nem írtad le, mi van a $menu-ben, lehet, hogy az is bekavart, franc tudja.
-
Sk8erPeter
nagyúr
válasz
SektorFlop #10804 üzenetére
"problémám az hogy így nem működik a linkem:
<a href=page.php?menu=$menu&edit'>Módosítása</a>"
kihagytad a kezdő aposztrófot - aminek igazából szebben idézőjelnek kéne lennie, de ez most a lényeg szempontjából mindegy.Meg érdemes HTML-kódként megadni hivatkozásnál az &-jelet a validitás érdekében, aminek a megfelelője: &
Ezenkívül sztem érdemes inkább a változókat hozzáfűzni a jobb láthatóság érdekében
Szóval próbáld valahogy így:echo '<a href="page.php?menu='.$menu.'&edit">Módosítása</a>';
-
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10802 üzenetére
Szívesen, majd írd meg, mire jutottál!
-
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10800 üzenetére
Előbb csatlakozni kell a szerverhez, itt van példa erre az ELAVULT módszerre: mysql_connect(). Majd így választod ki ELAVULT módszerrel az adatbázist: mysql_select_db().
Az isset()-en belülre pakold a query-t.
A query-d viszont rossz. A phpmyadminon belül a táblára kattintva menj az Insert/Beszúrás gombra, adj hozzá egy sort admin-felületen, az beilleszt neked egy sort, és megmutatja a hozzá tartozó query-t. Ebből tudsz így tanulni.
Ezt a query-t másold ki, majd alakítsd át megfelelően.De még mindig inkább használd a PDO-t, inkább ahhoz szokj hozzá.
Kiindulásként Tele von Zsinór kolléga erről szóló rövid cikke: [link]. -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10798 üzenetére
Az csak akkor érdekes, ha valamelyik mező kihagyható (opcionális).
Ezeket szerintem érdemes kötelezően kitöltendőre hagyni. -
Sk8erPeter
nagyúr
válasz
Forza_JUVE #10796 üzenetére
Bedobhattál volna még legalább 12 hajlongó jelet, akkor sokkal szívesebben segítenénk!
Na jó, inkább ne tedd.Kezdésként:
- legyen egy "id" nevű, INT típusú, auto_increment mező (tehát A_I legyen bepipálva)
- legyen egy "email" nevű, mondjuk VARCHAR típusú, 255 hosszú mező
- lehetne akár még egy "name" mező is, vagy hasonló, hogy névhez is tudd rendelni... (ha elég a 255 karakter, akkor lehet olyan típus, mint az előző)
aztán mentsd el. -
Sk8erPeter
nagyúr
válasz
trisztan94 #10792 üzenetére
Azzal nincs is semmi baj, tartsd is meg ezt a jó szokásodat.
Annyi, hogy a query-det kiegészíthetted volna egy picit:if(isset($_POST['email']){
$email = mysql_real_escape_string($_POST['email']);
// ..........
}és akkor no para.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10790 üzenetére
De ha tudod, hogy így van benne biztonsági rés, akkor már miért nem egyből a mysql_real_escape_string()-gel együtt mutatod neki?
Amúgy még mindig inkább PDO a mysql_× szarakodások helyett.Végre frissítették a php.net-en is:
"Use of this extension is discouraged. Instead, the MySQLi or PDO_MySQL extension should be used."
Ideje volt. -
Sk8erPeter
nagyúr
Ide felraktam neked egy példát, ami szerintem már elég felhasználóbarát, és amit akár egy az egyben lemásolhatsz, vagy átalakíthatsz igényeid szerint:
jQuery UI Autocomplete - magyar irányítószámok:
http://jsfiddle.net/Sk8erPeter/YCE4Z/embedded/result/Kód:
http://jsfiddle.net/Sk8erPeter/YCE4Z/(HTML-, CSS- és JS-kód szétbontva: http://jsfiddle.net/Sk8erPeter/YCE4Z/3/)
Tehát ilyen formában kell ehhez legenerálni a JSON-kimenetet:
[
{ label: '8128 (Aba)', value: 8128 },
{ label: '8127 (Aba)', value: 8127 },
{ label: '5241 (Abádszalók)', value: 5241 },
..............
];A source-hoz pedig megadhatod a feldolgozó fájlodat is, a jelenlegi változó helyett.
-
Sk8erPeter
nagyúr
válasz
DeltaPower #10768 üzenetére
Igen, ez teljesen igaz.
-
Sk8erPeter
nagyúr
válasz
DeltaPower #10765 üzenetére
Igen, abszolúte felesleges ezeket átadni.
Leírást, képlinket, árat átadni GET-paraméterként?
Ha ezek módosításáról van szó, azt meg nem GET-metódussal kéne elintézni, hanem POST-tal. De itt csak megjelenítésről van szó, tehát legfeljebb tényleg csak a termék id-ját kellene átadni GET-paraméterként, meg azt, hogy milyen módon szeretnéd megjeleníteni, erre lehet különböző megjelenítési módokat definiálni. De a többi felesleges.
Főleg, hogy egy termékhez normális webshop esetén több kép is tartozhat.Az viszont megint csak nem jó megoldás, hogy PHP-vel íratod ki a JavaScript-kódot.
Ez szemantikai keveredés. JavaScript-kód menjen csak a JavaScript-fájlba. PHP-vel JavaScriptnek legfeljebb beállításokat szabadna átadni, pl. nekem eléggé bejön, ahogy a Drupalnál megoldották, maga a JavaScript-fájlok csatolása, a beállítások átpasszolgatása is moduláris módon történik. [link], [link]
JavaScript Module Pattern: In-Depth -
Sk8erPeter
nagyúr
válasz
trisztan94 #10763 üzenetére
Tele von Zsinór javaslata a jó megoldás, azt használd, utóbbi inkább csak alkalmazkodott a tiédhez (erre DeltaPower fel is hívta a figyelmedet), de alapvetően nagyon rossz megoldás.
Ha van 200 db kilistázott terméked, akkor 200 db eseménykezelőt fogsz definiálni JavaScriptben? Ne már.
Új hozzászólás Aktív témák
Hirdetés
- HiFi műszaki szemmel - sztereó hangrendszerek
- exHWSW - Értünk mindenhez IS
- Bluetooth hangszórók
- Vezeték nélküli fülhallgatók
- Google Pixel 8 Pro - mestersége(s) az intelligencia
- Apple iPhone 16 Pro - rutinvizsga
- Linux kezdőknek
- One otthoni szolgáltatások (TV, internet, telefon)
- Eldurvul a Nova Lake-kel az Intel-féle hibrid dizájn
- WoW avagy World of Warcraft -=MMORPG=-
- További aktív témák...
- Csere-Beszámítás! Lenovo Legion 5 White ! R5 5600H / RTX 3050Ti / 16GB / 500GB SSD
- Wilbur Smith könyvek (15 db) egyben
- Bomba ár! Dell Latitude 5400 - i5-8GEN I 16GB I 512SSD I 14" HD I HDMI I Cam I W11 I Gari!
- BESZÁMÍTÁS! Gigabyte B760M i7 12700K 16GB DDR4 512GB SSD RX 6700 XT 12GB Rampage SHIVA Enermax 750W
- Napirajz könyv
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest