- Milyen okostelefont vegyek?
- Honor Magic6 Pro - kör közepén számok
- One mobilszolgáltatások
- iPhone topik
- Olcsó Galaxyk telepíthetik a One UI 7-et
- Milyen GPS-t vegyek?
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Samsung Galaxy A56 - megbízható középszerűség
- Samsung Galaxy S22 Ultra - na, kinél van toll?
- Google Pixel topik
Új hozzászólás Aktív témák
-
Még egy kérdés, és nem zaklatlak titeket. Sikerült összehozni, hogy stringgé alakítsa az objektumot:
<valasz xmlns="" verzio="1.0"><hiba><kod>3</kod><leiras>Túl sok kérés </leiras></hiba></valasz>
Ezen hogy tudnék szépen sorjában végig iterálni a node-okon? Van rá hasonló megoldás, mint csv-nél az fgetcsv?
-
Sikerült megoldani.
-
Még egy kérdés. Esetleg arra van mód, hogy mindenestül beleírjam a lekérés eredményét egy fájlba? XML formátumban, nyilván. Utána sokkal kényelmesebb lenne már szenvedni vele, mint állandóan lekérni a szerverről.
-
oleslie
aktív tag
válasz
Vision #11987 üzenetére
Van, sok sikert a vision/octopus "rendszerhez".
Más szavakkal : térdre ... imához ..., házhoz mész a pofonért, te is felvetted a sz*póálarcot?
/érted e mire célozgatok? úgy xar ahogy van, de néhány nagyker ezt a rakás bélsárt használja, (ra*, cé*, legalábbis engem ezek érintenek), állandó sz*pás/Van egy telefonszámom/emilcímem vhol egy visionos emberkéhez /nekem annó sokat segített, bár kicsit lassan/, ha jól sejtem, 1-2 héten belül lesz neked is (még ha nem is tőlem
)
Ha érdekel pm me, és megkeresem.Jah ... gondolom még mindig felhasználja az IP-t az azonosításra. Ha most nem, de később átviszed az oldalt/soap lekéréseket más szerverre, arra figyelj, hogy az adott IP (ahonnan a soap lekérések ki fognak menni) még ne legyen regisztrálva. Ugyanis csak az fogja tudni használni a szolgáltatást az adott IP-ről, aki elsőként bejelenti. A később jelentkezők már nem tudnak mit tenni.
-
j0k3r!
őstag
válasz
Vision #11993 üzenetére
most akkor ezt a strukturat kellene visszakapnod ugye? a hibauzenetbol kiindulva gyanitom, hogy ezt is stdClass objectkent adja vissza a service, szoval elvileg valahogy igy kellene kinyerni az adatokat:
$result->GetCikkekKeszletenResult->cikk->cikkszam
de, ha mutatsz egy sikeres lefutas eseten visszakapott eredmenyt ($result), akkor tudunk biztosabbat is mondani az egyes mezok eleresehez.(#11992) Sk8erPeter: "Sőt, inkább var_export()-tal, az értelmesebb kimenetet ad, mint a print_r()." - latszik, hogy mostanaban nem php-ztam
-
válasz
Sk8erPeter #11992 üzenetére
Lehet, hogy félreértesz, mert ez az XML téma számomra teljes sötétség, még sosem kellett ilyesmivel foglalkoznom.
A htmlentities sajnos üreset-t ad vissza, semmi sem jelenik meg. Igazándiból az lenne a tuti, ha sikerülne ezt az egészet mondjuk asszociatív tömbbe írni, vagy valamilyen feldolgozható formába hozni, hogy a mezők értékeit ki tudjam nyerni, mint a csv fájloknál. A dokumentumfa egyébként ilyen:
<cikk cikkid="1">
<cikkszam>CIKKSZAM1</cikkszam>
<cikknev>Cikknév1</cikknev>
<me>darab</me>
<kshszam>84713000</kshszam>
<gyarto>GYARTO1</gyarto>
<cikkcsoportkod>AAABBBCCC</cikkcsoportkod>
<cikkcsoportnev>Cikkcsoport neve1</cikkcsoportnev>
<tipus>2</tipus>
<beszerzesiallapot>1</beszerzesiallapot>
<webigendatum>2007.10.19.</webigendatum>
<webmegjel>1</webmegjel>
<leiras>Ez itt a CIKKSZAM1 cikkszámú cikk leírása.</leiras>
</cikk> -
Sk8erPeter
nagyúr
válasz
Vision #11991 üzenetére
Lehet, hogy félreértelek: most az a kérdés, hogy a $result object elemeit hogyan tudod kiíratni/felhasználni fájlbaírásra?
Ha a $result->GetCikkekKeszletenResult->any-t kiíratod, akkor nem a várt eredményeket kapod? Mondjuk ahogy elnézem, XML-formában kéne várnod, azt meg parse-olni kell.
De amit írtál, tehát ez.
[any] => 3Túl sok kérés )
azért van ilyen formában, mert gondolom böngészővel kiírattad, az meg nem mutatta a <valasz>, <hiba>, <kod>, <leiras> tageket, mert megpróbálta parse-olni, tehát mindezt htmlentities()-zel és <pre> taggel írasd ki, ha meg akarod nézni, ténylegesen mi van benne.
Sőt, inkább var_export()-tal, az értelmesebb kimenetet ad, mint a print_r().Valahogy így:
echo ' <pre>', var_export(htmlentities($result), TRUE), '</pre>';
(a vessző itt most szándékos, felesleges konkatenálni)
-
j0k3r!
őstag
válasz
Vision #11989 üzenetére
sajnos nekem ebbol annyi jon le, hogy visszakapsz egy stdClass objectet, amiben benne van a hibauzenet. esetleg a servicet leiro metaadatokban kene szetnezni (wsdl), hogy mifele objectnek (?) kellene visszajonnie egy "helyes" operation hivas eseten. mas otletem most nincs sajnos.
-
válasz
j0k3r! #11988 üzenetére
print_r-re ez jön le:
stdClass Object ( [GetCikkekKeszletenResult] => stdClass Object ( [any] => 3Túl sok kérés ) )
$xml = json_encode($result);
var_dump($xml);
Akkor pedig ez:
string(157) "{"GetCikkekKeszletenResult":{"any":"3<\/kod>T\u00fal sok k\u00e9r\u00e9s <\/leiras><\/hiba><\/valasz>"}}"
-
j0k3r!
őstag
válasz
Vision #11987 üzenetére
hello!
mi van a $result-ban (pl.: print_r($result))? egyebkent, ha jol emlekszem, akkor server oldalon is regisztralni kell valahogy, hogy melyik operation-nek milyen a bemeneti parametere es milyen a visszateresi erteke, vagy legalabbis nusoap-nal igy volt:
$server->register("add", array("new" => "tns:newList"), array("out" => "xsd:string"), URL);
add - operation neve
tns:newList - input parameter (sajat tipus)
xsd:string - visszateresi ertek (itt peldaul json volt nalam)
URL - ugye a service cime -
Sziasztok!
Segítség kéne SOAP-os adatcserében. Adott az alábbi lekérdezés:
$client = new SoapClient('http://asd/asd.asmx?WSDL',array("trace" => 1,"exceptions" => 0,'features' => SOAP_SINGLE_ELEMENT_ARRAYS));
$result=$client->GetCikkekKeszleten(array('web_update'=>'2012-11-20-11:00'));A $result meg is kapja a stringet, de nem tudom, hogy a mezők tartalmát hogyan kérdezzem le. Van valakinek tapasztalata ez ügyben?
-
-
cucka
addikt
válasz
bobace #11982 üzenetére
A mohó algoritmusok úgy működnek, hogy minden egyes iterációban a lokális optimumot választják.
Például ha az a célod, hogy a legrégebbi számlákat kell kiegyenlíteni, akkor a mohó algoritmus minden egyes lépésben kiválasztja a legrégebbi számlát, amit ki tud egyenlíteni (ez a lokális optimum) a meglévő keretből és kiegyenlíti. Elég könnyű belátni, hogy így a végén is optimumhoz jutunk.
Ha viszont az a célod, hogy a lehető legnagyobb összeget kel kiegyenlíteni, akkor a mohó algoritmus minden egyes lépésben kiválasztja a legnagyobb összegű számlát, amit ki tud egyenlíteni (ez a lokális optimum) a meglévő keretből. Szintén elég könnyű belátni, hogy ez összességében nem fog optimális eredményhez vezetni.
Pl. ha a számláid összege 80, 40, 50 és a rendelkezésre álló pénz 100, akkor a mohó algoritmus kiegyenlíti a 80-as számlát és megáll, miközben az optimális a 40 és 50 kiegyenlítése lenne. -
cucka
addikt
válasz
bobace #11980 üzenetére
Végül is mivel alapvetően prepaid rendszerű a dolog, így mindegy melyik optimumot választanám, mert az egyenleg a mérvadó, ha most marad 20 Ft a számláján mindegy, majd következő alkalommal beszámítja a rendszer.
Pont, hogy ellentmondasz magadnak. Ha az egyenleg a mérvadó, akkor nem mindegy, hogy melyik optimumot választod, hanem pont hogy azt kell, amelyiknél a lehető legnagyobb mértékben csökken a kifizetetlen tartozás. Egyébként szerintem a 3 közül talán ezt a legnehezebb leprogramozni, mert az egyszerű mohó (greedy) algoritmus ilyenkor nem fog optimális eredményt adni.
Egyébként ez tök jó feladat, ha tanulóprojektről van szó és szeretnél fejlődni, akkor javaslom, hogy kódold le mind3 esetet. -
bobace
addikt
Szerencsére magamnak csinálom. Ez a "tanulóprojektem" phpban. Sajnos ennél ki is jött a legnagyobb problémám, nincs rendes programozó agyam
Nem tudok ennyi féle problémát előre látni... Persze, gondolom gyakorlat teszi..
Végül is mivel alapvetően prepaid rendszerű a dolog, így mindegy melyik optimumot választanám, mert az egyenleg a mérvadó, ha most marad 20 Ft a számláján mindegy, majd következő alkalommal beszámítja a rendszer. Csak szerettem volna igényesen megjeleníteni, hogy mely tételek vannak már úgymond rendezve, csak bírnám legalább valamelyiket leprogramozni -
Sk8erPeter
nagyúr
válasz
bobace #11976 üzenetére
Hát szerintem a "check_mysql" mindent kifejez, csak azt nem, hogy egy lekérdezés eredményét fogjuk megvizsgálni, és mindezt logolni vagy kivágni a képernyőre, ha mondjuk a fejlesztői módon engedélyezve van.
Ilyen névnél egy jó hosszú függvénynév is szerencsésebb, még a check_result_of_query_and_log is jobb.(vagy mindez camelCase-ben; persze lehet simán checkQueryResult is, vagy mittomén, ízlés dolga, de legyen beszédes)
Egyébként a PDO-t már csak ezért is érdemes használni, mert para esetén képes kivételdobálásra, a kivételeket meg a megfelelő helyeken el lehet kapni, és logolni mindenféle hibát. Plusz saját exception osztályokat is lehet definiálni, amiben alapból benne van a logolás, és még lehetne sorolni.cucka leírta az alapvető problémát.
De a #11977-ben írt okfejtésedben nem látom azt az esetet, ha épp csak másfél kifizetetlen számlányi összeg érkezik be. Ha nem akarsz nagyon átalakítgatni, akkor ezt valahol jelezned kéne, hogy egy adott számla végösszegének hányad része érkezett be eddig, azt' csókolom (mondjuk ezt írtam már korábban is). De tényleg a megrendelőnek kéne felvetned ezt a problémát, hogy na most akkor hogy legyen az elszámolás, nehogy aztán az legyen, hogy dehát ez nem is úgy működik, ahogy én gondoltam (tipikus ilyen rejtett elgondolás a megrendelő részéről, amikor azt hiszi, hogy amit ő gondol, az triviális másnak is, és nyilván ő is úgy gondolta, nincs is más lehetőség).
-
cucka
addikt
válasz
bobace #11977 üzenetére
Ez az a kérdés, amire nem fogsz választ kapni. Például itt a köv. bemenő adat, időrendben:
számlák 180, 50, 53, 90, 108
befizetés 200Namost
- kifzetheted a 180-at. Ez egy optimum, mert a legrégebbi számlát egyenlítetted ki.
- kifizethetsz 50+53+90-et. Ez egy optimum, mert a legtöbb számlát egyenlítetted ki.
- kifizethetsz 90+108-at. Ez is egy optimum, mert így fizetted ki a legnagyobb összeget.Az egy üzleti döntés, hogy a fenti esetekből melyiket választod (és nem csak ez a 3 eset van). Mindhárom megközelítés helyes, de ezt a megrendelővel kell tisztázni, hogy milyen működést szeretne látni a programban.
-
bobace
addikt
válasz
Sk8erPeter #11975 üzenetére
Bocs, hogy veletek osztom meg a dolgot, de kivel mással
Az elméletem:
Van X egyenlege. X lehet kisebb mint 0, 0, nagyobb mint 0.
Érkezik Y feltöltés. Y > 0
Van neki több tétele: A, B, C , D, E, n.
X >= 0 :automatikusan minden 1-re lesz állítva. Y növeli X értékét.
X < 0 esete:
1. X+Y = 0 -> mindent 1-re állítok
2. X+Y > 0 -> mindent 1-re állítok és X nagyobb lesz, mint 0.
3. X+Y < 0 ->annyit állítok 1-re, ahányat tudok.
Szeretném X-et úgy elkölteni, hogy időrendben amire pénz van azt állítsa 1-re. Egyesével vizsgálgatom sorba az elemeket:
a. Ha Y – A > Y
1. ha igen, akkor A => 1 lesz, Y pedig csökken A értékével => Y-A = Y2 => b. pont
2. ha nem, akkor ugrik B-re, és megvizsgálja azt.
(Ha Y - B > Y, akkor B =>1. Ha nem, megy C-re. Ezt folytatja n-ig.)
b. Ha Y2 – B > Y2
1. Igen: B=>1 , Y2 – B = Y3
2. Nem: Ugrik C-re.
Ez helyesnek tűnik? Mondjuk hogy hogy lesz ebből kód -
bobace
addikt
válasz
Sk8erPeter #11975 üzenetére
Ilyen hibaüziket pakol egy logba a check, amit az admin felületen tudok ellenőrizni (itt pl elfelejtettem az order by részt levenni a select végéről):
"15-11-2012, 11:46:43:: Adatbázis hozzáférési hiba. Kérjük vegye fel a kapcsolatot az adminisztrátorral. SELECT u.id FROM fees u WHERE u.paid = 0 and u.user_id=17 ORDER BY amount
Unknown column 'amount' in 'order clause'
page: C :\wamp\www\root\admin\user.php line:273"
Maga a function a mysql_error() köré épül. -
Sk8erPeter
nagyúr
válasz
bobace #11974 üzenetére
Hát reméltem, hogy ez okozza a legkisebb problémát, amikor pluszban van. De attól még a korábban felvetett probléma létezik, szóval a tartozásából kéne levonni annyit, amennyit kiegyenlített, vagy az az arányos megoldás, amit írtam, ha nem szeretnéd nagyon átvariálni, na az úgy pl. nem túl nehéz.
Ha nem megy a dolog végiggondolása kódolás során, akkor az egészet írd le egy papírra, hogy számolnád ki (ez attól még nem lesz amatőr, sőt, segít a gondolkodásban), gondold át úgy, hogy jó lesz-e, a gondolatmenetből kódot csinálni már talán a kisebb probléma, először jól kell megtervezni.
Egyébként ha már valami "rendszer" van az egész körül, akkor nem ártana azzal együttműködve megírni a kódot, gondolom akkor van valami objektumorientált módja az adatbázis-kezelésnek is (ha már ez a check_mysql() nevű, látszólag nem túl értelmes metódus is van [legalábbis a neve semmiképp sem értelmes, mert nem lehet belőle kitalálni, mit csekkol]).van ez:
while ($row = mysql_fetch_assoc($res2))
szóval a $row['id'] nyilván itt a ciklus következő lépésében fog változni.
Nálad ezen a cikluson belül van még egy másik ciklus, amivel megint egy másik query-t akarsz lefuttatni, de valamit nagyon rosszul csinálsz. -
bobace
addikt
válasz
Sk8erPeter #11970 üzenetére
A $row['id'] mikor fog változni? A sima if ágban sem ugrik a következőre? (Mert ott ha elég az összeg mindenre, akkor minden sort updatel)
Nem tudom, hogyan működik ez a check, de még eddig dobta a hibákat.. Nem vagyok php guru, majd egyszer
Az utolsó példád az a legegyszerűbb, mert akkor egyszerűen az egyenlege +2950 lesz, az if ág pedig működött ilyenre. Tehát pluszba mehet, maradhat fent egyenlege, ami kimarad, azt majd legközelebb elhasználja másra, illetve ott automatikusan 1-re állítom a paidet, amíg pluszos az egyenleg.
-
bobace
addikt
Ez így volt a rendszerben ez a check és system, ezeket nem én találtam ki,csak kopizon, ahová láttam, hogy kell.. Ez egy egyedi CRM rendszer része, amit nem én csináltam.
A megoldás az lenne, hogy 200 Ft-ból kiegyenlít időrendben amennyit tud. Ha mondjuk az 50-50-90-90-200 időben 50-200-90-50-90, akkor 50-90-50-et egyenlít ki, és marad 10. De ha mondjuk 200-50-50-90-90, akkor nyilván a 200-at. Nem tudom, hogyan lenne a leglogikusabb, lehet hogy nagyság szerinti sorba kéne rakni, nem időben? Bár ott meg ha nincs keret a legnagyobbon, és megáll a dolog, akkor meg kisebbek nem lesznek kiegyenlítve, holott arra lenne egyenleg.. Ezt én sem tudom, mi a legéletszerűbb, leglogikusabb.
-
Sk8erPeter
nagyúr
válasz
bobace #11967 üzenetére
Hogy ellenőrzi a szintaktikát, miután már rég lefutott?
Egyáltalán mivel ellenőrzöd? És mi ez a mágikus $system osztály?
A #11965-ben küldött kód attól még ugyanaz, és továbbra is áll, amiket mondtam, hogy a $row['id'] nem változik, satöbbi.
Meg cucka felvetése is jogos, hogy így még mindig nem oldottad meg a feladatot. Legfeljebb a beérkező összegtől függően valamiféle arányt tudnál a kifizetetlen összegekre beállítani, hogy mondjuk a következő kifizetetlen számlának csak a 25%-a van rendezve, a maradék még hátravan, vagy ilyesmi. Mármint a jelenlegi rendszerhez igazodva, ha csak plusz egy mezővel kell kiegészíteni - vagy a paid mezőt átalakítani úgy, hogy csak akkor 1.00, ha teljesen ki van fizetve, addig meg mondjuk decimal number, például 0.25. -
bobace
addikt
Az megesik, hogy ezer sebből vérzik, hisz én írtam, és én nagyon kicsit értek hozzá
- annyit kellene neki tudni, hogy vannak benne fizetetlen tételek, amiket ki akarok egyenlíteni. Egy-egy befizetésnél megvizsgálja, hogy mely tételeket kell kiegyenlíteni, és van-e rá fedezet. Egyszerre több tétel is lehet, mondjuk van kint 50+200+100 és bejön 180 vagy akármennyi (plusz az előző egyenlegem, mondjuk 15), ami kevesebb mint a kintlévő összeg (350), de amire van fedezet, azért azt állítsa át fizetvére (100+50). Azt érzem, hogy ez nem gyenge feladat, egyelőre annak is örültem volna, ha az 50-re rájön, hogy azt állítsa át első körben.
-a check a szintaktikát ellenőrzi, ha rossz, dob egy hibaüzit. Teszteléskor jól jött sokszor. -
cucka
addikt
válasz
bobace #11965 üzenetére
Két kérdés:
- Pontosan mit akar csinálni ez a program? Ezer sebből vérzik, így nehéz megragadni a problémát.
- a system->check_mysql pontosan mit csinál? Összerakod a query-det mindenféle sql injection ellenőrzés nélkül, majd lefuttatod, az eredményét pedig odaadod a check függvénynek. Ha sql injection történik, akkor a check függvény mit fog csekkolni? -
bobace
addikt
válasz
Sk8erPeter #11964 üzenetére
Akkor bemásolok többet
Továbbra sem vagyok sokkal okosabb, szóval simán lehet, hogy teljes hülyeség amit csinálok..
while ($row = mysql_fetch_assoc($res2))
{
if (($egyenleg + $feltolt) >= 0)
{
$query = "UPDATE fees u SET u.paid = 1 WHERE u.id=" . $row['id'];
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__);
}
else
{
$avabal = $egyenleg + $feltolt ;
while ($avabal >= $row['amount'])
{
$query = "UPDATE fees u SET u.paid = 1 WHERE u.id=" . $row['id'];
$system->check_mysql(mysql_query($query), $query, __LINE__, __FILE__);
$avabal= $avabal - $row['amount'];
}
}
}
Még így teljesen rossz? A sima if rész működik jól, azt próbáltam, vagy lehet nem is jó, csak csinálja, ami nekem kell? -
Sk8erPeter
nagyúr
válasz
bobace #11963 üzenetére
Egyrészt nem is futtatod a query-t a while-on belül, másrészt mivel itt nem változik a $row['id'], ezért lényegében többször csinálod pontosan ugyanazt, ugyanannál a sornál, vagyis állítod 1-re a paidet, egészen addig, amíg nagyobb az $avabal, mint a $row['amount']. Szóval ez még erősen átgondolásra szorul.
-
bobace
addikt
Korábban már kérdeztem itt, de nem bírtam megoldani a dolgot, így visszatértem..
Most ez a kódom:
Van egy lekérdezésem, amire a $row-val hivatkozok
$avabal = $egyenleg + $feltoltes ;
while ($avabal >= $row['amount'])
{
$query = "UPDATE fees u SET u.paid = 1 WHERE u.id=" . $row['id'];
$avabal= $avabal - $row['amount'];
}Azt akarom kihozni, hogy minden update után számolja újra az avabal-t, és a következő körben már azt vizsgálja, hogy nagyobb-e, mint az amount sorban szereplő érték. Ezt hogyan kell?
-
Sk8erPeter
nagyúr
Na, csak most volt lelkierőm elolvasni.
Szerintem ezek a problémák amúgy érdekesek, és egyáltalán nem OFF, szorosan kötődik a PHP-fejlesztéshez, még ha a másik oldalon nem is PHP-t használsz. Mondjuk engem akkor is érdekelne, ha köze nem lenne a PHP-hez, csak valami érdekes probléma.
Még arra kíváncsi lettem volna, a fejlesztéshez miért épp ezeket az eszközöket használtad, és igazából mi a végcélja a kliensednek, milyen jellegű kommunikációt szeretnél folytatni, miért oly fontos neked pont a session_id().
Szóval ezeket még le tudnád írni a kedvemért?
Sikerült megoldani azóta a problémákat? -
Brown ügynök
senior tag
válasz
Sk8erPeter #11960 üzenetére
Ilyesmi nincs beállítva a .htaccess-be de jó tudni.
-
Sk8erPeter
nagyúr
válasz
Brown ügynök #11958 üzenetére
Arra pedig a DirectoryIndex-et nézd meg, milyen sorrend van beállítva a .htaccess-ben, vagy azon a szerveren mi a default.
Saját direktívával felülbírálhatod. -
Brown ügynök
senior tag
Üdv!
Van egy enyhén szólva is pocsék kódú oldal. Ha rámegyek a honlap címére, akkor nem az index.php hívódik meg hanem egy alkönyvtár mappájának index.html fájlja, ami átirányít az oldal egy másik részére. Ez miért történhet így? A .htacces-ben ez van:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA]Megoldás: Van egy index.html fájl is és először az hívódik meg. Ezt nem tudtam.
-
Lacces
őstag
válasz
Sk8erPeter #11954 üzenetére
Hát neten nehezen veszem észre
Athlon64+ Szavadon foglak, akkor várom a cikketEngem kifejezetten érdekelne az is, hogy az IIS mennyire jó PHP / Java és a többi nyelvhez is
-
Speeedfire
félisten
válasz
Sk8erPeter #11950 üzenetére
Te is tudsz ilyeneket, csak jobban preferálod az IIS-t.
-
Lacces
őstag
válasz
Sk8erPeter #11950 üzenetére
Te meg az IIS-ről írhatnál nekünk cikket a logoutba.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11949 üzenetére
Én is tudok ilyen fejet küldeni, tessék:
.
Amúgy nagyon ügyes vagy, hogy te ilyeneket is tudsz. -
Speeedfire
félisten
válasz
Sk8erPeter #11946 üzenetére
Én legalábbis jobban szeretem az érdemi fejlesztésre fordítani az időmet, mint a szerverrel való szarakodásra.
1x kell csak bekonfigurálni rendesen. -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #11946 üzenetére
*otthon : nem biztos, hogy otthon, mindenesetre saját gépen.
Szerk.: bocs a szemetelésért. -
Sk8erPeter
nagyúr
válasz
SektorFlop #11945 üzenetére
-
Sk8erPeter
nagyúr
Őőőő, itt most szerintem egy kicsit továbbmentél az elképzelésekben, mint kellett volna. Sima, otthoni felhasználású webszerverekről beszéltünk csupán, arról, hogy nem biztos, hogy Windows-on érdemes az Apache-ot erőltetni, amikor ott van a beépített IIS is, aminek ráadásul teljesen jól kezelhető grafikus felülete van, és tök felesleges az embernek szopatnia magát az Apache konfigbuzerálásával, ha nem muszáj.
Én legalábbis jobban szeretem az érdemi fejlesztésre fordítani az időmet, mint a szerverrel való szarakodásra.Tehát itt nem arról beszéltünk, hogy nagyvállalati környezetbe mi a jó, és úgy általában Windows vagy Linux, hanem hogy Windows-ra kinek min jó fejleszteni otthon.
-
SektorFlop
aktív tag
SQL feltöltésbe bezavarnak az aposztrófok, van rá valami függvény amivel ezt el lehet kerülni?
pl: I don't like. ez már bezavarna, és nem menne az sql parancs
-
Lacces
őstag
válasz
Speeedfire #11943 üzenetére
Így csak várhatunk arra, hogy majd jön egy okos senior és ír egy ilyen cikket, de mikor lesz ilyen?
De ha egy kezdő ír ilyen bemutatót, az jobb, mint a semmi + úgy is jönnek az öregek majd okoskodni a hsz-ekbe
-
Lacces
őstag
válasz
Speeedfire #11941 üzenetére
Itt a lehetőség, hogy megírd
-
-
coco2
őstag
válasz
Speeedfire #11938 üzenetére
Az apc-t sokan szidják, hogy úgy lenyel minden mennyiségű ram-ot, ami nem emberi, aztán már többet lassít a ram hiány minden más miatt, mint amennyit gyorsít az apc.
-
Lacces
őstag
válasz
Speeedfire #11938 üzenetére
igen, statikusnál a nginx nagyon jó.
-
Speeedfire
félisten
De ne virtualizálj, ha csak tesztelni akarsz.
Külön partíció->debian->nginx & apache + APC!
Aztán adj neki. Mondjuk APC-vel már elég gyors az apache is.
Lacces: Gondolom a statikus tartalomra gondolsz. Mert a legtöbben inkább erre használják az nginx-et vagy a lighttpd-t. Csinálnak egy aldomain-t és a statikus tartalmat ezek a könnyű webszerverek szolgálják ki. -
Lacces
őstag
Az Nginx-es témához annyit, hogy azt szokták mással vegyítve is használni
. Például apache-al, főleg Java vonalon látom, hogy kihasználják a kettőnek az előnyét.
Szóval nem muszáj egyikről sem lemondani
-
coco2
őstag
És akkor zárszóként még én is had kontárkodjam bele a hitvitákba is.
A windows felhasználói célokra jelenleg még egy kicsit kényelmesebb, mint a linux, ezért startup projectek előszeretettel fejlődnek azon. Viszont ha valami tovább fejlődik az első üzleti lépcsőnél, és nagyobb szerverpark üzemeltetése válik fontossá, akkor jön majd a meglepi, hogy az olcsóbb win 7 ultiknál pld olyan szinten le van korlátozva a socket kezelés, hogy szerver célokra teljesen alkalmatlan. A win server licencek pedig nem 20-30k-ba kerülnek, hanem processzor magok függvényében 1,5 milcsi fölötti árak vannak / 1 gép. Ha SQL szervert kell rakni rá, ott is per core licence van, és simán 5-10+ milcsi az MSSQL egyetlen szerver gépre, amiből alkalmasint üzemeltetni kell fürtben vagy 16-ot. Egyszer kiszámoltuk a cégnél a "kedvezményes" licence értékét egy 64 magos szerver alaplapra (supermicro szerver alaplap, 512gb ram, 4x 16 magos proci), 197 millió huf (százkilencvenhétmillió). Egyetlen gép. Ami azt illeti, az ASP sincsen ingyen. Na aki mindezt végig számolta, elég hamar rájöhet, hogy az ingyenes linux / apache / mysql vajon miért is terjed. Pedig amúgy a mysql-nek elég rendesen megvannak a korlátai, csak hát annyival azért nem jobb az mssql, hogy milliókat akarjon érte az egyszeri magyar kifizetni. Aki még nem látott beindult startupot, a fentebbi milliós tételekre valószínűleg csak pislog, hogy tuti nem lehet az igaz. Tessék csak elhinni, olyan pénzeket gondol a microsoft levakarni mindenkiről, aki a windows hálójába kerül, és nem tud kiszabadulni belőle. Rendesen nyomják a marketinget, meg minden, de nem is ingyen gondolják a dolgokat..
-
válasz
Speeedfire #11933 üzenetére
Az a baj, hogy két magon feleslegesen virtualizálnék ez ügyben. Érdemben semmi nem derülne ki...
-
coco2
őstag
Azért nem részletezek ki mindent, mert megpróbálok nem túl o/t lenni, noha sejtem, hogy akadnak itt koponyák, akik kicsit többet is látnak annál, hogy php scriptelni. De hát legyen. Ha bárkit zavar, majd rám szól, és akkor befejeztem.
Szóval van egy sdk itt:[link]
Ebben írtam egy klienst, amivel http requesteket küldök a webszerver felé, ami már a szokásos php környezet. A kliens kommunikációs eszköze alapvetően ez: [link]
Mostanra találtam packet debuggert windows loopback sockethoz is itt:[link], így már ki tudom figyelni, igazából mi zajlik az alapokban.
Amikor böngészővel ráküldök 127.0.0.1/index.php-ra (index.php tartalma:
<?php
session_start();
if (!isset($_SESSION["counter"])) $_SESSION["counter"]= 0;
$_SESSION["counter"]++;
echo "*".$_SESSION["counter"]."*".session_id()."*";
?>)egy kérést, akkor ez megy ki első alkalommal (a raw log-ok Fiddler 2-vel készültek):
GET http://127.0.0.1/index.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: hu-hu,hu;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-aliveamire a válaszban ott egy session id:
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.4.8
Set-Cookie: PHPSESSID=nnfe854il49q0np33dikao4nt6; path=/
Date: Sun, 18 Nov 2012 17:35:05 GMT
Content-Length: 30
*1*nnfe854il49q0np33dikao4nt6*Második alkalommal a böngésző már tudja a session id-t, és berakja a kimenő kérésbe is:
GET http://127.0.0.1/index.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: hu-hu,hu;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Cookie: PHPSESSID=nnfe854il49q0np33dikao4nt6
Cache-Control: max-age=0visszaérkező válasza pedig:
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.4.8
Date: Sun, 18 Nov 2012 17:37:26 GMT
Content-Length: 30
*2*nnfe854il49q0np33dikao4nt6*amiben már azért nincs session id, mert az csak kapcsolat építéskor jön meg egyszer, és amikor a kliens már eleve elküldi, akkor a szervertől már nem jön semmi.
Megnéztem bináris felületen is a kicsi kliensecském kommunikációját a webszerver felé, a raw log a SocketSniff-el készült (linkje fentebb). Már első alkalommal ez ment ki:
Send: Return Code: 0x00000000
GET /index.php HTTP/1.1
Cookie: PHPSESSID=grnor9798ub5c9p29nfkll3jn4
Host: 127.0.0.1
Content-Length: 0és ez jött vissza:
Receive: Return Code: 0x00000000
HTTP/1.1 200 OK
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Type: text/html
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.4.8
Date: Sun, 18 Nov 2012 17:45:07 GMT
Content-Length: 30
*6*grnor9798ub5c9p29nfkll3jn4*A jelek szerint az NSURLConnection olyan szinten "okos", hogy teljesen elrejti előlem a beérkező cookie-kat, lerakja valahova file-ba, és a teljes kommunikációnak azt a részét elrejti előlem, ami natív libek esetében kicsit szokatlan számomra. Amikor kommunikációt indítok kifelé, akkor pedig minden külön kérés nélkül belekotor a cookie mappákban, elővakar valahonnét valamit, és automatán elküldi. Mindezt eddig nem tudtam, és törtem a fejem rajta, miért nem jön vissza a session id. Nem tudtam róla, hogy ha nem külön utasítom a libet, hogy küldjön cookie-t, az akkor is küld. Most, minthogy a misztériumot sikerült a segítségetekkel felderítenem, már tudom, merre induljak tovább. (Felkutatom a tárolt cookie-kat, és jól kitörlöm mindet, hogy felhasználó váltásoknál ne csessze szét nekem a session kezelést mindenestül.)
Miközben a saját pecsenyémet sütögettem, megpróbáltam lehetőleg kíméletesen telefirkálni a prohardvert. Persze ami kérdésetek van, szívesen válaszolok rájuk.
-
válasz
Speeedfire #11929 üzenetére
Azt kifelejtettem, de van még a Cherokee, mint az indián
-
válasz
Sk8erPeter #11926 üzenetére
Jó persze. De viszont a nagy előnye továbbra is él az nginx-nek, hogy marha gyorsan képes kiszolgálni, viszonylag kis erőforrás felhasználása mellet tömeges lekéréseket. Ezért szerintem az IIS és az Apache mellet nem elhanyagolható alternatíva, persze most ez merően eltér az eredeti témától.
No, majd kipróbálom és jelzem, hogy mire jutottam, ha érdekel titeket!
-
Speeedfire
félisten
válasz
Sk8erPeter #11926 üzenetére
Én sem hitkérdése miatt nem használom az IIS-t. Inkább "elszenvedek" az apache-al, de tudom hogy az windows és linux alatt is úgy üzemel majd.
-
Sk8erPeter
nagyúr
Mondd már meg, hogy a klienssel hogyan próbálod mindezt lekérni, mert ilyen titokzatos információkból nem lehet kitalálni... én sem értem, miért a szervert hibáztatod, miért nem előbb a saját alkalmazásodat, mielőtt megnéznéd valami normális programmal, hogy valóban nem érkezik-e meg az említett header...
Javaslom a böngésződ fejlesztőpanelének (F12, Ctrl+Shift+I) Network fülét.
Szóval milyen kóddal csekkolod mindezt?(#11923) mobal :
hát az osztott tárhely olyan, mint amikor regisztrálsz egy tárhelyet mondjuk a Tárhelyparknál, a Hostgatornál, GoDaddy-nél, és így tovább, és lesz egy saját tárhelyed, még sok-sok másik előfizető tárhelye mellett. Osztott a tárhely, tehát másokkal is kell osztozni az erőforrásokon, emiatt vezetnek be memória- és egyéb korlátokat.
Ha a saját szerveredet üzemelteted, akkor az nem osztott tárhely.
Gondolom annyira nem mondok vele meglepő dolgot, hogy a Facebook a saját szerverét használja, és nem regisztrált egy osztott tárhelyet.......(#11922) Speeedfire :
hát én szándékosan nem vittem el hitkérdés irányába, hogy márpedig fúj, Apache, mert attól még az Apache egy jó szerver, hogy kényelmetlen a konfigolása az IIS-hez képest... -
coco2
őstag
válasz
Sk8erPeter #11921 üzenetére
Köszi, restart megvan.
Elvileg már bele kellene mennie a body-ba a hibaüzenetnek, ha a php bármit hibának talál, de hiba visszaírást nem látok a body-ban.
A session_id()-t felhasználhatnám arra, hogy belecsempésszem egy weblapba a session id-t, amit kliens oldalon kiparsingolok belőle (natív prognyelven parsingolni weblapot, finom falat), és headerbe pakolok a válaszoknál, de mindezt egy olyan bináris komponens miatt tegyem meg, ami egy vacak http requestet sem tud szabályosan elküldeni? Mert perpill vélhetően az az igazi problémám, hogy egyáltalán nem tudok szabványosan kommunikálni a webszerverrel, és gyaníthatóan ezért nem jön a szabványos válasz sem. Lenne ebből túl sok szövődményes egyéb problémám is, amit nekem nincs kedvem bevállalni. Inkább az igazi bűnös grabancát kapom el, mint ártatlanokat büntessek. Ha az megvan, utána meg már azért nem lesz szükség a session_id()-ra.
-
válasz
Sk8erPeter #11920 üzenetére
Ez esetben rosszul gondoltam.
-
Speeedfire
félisten
válasz
Sk8erPeter #11920 üzenetére
Ő, újratábla. Windows alatt nem fogok IIS-t használni weblapokhoz.
Nem megy ma ez nekem... -
coco2
őstag
válasz
Peter Kiss #11915 üzenetére
Ki volt kapcsolva. Átállítottam "On"-ra. Azt persze nem tudom, hogy így IIS esetében a php.ini átírása mennyi idő múlva lép érvénybe. Wamp-nál volt "restart all services", itt mi van erre a célra?
Nekiszabadítottam a fiddler-t az index.php-nak, és már gyanítom, hogy hol lesz a bűnös. Kutya baja van a webszervernek. Nem hibás sem az IIS, sem az apache. Az a gnu-c lib lesz a bűnös, amit használok. Szerintem nem küldi normálisan a kötelező request értékeket, és a webszerver támadásnak veszi a csonka adatokat. Ezt persze nem fogom tudni bizonyítani addig, amíg nem tudom keresztülküldeni az NSURLConnection hívásait valami proxy-n, ami megmutatja, hogy mit küldök kifelé, amire a válasz visszaérkezik. Ez a fiddler ügyes kis találmány, de sajna webbrowserbe épülő plugin. Létezik ilyesmi binárisban is, ami a rendszerbe épül bele és natív alkalmazásokat lehet vele kukucskálni?
-
válasz
Speeedfire #11916 üzenetére
fb?
-
Peter Kiss
őstag
-
coco2
őstag
Kérhetném, hogy egy probléma megoldás objektív folyamata ne fulladjon linux vs windows hitvita flame-be? Hálásan köszönöm.
mobal: Nginx-et én sem láttma még életközelből.
Telepített iis + php, a php.ini file 461. sorában jelenleg ez van: error_reporting = E_ALL|E_STRICT. Újraindítottam a gépet, lefuttattam a ráhívást, cookie ofc nem jött vissza, bár zavaró tényezőként a counterem is már 2-es értéken állt. Valamiért egy gép restart nem nullázta le a dolgokat. PHP log file-nak nem tudom, hol kellene lennie. Ezzel valaki segítsen ki.
PHP + IIS telepítéshez találtam egy normálisann leírást: http://www.hauser-wenz.de/s9y/index.php?/archives/280-Installing-PHP-on-Windows-7.html, így már kicsit egyszerűbb volt a dolog. Ennek a lépéseit követtem.
A webszerverekkel kapcsolatos hitvitákat részemről rátok hagyom. Én nem azért váltottam, mert egyik vagy másik jobb lenne. Nem különösebben érdekel egyik sem. Én egy kliens oldali programot fejlesztek (alapok írásánál tartok), aminek kommunikálnia kell egy webszerverrel, és a user folyamatok egyik fontos alapja a session id, amit nem találok. A header-t a saját programom listázza le, de természetesen vevő vagyok bármilyen már kitesztelten hibátlannak tekinthető egyéb alkalmazás bevetésére is, csak hogy plusz egy hibalehetőséget kizárjunk kezdetben. A Fiddler-t még sosem használtam, de éppen leszedek egyet, és megpróbálom beüzemelni. Az apache volt eredetileg a gépemen, és gyanakodtam a headerre. Az apache-ot azért szedtem le, hogy ne 2 webszerver legyen a gépen, mert az nem szerencsés. Most IIS van fent, és itt sem látok session cookie-t. Meglesem Fidlerrel, és megírom, mit találtam.
-
válasz
Sk8erPeter #11911 üzenetére
Csak abból kiindulva, hogy a fészbúk is ezen futkározik
-
Speeedfire
félisten
válasz
Sk8erPeter #11909 üzenetére
Én meg IIS alatt nem fogok windows alatt oldalakat futtatni.
-
válasz
Sk8erPeter #11909 üzenetére
Nginx-ről mi a véleményed?
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11908 üzenetére
Persze, az is egy jó szempont, hogy ugyanaz legyen a tesztelési környezet, mint az éles környezet.
De nálam ettől még nem fog Apache futni Windows-on. -
Speeedfire
félisten
válasz
Sk8erPeter #11907 üzenetére
Én mindig azt nézem, hogy végül hol fog landolni egy oldal. Ha linuxon, akkor nagy valószínűséggel apache alatt fog futni.
Beállítások. Hát, wamp alatt is csak egy kattintás egy extension ki/bekapcsolása. Nem sokat kell mókolni szöveges fájlban.De ugye, kinek ez kinek az jön be jobban.
-
Sk8erPeter
nagyúr
válasz
Speeedfire #11906 üzenetére
Nekem sokkal jobban tetszik az IIS, mert van hozzá egy elég értelmesen kialakított grafikus felület, és én régen eleget konfigoltam az Apache-ot ahhoz, hogy megutáljam a szöveges fájlokban való buzerálást, a véletlen elírásokat, nehézkes beállításokat, sokszor túl sok időt vett el a fejlesztésemből az, hogy utána kellett olvasni, valamit hogy lehet rendesen belőni. Az IIS-t is meg kell ismerni ahhoz, hogy tudd használni, de utána szerintem (legalábbis számomra) minden sokkal gyorsabb. Ráadásul így az ASP.NET-es alkalmazások is "natívan" futtathatók, ha majd ismét lesz időm fejlesztgetni benne egy kicsit. Az IIS-hez tartozó PHP Manager segítségével pedig szintén grafikus felületen tudod állítgatni a php.ini dolgait menetközben, tudsz engedélyezni/letiltani extensionöket, ezenkívül tudsz váltogatni elvileg különböző PHP-verziók között.
Csomó mindent be tudsz állítani az egész szerver újraindítása nélkül. Az egyes site-ok egyébként egyenként is újraindíthatók.
Meg én valahogy Windows-os környezetben (mivel Linuxon az IIS nem is megy) gyorsabbnak érzem az oldalaim sebességét IIS-en, mint Apache-csal. (De Linuxon Apache-csal futtatva ugyanolyan gyors, vagy még gyorsabb, szóval furcsa.)
-
Speeedfire
félisten
válasz
Sk8erPeter #11905 üzenetére
És miért lesz neked jobb attól, ha Windows alatt Apache-ot használsz?
Miért jobb, ha IIS-t használ? Pl én sokkal jobban preferálom a wamp-ot, tudom váltogatni a modulokat is. Így adott tárhelyhez kitudok alakítani tesztkörnyezetet. -
Sk8erPeter
nagyúr
"Ha az IIS alatt nem működik, semmire sem fognak nekem kelleni az IIS dolgai."
És miért lesz neked jobb attól, ha Windows alatt Apache-ot használsz?"Egyenlőre még IIS beállítással küzdök, mert ahány leírást csak találok iis + php installhoz, mindegyik enyhén szólva figyelmetlenül készült. Így első alkalommal nekem ez még valahogy nem 2 perc alatt jön össze."
Nem értem, én annak idején találtam hivatalos leírásokat is a dolog menetéről, és tök gyorsan megvoltam vele, mondjuk az hülyeség, hogy 2 perc lenne, mert az csak úgy igaz, ha valakinek már van vele tapasztalata.
De nem értem, miért a bonyolultabb utat választottad, amikor van összekattintgatós, gyors módszer, ami helyetted megcsinálja a szívás részét, direkt ezzel kezdtem.Hányas PHP-t használod?
Ahogy már mondták, hibajelzés legyen a lehető legszigorúbb, error_reporting(E_ALL|E_STRICT);, ezenkívül arra még mindig nem reagáltál, nem látsz-e valami releváns dolgot a logban.
Mivel csekkolod a headereket, Fiddlerrel? -
coco2
őstag
Oké, az IIS is dettó mint az Apache.
A header kimenet:
"Cache-Control" = "no-store, no-cache, must-
revalidate, post-check=0, pre-check=0"; "Content-Length" = 30; "Content-Type" =
"text/html"; Date = "Sun, 18 Nov 2012 13:14:13 GMT"; Expires = "Thu, 19 Nov 1981
08:52:00 GMT"; Pragma = "no-cache"; Server = "Microsoft-IIS/7.5"; "X-Powered-By
" = "PHP/5.4.8";A body kimenet:
*1*grnor9798ub5c9p29nfkll3jn4*Szóval a session-t frissen kezdte, és mégsem küldi header-ben a session id-t. Miért nem?
Ha én szúrok el valamit, mit?
-
coco2
őstag
válasz
Sk8erPeter #11900 üzenetére
Természetesen elolvasom az összes hozzászólást. Majd eljön az ideje a MySQL-nek is, de előbb egy RFC szerint létező session id-t szeretnék látni kliens oldalon. Ha az IIS alatt nem működik, semmire sem fognak nekem kelleni az IIS dolgai.
Egyenlőre még IIS beállítással küzdök, mert ahány leírást csak találok iis + php installhoz, mindegyik enyhén szólva figyelmetlenül készült. Így első alkalommal nekem ez még valahogy nem 2 perc alatt jön össze.
Új hozzászólás Aktív témák
Hirdetés
- Csere-Beszámítás! AMD Számítógép PC Játékra! R5 5500 / RX 5700XT / 32GB DDR4 / 256SSD+1TB HDD
- Készpénzes számítógép PC félkonfig alkatrész hardver felvásárlás személyesen / postával korrekt áron
- BESZÁMÍTÁS! Sony PlayStation4 PRO 1TB fekete konzol extra játékokkal garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i3 10105F 16/32/64GB RAM RX 6600 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: PC Trade Systems Kft.
Város: Szeged