- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bitpork: Augusztus 2- szombat jelen állás szerint.
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Geri Bátyó: B550 szűk keresztmetszet, de mi és miért?
- Fogkefe: elektromos vagy manuális?
- Magga: PLEX: multimédia az egész lakásban
- Parci: Milyen mosógépet vegyek?
- sziku69: Szólánc.
- Aggregátor gondjai, örömei, és elmélkedései
Új hozzászólás Aktív témák
-
biker
nagyúr
válasz
#68216320 #12698 üzenetére
jó kis vitát kavart a kérdésem...
Igen, a "-" nem szám, és kényszerből használom, mert alap, hogy terméket nem enged 0-val rögzíteni a rendszer, de mégis van ajándék termék, erre lett a - jel bevezetése
Sajna a "-" == 0 igaz, de a ===-nek is van szerintem hátránya: "0" === 0 FALSE szerintem, mert az első sztring a másik num
nem? -
#68216320
törölt tag
Teljesen érthető, nagyon köszönöm.
A típusegyenlő (===) vizsgálatok is jó ötletnek tűnnek. Használni kezdem őket az új forrásaimban.
Éppen most dolgozom egy saját project admin felületén. Eddig procedurális módon csináltam mindent, de kezdek áttérni a objektum alapú kódra. Szóval, van tanulni valóAz a helyzet nálam, hogy a PHP nyelv tanulásának kezdetén igen kevés és nem korszerű képzést kaptam. Mint szerintem nagyon sokan, mások forráskódjaiból próbáltam elsajátítani a továbbiakat. Illetve a 24órás sorozat tankönyve volt meg. Úgy tűnik viszont, hogy nem megfelelő forráskódokhoz jutottam hozzá és a hibák amik bennük voltak rögzültek bennem. Hiányzott egy ilyen fórum, ahol kiderülnek az ilyenek. Ugyanis bár próbáltam tesztelni az elkészült forrásokat, de nagyon sok hibás gondolatmenetre, rosszul alkalmazott eszközre nem derül fény ettől. Ezért elnézést is kérek mindenkitől, ha itt a fórumban hibák vannak az általam alkalmazott technikákban, de ha nem osztom meg a gondolataimat bizonyos helyzetekben, akkor ezek nem derülnének ki sohasem. Viszont, a következő hozzászólásaimban óvatosabb leszek már és az én úgy tudom, illetve szerintem kifejezésekkel fogom kezdeni őket, hogy másokat ne tévesszen meg esetleg hibás mivoltukkal, ahogy kezdetben velem tették más oldalak.
-
cucka
addikt
válasz
#68216320 #12696 üzenetére
Hogy világos legyen az empty és az isset közötti különbség:
A következő két feltétel ekvivalens, leszámítva egy notice-t:
isset($v)
$v !== null
Tehát az isset true-val fog visszatérni bármilyen változóra, ami nem létezik, vagy létezik és a típusa/értéke null. Jól látható, hogy a neve ellenére az isset()-nek valójában semmi köze ahhoz, hogy egy változó (vagy tömb index) definiált-e vagy sem. (Ennek eldöntésére a get_defined_vars() való).
Az isset() abban az esetben működik biztonságosan, ha soha, semmilyen körülmények között nem használod a null értéket egyetlen változódnál sem. Felhasználó által post-olt űrlapok esetén ez alapból adott, mert minden értéked a tömbben string vagy array típusú, a kód többi részében viszont a te feladatod ezt biztosítani.És a következő két sor szintén ekvivalens
empty($v)
!isset($v) || $v != true
Az empty() az ekvivalens feltétel második fele miatt problémás. Itt a != operátort látod, ami azt jelenti, hogy a php itt a $v értékét előbb át fogja cast-olni bool típusúra. Ezért van az, hogy a "", "0", "0.0" stringekre az empty egyaránt igazzal fog visszatérni. A gyarkolatban ebből az következik, hogy az empty() teljesen alkalmatlan bármire, visszatérési értékének semmi köze ahhoz, hogy "üres"-e a változó értéke vagy sem. Javaslom, soha, semmilyen körülmények között ne használd az empty()-t, ez egész egyszerűen egy rosszul kitalált nyelvi elem a php-ban.(Egyébként is, a php-ban az == és != operátorok nem tranzitívak, ez elég ok ahhoz, hogy kerülendők legyenek. Helyette javasolt a === és !==, illetve úgy megírni a kódot, hogy tisztában legyél vele, melyik változód milyen típusú.)
Ez így nagyjából érthető?
-
#68216320
törölt tag
válasz
Sk8erPeter #12695 üzenetére
Teljesen világos, köszi. Amúgy belegondolva logikailag is hibás lépés lenne vizsgálni valami értékét, ami nincs.
php.ini-ben lehet beállítani valahol alapértelmezettként az error_reporting-et?
Illetve emlitetted az if( ! empty( $_POST['valami'] ) )-t. Inkább ez vagy az isset() ? -
Sk8erPeter
nagyúr
válasz
#68216320 #12694 üzenetére
"miért nem jó, ha közvetlen if( $_POST[valami] ) módon vizsgálom egy űrlapmező kitöltését"
Azért nem jó, mert ha nincs beállítva a $_POST tömbben a "valami" kulcs, akkor a szigorúbb hibajelzés (pl. error_reporting(E_ALL | E_STRICT); ) bekapcsolása esetén kapsz egy notice-t:
"Notice: Undefined index: valami in ...../FAJLOD.php on line XYZ"
azért fontos ezekre figyelni, mert a későbbiekben problémád származhat belőlük, ezért érdemes eleve úgy tervezni a kódot, hogy legyen alternatíva, ha már eleve a kulcs sincs beállítva. Tehát először ellenőrzöd, megvan-e egyáltalán a kulcs, ha nincs, akkor nem is foglalkozol tovább a potenciális értékeivel.
Közvetlen "veszélye" a notice-on kívül nincs a dolognak, inkább csak rejtett hibaforrás lehet rosszabb esetben, ezért érdemes rá eleve felkészülni: nem sokkal növeli a kódbázis méretét, viszont legalább elkerülsz egy apró hibalehetőséget. -
#68216320
törölt tag
Most komolyan, tényleg itt tartunk? Hol voltam kioktató? Te itt kérdezted, hogy miért is jó. Erre válaszoltam. Valóban meg mertem kérdezni, hogy dolgoztál-e már C-ben, mert akkor tudod milyen, mikor folyton neked kell átalakítani string-numeric között. A miért ne lenne jó pedig úgy vélem szubjektív. Nekem megfelelhet és lehet kényelmes attól, hogy neked nem az. De szerintem maradjunk meg annyiban, hogy te a saját szakmai ismereteddel nem látod jónak, én pedig az enyémmel igen. De mindegy is, mert ez van. Nem szeretném ezt a felesleges vitát folytatni. A cinizmus nem tetszett, lehetett volna másképp. Viszont a szempontjaid elgondolkodtatnak.
Ha viszont hajlandó vagy segíteni, akkor elmondhatnád miért nem jó, ha közvetlen if( $_POST[valami] ) módon vizsgálom egy űrlapmező kitöltését. Ha mondjuk e checkbox-ot nem jelöl akkor tudom, hogy nem lesz a megfelelő kulcs, de vizsgálatkor még sohasem kaptam hibaüzenetet. Sem saját gépen, sem tárhelyen a log fájlt vizsgálva. Van valami konkrét veszélye ennek? (Nagyon sok helyen használtam, mert egy forrásban láttam)
-
Sk8erPeter
nagyúr
válasz
#68216320 #12692 üzenetére
Hogy mi? Szerintem te voltál itt kioktató, azt éreztetted, hogy márpedig te jobban tudod, elmagyaráztad, hogy miért is marhaság, amit én írtam, visszakérdeztél, hogy "dolgoztál már C-vel?", ugyan "miért ne lenne jó?", és leírtad, hogy "azt még gondold végig". Ezután hozzád hasonlóan én is kifejtettem a véleményem arról, amit írtál.
De bántás nem volt benne (cinizmus valóban, de nem a sértés feltett szándékával). De várj, hol volt a hozzászólásodban segítségkérés? Mert én azt nem láttam benne, hanem sajnos csak pont, hogy kioktatást.
-
#68216320
törölt tag
válasz
Sk8erPeter #12691 üzenetére
Gondolom feltétlenül cinikus módon kellett kommunikálnod. Örülök hogy igazi vérprofi vagy. Én még nem. tudod, inkább ne segíts nekem, ha csak ilyen módon sikerül.
-
Sk8erPeter
nagyúr
válasz
#68216320 #12690 üzenetére
Dolgoztam már C-vel, de ez hogy jön ide? Sehogy.
A két nyelv összehasonlításának nincs is igazán értelme. Eleve más az alapvető céljuk. Ezenkívül ha már összevetjük, a C nyelv eleve jóval szigorúbb, mint a PHP, sajnos (szerencsére?) a PHP olyan nyelv, aminek segítségével kezdők is nagyon gyorsan és egész egyszerűen össze tudnak tákolni-gányolni funkcionálisan "működő", de attól még akár hibákkal telerakott kódot is (aztán legfeljebb a hibajelzéseket elnyomják, és meg is van minden oldva...).
Egyébként attól még, mert valami kényelmes, önmagában nem biztos, hogy jó is. Pl. ha a kódodban az a "kérdés", hogy a "pista" egyenlő-e a 0-val (== használata esetén), akkor nem biztos, hogy jó, ha a válasz "igen" (mert egyébként nem egyenlők). Az üres stringre ("") még OK, de így nem, ezzel persze neked nem kell egyetérteni (meg amúgy is, ez van, ezt kell szeretni).
A magyarázatot meg köszi, nem kérem, mert én is ezt magyaráztam itt."Például, ha tudni akarom van-e értéke egy form mezőnek if( $_POST['valami'] ){}"
Hát ez elég rossz példa volt, mert ha így csinálod, akkor rosszul csinálod. Először is nem biztos, hogy be van állítva az adott kulcs a $_POST tömbben az űrlap elküldésekor, elég csak a radio buttonökre vagy a checkboxokra gondolni. Először azt kell ellenőrizni, hogy egyáltalán létezik-e a tömb adott kulcsa (isset($_POST['valami'])), aztán lehet ellenőrizni, nem egyenlő-e egy üres stringgel, ha már az értékét akarod majd vizsgálgatni, de ekkor már lehet azt a módszert is használni, ha nagyon akarod, amit használtál, bár ez így szerintem nem teszi egzakttá, jól olvashatóvá a kódot. Esetleg az isset()-et és az üres stringre való csekkolást lehet egy empty()-vel helyettesíteni ( if( !empty($_POST['valami']) ) { // van bepötyögött érték } ). Persze ha szereted szívatni magadat, kikapcsolhatod a notice-ok kijelzését még a fejlesztés idejére is."Azt még gondold végig, hogy hogyan tudna numerikus 0-t küldeni egy űrlap. Sehogy. Textként megy és neked kellene kiszedni belőle a numerikus értéket, mint ahogy C-ben van. A PHP lazán kiszedi a string elejéről."
Ja, hogy szerinted az egyetlen összehasonlítási alap az lehet, hogy valaminek az értéke űrlapból (a $_POST tömbből) jön....?
És szerinted annak is örülni kell, és sokkal jobb, hogy ha írsz egy olyat, hogy
echo '10xyz'+10;
vagy azt, hogy
echo array_sum(array('10xyz', 10));
akkor mindkét esetben kijön az, hogy 20?
Akkor azt hiszem, te megtaláltad a magad számára tökéletes nyelvet, amiben szabadon lehet gányolni.Ezeket azért "még gondold végig"...
-
#68216320
törölt tag
válasz
Sk8erPeter #12689 üzenetére
Mert kényelmes. Dolgoztál már C-vel?
if("pista" == 0){ // akkor lesz valami, ha 0 az érték, márpedig nem az }.
helyett
if("pista" === 0){ // akkor lesz valami, ha 0 }.
Ez megoldja a problémát. Nekem rengeteg időt spórol meg az automatikus konverzió.
Például, ha tudni akarom van-e értéke egy form mezőnek if( $_POST['valami'] ){} mert itt éppen logikailag értékeli. Miért ne lenne jó a konverzió?Azt még gondold végig, hogy hogyan tudna numerikus 0-t küldeni egy űrlap. Sehogy. Textként megy és neked kellene kiszedni belőle a numerikus értéket, mint ahogy C-ben van. A PHP lazán kiszedi a string elejéről.
-
Sk8erPeter
nagyúr
válasz
#68216320 #12687 üzenetére
Nem értem a magyarázatodat, hogy attól még miért lenne "jó" az automatikus konverzió pl. egy összehasonlításnál...
Még csak logikai összefüggés sincs a két dolog között. Pl. begépelte a felhasználód, hogy "pista", te meg szerveroldalon összehasonlítod azzal, hogy 0-e a mező: if("pista" == 0){ // akkor lesz valami, ha 0 az érték, márpedig nem az }. Akkor ez ilyen értelemben miért is "jó"?
-
#68216320
törölt tag
válasz
Peter Kiss #12686 üzenetére
Melyik nem klappol, csak h tudjam
Update: Értem, köszi. Csak egy példa volt, hogy miért is jó a konverzió. Egyszer valakinek így indokoltam és úgy látszik bevésődött.
-
#68216320
törölt tag
A PHP automatikus konverziót végez. Ha numerikusként értelmezel egy string-et, mert mondjuk matematikai műveletben vesz részt, akkor:
"-" = 0
"" = 0
"hello" = 0
"10 doboz sör" = 10Erre azért van szükség, mert pl. FORM-ból a HTML-től csak string érkezhet, mivel ilyen beviteli mező van csak.
-
biker
nagyúr
válasz
Peter Kiss #12668 üzenetére
Hát igen. De azt tiltom hogy 0ft termék kerüljön be, ezért a - jel
De ezek szerint 0=-=""=NULL
Fuckn php -
rezme
tag
Egy átalakított témát használok.
üdv! -
rezme
tag
válasz
Peter Kiss #12677 üzenetére
Melyik topicban kérdezhetek akkor ilyen témában akkor? Köszönöm a segítséget de sajna nem ez a probléma:S
-
rezme
tag
Posztok csak töltelékposztok még nem éles az oldal
-
Peter Kiss
őstag
Hiányzik:
line_shadow.png
/wp-content/themes/hades/imagesChrome console kimenet:
Viewport argument value "device-width;" for key "width" not recognized. Content ignored. Note that ';' is not a separator in viewport values. The list should be comma-separated. /:36
Viewport argument value "1.0;" for key "initial-scale" was truncated to its numeric prefix. Note that ';' is not a separator in viewport values. The list should be comma-separated. /:36
Viewport argument value "1.0;" for key "maximum-scale" was truncated to its numeric prefix. Note that ';' is not a separator in viewport values. The list should be comma-separated. /:36
Viewport argument value "0;" for key "user-scalable" was truncated to its numeric prefix. Note that ';' is not a separator in viewport values. The list should be comma-separated. /:36
Resource interpreted as Script but transferred with MIME type text/html: "about:blank". techport.hu:47
Uncaught ReferenceError: TWTR is not defined techport.hu:478
GET http://techport.hu/wp-content/themes/hades/images/line_shadow.png 404 (Not Found) techport.hu:120És ez PHP topik.
-
rezme
tag
Erről az oldalról lenne szó:
http://techport.hu/
ha nem látjátok a hibaüzenetet, akkor frissítsetek rá 1x 2x és meg fog
érthetetlen -
rezme
tag
válasz
Peter Kiss #12672 üzenetére
Mire van még szükségetek, milyen információra?
-
rezme
tag
Sziasztok!
Van egy weboldalam amit hamarosan elindítanék, de egy hete a semmiből egy plusz sávban(ami eddig nem is volt ott) ezt a hibaüzenetet kapom:
404 Not Found
nginx/0.6.32És az a vicc hogy 5 oldalbetöltésből 3x adja be, amúgy meg hiba nélkül tölti be az oldalt. Ez mitől lehet, mi lehet ennek az oka?
-
#68216320
törölt tag
válasz
Tele von Zsinór #12664 üzenetére
Egy admin felületen listázok szűkítésekkel, rendezésekkel. Viszont lapozhatóra szeretném megcsinálni a listát. Egy univerzális függvényt szeretnék készíteni, ami több listát is tud lapozni.
Az átalakított sql query megmondta volna, hogy összesen mennyi találat van így az egy oldalra listázható elemek számával osztva megkaptam volna az oldalak számát.
Viszont az univerzalitás ugrott, mivel a listákban a WHERE-t bent kell hagynom a pontos darabszám miatt, viszont több táblából munkálkodó lekérésről beszélünk, ahol a tábláknak alias-ok vannak megadva. Így a COUNT(id) nem mindig megfelelő, időnként alias kerül az `id` elé.
Inkább olyan függvényt írtam, ami kap egy paramétert és ez alapján saját kérést állít össze a lapozó működéséhez.Nem tudom mennyire volt érthető. De én is úgy láttam, hogy a kérésben nem érdemes ügyeskedni. Felesleges hibaforrás.
Viszont a reguláris megoldás érdekel. Tanulnivaló csak nehezen értelmezhető még számomra.
-
Peter Kiss
őstag
Igen, PHP estében teljesen normális.
Ami szerintem nem normális, hogy azonos tulajdonságot két különböző típussal akarsz leírni, illetve ezeket a típusokat össze is hasonlítod. Sokkal ésszerűbb, ha az üzleti logikádba nem kevered bele ezt a '-' dolgot, ezt elég csak a UI oldalon mutatni (ott a 0 [talán] hülyén néz ki).
-
biker
nagyúr
Lehet, csak nekem érdekesség, újdonság, de most lehidaltam
az ok, hogy a 0, NULL, "" az nehezen összehasonlítható, mert ha ==0 akkor igaz definiálatlan változó és $var="" esetén is, de...
Figyelem egy változó értékét, ami ha nem - akkor felírja a kasszába az értéket
if ($jegy_tomb['berlet_ara'] != "-")
Azért, mert lehet ingyen jegy is, aminek ára "-"Ok, de van kedvezmény. ha 100% kedvezményt adok, akkor 0 Ft lesz, ergó $jegy_tomb['berlet_ara'] értéke 0 lesz, és az IF szerint ez megegyezik - vel és nem ír fel a kasszába 0Ft (100% kedvezmény) sort, mintha ingyen jegy lenne
Ez normális, hogy a 0 az - -al is egyenlő?
-
#68216320
törölt tag
válasz
Peter Kiss #12662 üzenetére
Köszönöm. Viszont kiderült, hogy a reguláris kifejezésekre vonatkozó ismereteim hiányosak. Keresek tutorial-t, de ha van amit ajánlanál, akkor azt megköszönném. Már emlékszem, hogy JS alatt is szívtam ilyesmivel, de akkor valahogy megoldottam, most viszont utánajárnék rendesen.
-
#68216320
törölt tag
válasz
Peter Kiss #12660 üzenetére
Megpróbálom. utf8 nem kavarhat be szerinted?
-
#68216320
törölt tag
válasz
Peter Kiss #12658 üzenetére
Ezzel nem pont a nyitó, záró tagokat cserélem le? Elképzelhető, h rosszul értelmezem, de nekem úgy tűnik, hogy gyakorlatilag az str_replace-hez hasonló.
Egészen pontosan azt kellene megoldanom, hogy egy változó mysql query-t kellene átalakítanom.
pl. erről:
SELECT id, tag1, tag2, inf FROM adatok
erre:
SELECT COUNT(id) FROM adatokA SELECT és FROM közti rész változatos, de mindig COUNT(id) menne a helyére.
-
Peter Kiss
őstag
-
#68216320
törölt tag
Van PHP-ban olyan string függvény, ami két tag közötti részt cseréli másra?
PL.
start> blablabla end>
start> valami text end>Szeretném, ha a start> és end> közötti részeket lecserélné.
Csak explode-al való ügyeskedés jut eszembe, de ha volna valami más ... -
#68216320
törölt tag
válasz
Fenris69 #12653 üzenetére
Én a következő módon csinálnám, bár jelzem, hogy mysql-nél alias-t szoktam használni:
$parancs = "SELECT COUNT(nap) AS num FROM `talalkozo` GROUP BY nap HAVING nap = '$datum'";
$valasz = mysql_query($parancs);
$sor = mysql_fetch_array($valasz);
$fsz =$sor['num'];A COUNT(nap) AS num visszaadja a megfelelő rekordok számát num alatt. Ezt pedig tömbösítés után (mysql_fetch_array($valasz)) a $sor['num'] alatt kiolvashatod.
Csak egy ötlet.
-
Fenris69
csendes tag
válasz
j0k3r! #12652 üzenetére
Szia j0k3r!
Köszönöm szépen a segítséget, jutottam előrébb a folyamatban, azonban még valami nem teljesen tiszta.
Sikerült leegyszerűsíteni. Kétféleképpen próbálkoztam 1: most már ki is ír "valamit", de sajnos ez az érték egy E betű és nem a darabszám, amire kíváncsi vagyok.A kód
$parancs = "SELECT COUNT(nap) FROM `talalkozo` GROUP BY nap HAVING nap = '$datum'";
$fsz =$parancs[COUNT(nap)];2: Itt hasonló, mint eddig, nincs visszakapott érték.
A kód:
$parancs = "SELECT COUNT(nap) FROM `talalkozo` GROUP BY nap HAVING nap = '$datum'";
$valasz = mysql_query($parancs);
$sor = mysql_fetch_array($valasz);$fsz =$sor[COUNT(nap)];
-
Fenris69
csendes tag
Sziasztok!
Egy kicsit megakadtam az egyik parancssorba és kérnék egy kis segítséget, ha lehetséges
A feladatom a következő, adott egy sql adatbázis: (id/fnev/ip/nap), és ebből nekem szükségem lenne arra, hogy a nap(dátum) oszlopból, a 1 dátum hányszor szerepel.
Ezek előtt beíratunk 1 dátumot, amire ugye kíváncsiak leszünk, az az, hogy ez a nap hányszor szerepel ($datum). Ennek a napnak az előfordulási számát szeretném betenni egy változóba ($fsz).A kód amivel próbálkoztam:
$parancs = "SELECT * FROM talalkozo WHERE nap = '$datum'";
$valasz = mysql_query($parancs);
$sor = mysql_fetch_array($valasz);$sql = "SELECT nap, AS [fsz] FROM `talalkozo` GROUP BY nap";
$sql1 = mysql_query ($sql);
$sql2 = mysql_fetch_array($sql1);
$fsz = $sql2[fsz];Ha valaki tudna ebben nekem segíteni, annak nagyon örülnék és megköszönném.
-
#68216320
törölt tag
válasz
DeltaPower #12648 üzenetére
Igen, ez az. Rég csináltam, köszönöm;
-
#68216320
törölt tag
Urak, egy gyors kérdés.
Már nem emlékszem milyen függvénnyel tudtam megoldani, hogy tömbelemek felsorolásakor (foreach) az elemek közé be tudjak szúrni egy elválasztó tagot. Sem elé, sem mögé.
Mysql kéréshez érkeznek $_POST[] tömbben szűkítések és közéjük kellene AND tag.Tele von Zsinór:
erre gondoltál?
$mysqli->query("SET NAMES 'utf8'"); -
Dave-11
tag
válasz
Tele von Zsinór #12645 üzenetére
Hú hát azt hol tudom beállítani? Az biztos hogy itt phpmyadminban minden adatbázis és tábla illesztése utf8_general_ci, én csak ennyit állítottam.
-
Dave-11
tag
válasz
Dave-11 #12643 üzenetére
Úh ezer bocsánat, közben pár kérdésre megtaláltam a választ, de ha mégis lenne valami tanácsotok ahhoz amit leírtam, akkor kérlek írjatok
Viszont az még továbbra is fennáll egy dolog: mikor adatot viszek fel az adatbázisba, ott ugyan fura karakterekkel jelenik meg, de mikor egy lekérdezéssel kiíratom őket egy php dokumentumban, ott normálisan jelenik meg. Ez baj kéne hogy legyen? Nektek is így van, vagy nektek normálisan megjeleníti az adatbázisban? -
Dave-11
tag
Fúh tudom hogy megőrítelek titeket ezzel, meg hogy már nem tudom hanyadjára kérdezem, de muszáj vagyok megint. Karakterkódolás
Szóval: van nekem egy WAMP Server telepítve (Win7-es 64bites oprendszerre) az itthoni gépemre. Létrehozok benne egy adatbázist, és a bemenő kimenő adatok karaktereit egyszerűen nem bírja megjeleníteni.
1. Van egy .php fájl, a fájl legelején csatlakozik az adatbázishoz, aztán van egy header("Content-Type: text/html; charset=utf-8"); rész, illetve a <head> részben van még egy <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> , a dokumentumot pedig UTF-8 BOM nélkül mentem. Egy egyszerű ürlap van benne, beírom mondjuk a név mezőbe hogy Dávid, és a MySQL táblában már ezt látom: Dávid . Egyébként az adatbázis illesztése utf8_general_ci.
2. Létrehozok egy új adatbázist, utf8_general_ci, és mikor ott a phpmyadminban szúrok be adatot, nem neged ő és ű betűt az alábbi hibával: Warning: #1366 Incorrect string value... -
cucka
addikt
válasz
Vision #12640 üzenetére
Erre milyen számszerű választ vársz?
Vagy milyen alternatívára gondolsz? A file-okon kívül milyen más módon tudsz akármilyen adatot tárolni egy szerveren?
Az egy értelmes kérdés lenne, hogy a nagy mennyiségű adatot milyen módon tárold (sima file, sql, nosql), vagy hogy hogyan oldd meg, hogy ne kelljen 50-100 mb adatot a memóriában tárolni ahhoz, hogy kiírd.
Amit kérdeztél, az kb. olyan, mint ha megkérdeznéd, hogy a http protokoll megfelelő-e weboldalak kiszolgálásához. -
Egy kérdés: az fwrite függvény mennyire erőforrás igényes? Mondjuk 50-100mb-nyi string esetén..? Meg általánosságban a fájlba írás mennyire terheli a szervert?
-
válasz
Peter Kiss #12637 üzenetére
Erre egy szép scream-mel válaszol a php. Holnap lövök pontos infókat róla.
-
válasz
Sk8erPeter #12633 üzenetére
Nem. "Call to undefined method" hibaüzenetet kapok. Lehet viszont, hogy más lesz a gond.
-
Sziasztok!
Van egy objektumom, amivel "a nem létező" metódusokat elkapom a __call mágikus metódus segítségével. Hogyan tudnám ezt átpasszolni egy másik objektumnak?
Gondolok itt erre:
public function __call($name, $arguments)
{
$this->object->__call ????????
}Köszi!
mobal,
-
PiXeL90
tag
válasz
fordfairlane #12630 üzenetére
Nagyon szépen köszönöm!
Müködik! -
fordfairlane
veterán
válasz
PiXeL90 #12629 üzenetére
Van egy összeadásod és egy kivonásod, ami az előtte levő összeadásod eredményét használja fel. Először elvégzed az összeadást, letárolod egy változóba, majd kivonásánál ebben a változóban levő értéket használod fel. A változók pont ezért vannak.
$osszeadas_eredmeny = osszead( $parameter1, $parameter2 );
...
echo $osszeadas_eredmeny;
...
echo kivonas( $parameter3, $osszeadas eredmeny ); -
PiXeL90
tag
válasz
fordfairlane #12627 üzenetére
Igen, ezt értem arra gondoltam, hogy lehetne úgy hogy egy változóba elmentem az egész műveletet persze ebbe mindent kicserélek arra a változóra amire kell majd azt a változót amibe elmentettem az egész műveletet belerakom a value értékhez.
-
fordfairlane
veterán
válasz
PiXeL90 #12626 üzenetére
Mert nem az összeadás eredményét használod a kivonásnál. Az összeadás értéke beíródik egy input mezőbe, amit megkap a böngésző, de addig nem csinál vele semmit, míg megint nem nyomsz egy submitet. A következő submitnál érkezik meg a $_POST['osszeadas_eredmeny'] nevű paraméterben.
-
PiXeL90
tag
Sziasztok!
Kipróbáltam egy egyszerűbb kóddal de ugyan azt a műveletet de sajnos ígysem jó!
A kód itt található meg a 2 eredményt magátol számolja de az utolsót(a kivonást) azt nem jól számolja az összeadás eredményét 0-nak veszi.
A kérdés az, hogy hogy lehetne megoldani, hogy jó legyen?
Segítségeteket előre is köszi! -
Soak
veterán
válasz
Sk8erPeter #12623 üzenetére
Tudom, azt is tudom mi okozza, de attól még érdekes
-
Sk8erPeter
nagyúr
3 egyenlőségjel használata esetén nem fogja kiírni.
Bővebben:
http://php.net/manual/en/language.operators.comparison.php
If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically. These rules also apply to the switch statement. The type conversion does not take place when the comparison is === or !== as this involves comparing the type as well as the value.
<?php
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("10" == "1e1"); // 10 == 10 -> true
var_dump(100 == "1e2"); // 100 == 100 -> true
switch ("a") {
case 0:
echo "0";
break;
case "a": // never reached because "a" is already matched with 0
echo "a";
break;
} -
Soak
veterán
Azért ez tetszett : http://ideone.com/kaImZ6
-
Meglepetésemre időközben az admin beállította a hozzáférést, úgyhogy nem kell trükközni. Kössz a segítséget!
-
válasz
Lacces #12617 üzenetére
Nem raktam kódot, mert elég egyszerű, de pótolom. Itt az érdemi rész, ezen hasal el:
$fp = fopen($tmpName, 'r');
$content = fread($fp, $fileSize);
$content = addslashes($content);
fclose($fp);A httpd.conf-fal meg csak az a baj, hogy tudtommal restartolni kell hozzá az apacsot, ami nálam nem járható.
-
Lacces
őstag
Weiss, nem látjuk a kódot!
Esetleg ez alapján találsz valami megoldást... Ez a realpath() talán segít.
Bár én nem tom, találtam olyan leírást is ahol valaki azt írta, hogy httpd.conf-os beállítás kellett...
Ezzel kerestem a guglin -
Lacces
őstag
válasz
fordfairlane #12613 üzenetére
Inkább a rövid verziót írom le.
Igazatok van, művelet előtt be castolni jobb, lehet látni az értéket.
Elő validálás kell, de nem biztos, hogy tud valaki olyan hejde szuper módon validálni.
Bár én ettől függetlenül használni fogom, ha mégegyszer olyan a szitu
. Egészségemre.
-
Sziasztok, nem tudom, hogy ez PHP vagy inkább Apache kérdés-e, de azért felteszem. Szeretnék egy adatbázisba fájlokat feltölteni, és a kód már készen is van,működnie is kellene, de ilyen hibát kapok:
Warning: fopen(): open_basedir restriction in effect. File(/tmp/phpvGDBko) is not within the allowed path(s): (/var/www/users/weiss/) in /var/www/users/weiss/************* on line 20 Warning: fopen(/tmp/phpvGDBko): failed to open stream: Operation not permitted in /var/www/users/weiss/************** on line 20 Warning: fread() expects parameter 1 to be resource, boolean given in /var/www/users/weiss/*************** on line 21 Warning: fclose() expects parameter 1 to be resource, boolean given in /var/www/users/weiss/********************* on line 23 /tmp/phpvGDBko
Állítólag ez azért van, mert a TMP-be nincs hozzáférésem, ami igaz is. Be lehet ezt valahogy állítani, hogy én határozzam meg a TMP könyvtárat. A fő gond az, hogy ez egy egyetemi cucc, csak FTP meg PHPmyadmin hozzáférésem van. Adminok nem igazán segítőkészek.
upload_tmp_dir no value no value
-
-
PiXeL90
tag
válasz
Sk8erPeter #12609 üzenetére
Nem csak elmeséltem, hogy miért abc betűi a változók a strip_tags-et csak véletlenül hagytam benne az lehet, hogy amiatt nem müködik a számolás?
-
PiXeL90
tag
válasz
Sk8erPeter #12605 üzenetére
Szia!
A változók azért olyanok mert több function függvénybe is ugyanolyan nevü változót használtam és azt hittem azért nem számolja végig és megváltoztattam, hogy kipróbáljam de így se lett jó de már nem változtattam meg utána.
A switch függvényt kerekítésre használtam egyszer cm majd pénz kerekítésre.
A for ciklus-ok azért kellenek mert 2 form van amit ugyanúgy kell listáznia.Azért köszi a segítséget!
-
Sk8erPeter
nagyúr
válasz
PiXeL90 #12599 üzenetére
Pár tanács:
A functionöket nem egy hatalmas if-be kellene raknod. El kellene kerülnöd a teljesen olvashatatlan kód írását, például az $a, $b, $c, $d, $f, $szv, $sz1 és hasonló, külső olvasó számára teljesen értelmezhetetlen változónevek használatát (ilyenekkel tele van a kódod). Meg a helyesírási hibákat, ha már magyarul kódolszlásd $oszessen
Meg a CSS-kódban a style1, style2, style3, stb. class-ok használatát. HTML-kódnál az #urlap azonosító sem túl kifejező - milyen űrlap? Mire szolgál az az űrlap? Hidd el, sokkal jobban jársz hosszú távon, ha inkább jó hosszú, de értelmezhető neveket adsz mindennek, ami a kódodban van, neked is sokkal jobb lesz hosszú távon, mert később is átlátod a kódodat, meg külső szemlélő számára is valamennyire olvasható marad. Ne vedd magadra, nekem is szóltak és szólnak, ha gányoltam/gányolok.
(Meg javaslat, hogy futtasd át a HTML-kimeneteden a w3c validátorát: http://validator.w3.org/#validate_by_input)
Plusz kapcsold be fejlesztés idejéig a legmagasabb szintű hibajelzést (pl. kódod elejére
error_reporting(E_ALL|E_STRICT);
), és akkor már az elején kiszűrhetsz jópár hibalehetőséget.Azt írtad, az a gáz, hogy a submit1 elnevezésű gombot kétszer kell elküldeni. Nem futtattam le a kódodat, úgyhogy nem tudom, mit kellene csinálnia, de gondolom összegeznie, hogy hány darabot akar rendelni a vevőd a nem tudom micsodából. Mi az oka, hogy a nagy if-en belül a $_SESSION['select2'] változót használod, miért nem a $_POST tömböt? A sok-sok case is elég durva (gondolj bele, mi lenne, ha 1000 darabot lehetne rendelni a termékedből, akkor 1000 db case-t csinálnál?), így aztán már annyira nem volt kedvem kibogarászni, hogy mit csinálsz vele, de ami feltűnt, hogy miért jó, hogy így állítod be a session-változódat:
$_SESSION['select2'] = strip_tags($_POST['select2']);
mire lesz jó neked ez a strip_tags, ha tömbszerűen akarsz végigmenni rajta, azzal a for ciklussal? Sőt, kettő ilyen for ciklusod is van, azt sem értem, minek. -
Frigo
őstag
Új hozzászólás Aktív témák
Hirdetés
- One mobilszolgáltatások
- iPhone topik
- Milyen cserélhető objektíves gépet?
- A fociról könnyedén, egy baráti társaságban
- Olcsó Galaxyk telepíthetik a One UI 7-et
- Milyen légkondit a lakásba?
- Stellar Blade
- Házimozi haladó szinten
- Autós topik
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- További aktív témák...
- HP Elitebook 745 G3 érintőképernyős laptop (14FHD/I5-G6/8GB/256SSD)
- RTX 4090 / RTX 3090 videokartya hütő ventivel olcson! Dobozzal!
- Thinkpad T14s Gen4 14" FHD+ IPS i5-1345U 16GB 512GB NVMe ujjlolv gar
- HP Elitebook 840 G3 laptop (14FHD/I5-G6/8GB/256SSD/Win11)
- Eladó Samsung Odessey G6 S27DG600SU Monitor!
- Apple iPhone 11 / 64 GB / 85% akkumulátor / 12 Hó Garancia
- BESZÁMÍTÁS! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
- Telefon felvásárlás!! iPhone 12 Mini/iPhone 12/iPhone 12 Pro/iPhone 12 Pro Max
- Samsung Galaxy A12 64GB, Kártyafüggetlen, 1 Év Garanciával
- ÁRGARANCIA! Épített KomPhone i5 12400F 16/32/64GB RAM RTX 3060 12GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged