Hirdetés
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz The DJ #14219 üzenetére
Gyors rápillantás alapján (nem merültem bele, közöm nincs a WordPress-hez, de a hibák elég nyilvánvalóak):
eleve rossz a visszatérési érték vizsgálata, mert ahelyett, hogy megnézné, egyáltalán elvárt értéket kapott-e eredményül, egyből tömbszerűen kezeli a visszatérési értéket - pedig esetedben nyilvánvaló a hibaüzenetből, hogy NEM tömböt kapsz vissza, hanem egy WP_Error objektumot ("Fatal error: Cannot use object of type WP_Error as array"). Ennek meglétét, ahogy itt a doksiban írják, az is_wp_error függvénnyel lehet vizsgálni.A kód tehát egy szar. Így néz ki most:
$response = wp_remote_post( $paypal_url, $options );
if ( 'VERIFIED' == $response['body'] ) {
$this->paypal_ipn_values = $received_values;
$this->session_id = $received_values['invoice'];
} else {
exit( "IPN Request Failure" );
}erre kéne javítanod, felhasználva a WordPress API-t (amit most látok először ):
$response = wp_remote_post( $paypal_url, $options );
if ( is_wp_error($response) ) {
// meglehetősen undorító gusztustalan hányadék ez az exit()-es "hibakezelés"...!!!
exit( "IPN Request Failure" );
}
elseif($response['body'] == 'VERIFIED') {
$this->paypal_ipn_values = $received_values;
$this->session_id = $received_values['invoice'];
}
else {
// tököm tudja, itt mi lenne!
}A lényeg: nálad sajnos abba az ágba fog futni a kód, ahol azt fogja írni, hogy "IPN Request Failure". Ergo itt még valami mindig nem tiszta, valamiért IPN-problémád van. Most ennyire volt időm, szóval konkrétan nem tudom, miért van ez.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #14224 üzenetére
Ilyen durva önkritikát nem tudom, olvastam-e már, jót röhögtem, de azért ennyire ne légy szigorú önmagadhoz
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz The DJ #14226 üzenetére
Szívesen, bár nem sokat segítettem. Sajnos annyi fölös időm nincs, hogy átnézzem a teljes plugint, meg rájöjjek, miért van nálad IPN-para. Az pedig nem meglepő, hogy így sincs változás, de azt hittem, ez egyértelmű volt, hogy igazából csak kódjavítás történt az API-nak megfelelően, kissé szépítve (de még így is gányul hagyva) ezt a tákolást - az volt a vicces, hogy a plugin fejlesztője ezek szerint b@szott áttanulmányozni az API-t, hogy legalább felkészítse azt hibára is. Tehát most annyit javítottam a kódon, hogy legalább a plugin ismerje fel a hibát, amennyiben az van, ha ilyen WP_Error-t kapsz, akkor legalább ne kapj egy okádék fatal errort. Bár így is ocsmány, hogy a "hibakezelés" emberünknél abból állt, hogy nyomatott egy jó kis exit()-et a kód kellős közepén, ha para volt. Nem ám felhasználóbarát hibaüzenet, vagy valami.
Mondjuk az ilyenekben a WordPress amúgy is borzalom, nem tudom, mostanság hogy van, de régen emlékszem, akárhányszor elküldtem egy WP-s űrlapot, amennyiben az hibát mutatott, akkor az mutatott egy szinte üres lapot a hibaüzenettel, amely arra szólított fel, hogy nyomjam meg a böngésző "Vissza" nyilát, és akkor vissza tudok térni az előző oldalra. Nem ám normálisan le lettek volna kezelve a kommentelőűrlap hibái, és "felhasználóbarát" (vagyis inkább elvárható) módon újból megmutatta volna az űrlapot, a hibaüzenetekkel együtt.
Amúgy ez a link, amit küldtél, szintén elkeserítő, mert gyors átpörgetés alapján a fejlesztő (??? vagy inkább romboló) azt a gányolmányt belerakta a pluginjébe ("Thanks! I'll include your patch in the next release." - remek!), mármint azt, hogy objektumként kezeli a response-t, ami egy array az API szerint, és mindez kiderül úgy, hogy az ember a doksi megkeresésével és olvasásával 5 másodpercet tölt, mint én tettem...
Na, szóval most gondolom "IPN Request Failure" az eredmény, ami most nem meglepő.Melyik az a plugin, amit használsz? Nem mintha ismernék WordPress pluginokat, de nem tudom egyszerűen elképzelni, hogy ne lenne valami normális webshopplugin hozzá.
Itt mindenképp próbálkozz meg a kérdéssel (angolul nyilván):
http://wordpress.stackexchange.comSk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #14241 üzenetére
Az hogyan lehetséges, hogy egy PHP+MySQL-es könyvet HÁROMSZOR elolvastál, állítólag mindent tudsz belőle, és ilyenek gondot okoznak, például az, hogy rájöjj, hogy itt valami "pusztító alpáriság" történik?
Javaslom, inkább könyvolvasás helyett vagy MELLETT GYAKOROLJ rengeteget, önmagában az, hogy olvasgatsz, nem fog rávezetni a probléma-megoldásra. Saját tapasztalatok, saját hibázások kellenek, hogy tanulj is belőle. Persze mindezt a kísérletezést localhoston tedd.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #14267 üzenetére
Most komolyan, sírjunk vagy nevessünk?
Dokumentáció olvasgatása és értelmezése néhanapján megy?
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #14273 üzenetére
"Tényleg, hozzászoktam már a C#-os és Java-s szintaktikához egy picit, kiment a fejemből."
Hogy mi van?! Az meg hogy jön ide?
Ha megnézed a C#-os példát a doksiban, ott mégis hol látsz indexeket?
Pont ezért nem értettem a meglepettségedet, mert én is úgy tudtam, hogy emellett elvileg C#-ozol és Javázol is...Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #14275 üzenetére
"tehát ha a 2. találat id-jére szeretnék hivatkozni akkor
$result[1][0];
eddig gondolom világos.."
Világos, de a legnagyobb hülyeség integer tömbindexekkel hivatkozni a mezőidre, amikor tök egyszerűen megkapod asszociatív tömbként is a fetch_array()-vel, de akkor már használd a fetch_assoc()-ot, mivel tök felesleges, hogy asszociatív és numerikus tömb is legyen kutyulva...szóval akkor helyesen $result[1]['shirt_image_id'], ha már...
Persze nyilván így az éles kódban nem fogsz hivatkozni rá, mivel a $result tömbön szépen végigmész egy foreach-csel/while-lal/for ciklussal.Egyébként meg továbbra sem szégyen, inkább érdem olvasni a dokumentációt...
http://www.php.net/manual/en/mysqli-result.fetch-all.php
azonban itt is van a figyelmeztetés:
"As mysqli_fetch_all() returns all the rows as an array in a single step, it may consume more memory than some similar functions such as mysqli_fetch_array(), which only returns one row at a time from the result set. Further, if you need to iterate over the result set, you will need a looping construct that will further impact performance. For these reasons mysqli_fetch_all() should only be used in those situations where the fetched result set will be sent to another layer for processing."A fetch_assoc-nál meg ott van a példa is a doksiban az objektumorientált kódra:
<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$query = "SELECT Name, CountryCode FROM City ORDER by ID DESC LIMIT 50,5";
if ($result = $mysqli->query($query)) {
/* fetch associative array */
while ($row = $result->fetch_assoc()) {
printf ("%s (%s)\n", $row["Name"], $row["CountryCode"]);
}
/* free result set */
$result->free();
}
/* close connection */
$mysqli->close();Szóval nem értem, mi a gond:
a saját kódodban kigyűjtheted az eredményeidet egy másik tömbbe is, ha nagyon akarod:$myResults = array();
.....................
while ($row = $result->fetch_assoc()) {
$myResults[] = $row;
// de itt babrálhatsz az eredményeiddel így:
echo $row['shirt_image_id'] . ': '.$row['description'];
}
....................
itt felhasználhatod a $myResults tömbödet, amire akarod...
Ha ezt pl. json_encode-olni akarod, akkor nyilvánvalóan olyan módon gyűjtsd ki ezeket az adatokat a $myResults tömbbe, hogy az szűrve legyen, és csak azt a mezőt és olyan módon add vissza a kliensoldalnak, ahogy az elfogadható (pl. ha nem akarod egy az egyben a mezőneveidet visszaadni, akkor nevezd el máshogy, vagy tudom is én, mi az elvárás nálad).Szerk.:
Az pedig gázos, ha így van tagekkel ellátva a bejegyzésed, hogy vesszővel elválasztva beokádod egyetlen mezőbe:
[categories] => {utazás,párizs,trisztán}
Pfuj, broáf![ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz stigma #14284 üzenetére
Hát pedig nem kéne ezt használni. Tök feleslegesen kutyul így a default MYSQL_BOTH paraméterrel meghívva legalábbis (második paramétert nem adod meg, akkor ezzel hívódik meg) numerikus tömböt asszociatív tömbbel.
Ezenkívül pedig nagyon gyorsan felejtsd el a mysql_ kezdetű függvények használatát (ezt rohadt nagy piros betűkkel írják a hivatalos doksiban is! ), és használj helyette mysqli-t vagy PDO-t. Gondolom valami régi fos tutorialt vettél elő, ahol még ezt használják, olvasgass valami újabb könyvet/tutorialt.Sk8erPeter
-
Sk8erPeter
nagyúr
Te jó ég. Remélem, ezt a hozzászólásodat, miszerint "a foreach csak azt nézi, van-e még elem a tömbben, a for esetén pedig összehasonlít és összead is", ergo BIZTOS lassabb a for ciklus, mint a foreach, csak valami nagyon rossz viccnek szántad... Ez azért nagyon durva volt.
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
Igazából az indoklásod volt egy kicsit vicces.
A másik meg az, hogy elég meglepő eredményeket ad PHP-ban a foreach versus for ciklus használata: a srác által mutatott teszt tényleg azt az eredményt adja, hogy a foreach minden esetben gyorsabb ennyi lépésben, ami számomra kicsit furcsa, mert más nyelvekben nem igazán ez tapasztalható. (De nem azért, mert van benne egy darab összeadás művelet, meg egy darab összehasonlítás. )Szóval az ennyire feltűnő különbség a foreach javára a for ciklussal szemben a PHP-ban számomra újdonság.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz stigma #14286 üzenetére
Egyetemen mysql_ kezdetű függvények? Elég sajnálatos... Mondjuk annyira nem vagyok meglepődve, eléggé jellemző sajnos a felkészületlenség, lemaradozás, az aktuális követelményeknek való megfelelés hiánya a tanrendben, mert a tanárok sokszor lusták képezni magukat, vagy nem eléggé érdeklődőek. (Ugyanis nem csak külső lehetőség (pl. továbbképzés) hatására lehet csak fejleszteni magunkat, engem sem nyomnak oda továbbképzésre, hogy "tanuljá'", hanem épp érdekel vagy kell, így próbálok folyamatosan tanulni valamit a nálam adott témában okosabbaktól. )
"Az adatbázisban tárolt adatok kiíratására/"tárolására" 2 mód van(XML vs. JSON), melyiket érdemes/ajánlott használni Android parse-olásra ?
Én eddig csak XML fileból dolgoztam, amiben linkek voltak akár több 100 is , amik egyes képek url linkjeti tartalmazták."
Használd azt, amelyikkel könnyebben tudsz dolgozni. Mindkettő feldolgozására van mód.Például XML parse-olására itt van egy hivatalos doksi:
http://developer.android.com/training/basics/network-ops/xml.html
Ez így gyors átfutásra elég könnyen értelmezhetőnek tűnik (nem fejlesztettem még Androidra, de érdekel).JSON-re pedig:
http://www.vogella.com/articles/AndroidJSON/article.html
http://www.androidhive.info/2012/01/android-json-parsing-tutorial/
http://stackoverflow.com/questions/9605913/how-to-parse-json-in-android[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
"Volt egy csodás konferencián ahol beültették a fülébe, hogy a cookiek használata rossz és csak akkor lehet ha az ügyfél tudtára hozzuk és ő engedélyezi..."
Szerintem nem azt ültették a fülébe, hogy rossz, hanem azt, hogy EU-ban kötelező feltüntetni, és engedélyt kérni a cookie használatára, lásd EU cookie law.Sk8erPeter
-
Sk8erPeter
nagyúr
Nem úgy értette. Egyszerűen elírtad, rakj egy s-t a $header végére, mivel csak $headers változót konkatenálgattál, sima $header (s nélküli) változóról szó sem volt sehol.
Tehát még érthetőbben:
$sentmail = mail($to,$subject,$message,$header);
HELYETT
$sentmail = mail($to,$subject,$message,$headers);Sk8erPeter
-
Sk8erPeter
nagyúr
-
Sk8erPeter
nagyúr
válasz fordfairlane #14317 üzenetére
Hmm, csak azt nem vágom most így hirtelen, hogy a SwiftMailert miért így oldották meg, hogy tele van ilyen randa static newInstance-ekkel, ahelyett, hogy lehetne rendesen példányosítani.
$transport = Swift_MailTransport::newInstance();
$mailer = Swift_Mailer::newInstance( $transport );
$message = Swift_Message::newInstance( $subject )ezek helyett legalábbis sokkal szebben nézne ki így:
$transport = new Swift_MailTransport();
$mailer = new Swift_Mailer( $transport );
$message = new Swift_Message( $subject ) .....Szóval ide vajon minek a static?
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz dragon1993 #14314 üzenetére
Láttam, hogy azóta megoldódott a gondod, de muszáj rákérdeznem:
$urlek="";
$sha="";
foreach ($xml->oldal as $oldal)
{
$urlek = $urlek.$oldal->url;
$sha = $sha.$oldal->sha1;
}
$sha = split(",", $sha);
$urlek = split(",", $urlek);
....
foreach ($urlek as $url)
....Ennek mi értelme van?
Először konkatenálod egy stringgé, aztán széjjelszeded a vesszők mentén, hogy kapj egy tömböt, majd ezután végigmész a tömbön? Miért nem eleve tömböt hozol létre? Azt mondjuk eleve nem tudom, miért tartalmaz vesszőt az $oldal->url tartalma (gondolom tartalmaz, ha már annak mentén szeded széjjel), először azt kéne megoldani, de ha így is van, akkor sem összerakni, majd széjjelbontani kéne, hanem egyszerűen leszedni a vesszőt a végéről, és utána bepakolni az aktuális $oldal->url tartalmát egy tömbbe, úgy még lenne is értelme annak, amit csinálsz.Mondjuk a továbbiak is elég brutálisak. Gondolj bele, milyen felesleges futási időket adsz hozzá az alapvetően nem túl bonyolult scriptedhez:
- 2 különálló foreach ciklus - ebből eleve 1 kilőhető, mert tök felesleges végigmenni még egyszer az immár tömbbe rakott URL-eken - minek különgyűjteni, ha úgyis egyből kezdeni akarsz vele valamit? Totál felesleges lépés kapásból az elején
- aztán ott van az az érdekesen kinéző do-while-od
- még egy while
- ezenbelül még egy do-while
- na most még egy foreach így a végéreÉrzed, mennyi felesleges lépés?
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Peter Kiss #14328 üzenetére
Gondolom erre gondolsz, de konkrétan mire gondolsz, hogy nem lehetséges 5.4 előtt? Most hirtelen nem esik le, bár lehet, hogy kiböki a szemem.
(#14327) dragon1993 :
uhh, bocs, de most nincs energiám, meg időm, meg kedvem megnézni a kódot, hogyan tudnád szépíteni... Mindenesetre az első átfutásra látszott, hogy rengeteg felesleges overheadet adsz hozzá."A vesszősödi tényleg ki lesz, több [url] tagom lesz."
Hogy mi van?[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz dragon1993 #14330 üzenetére
Ja, hogy XML-ben sikerült vesszőt használni? Az rettenetesen értelmes.
Eleve mindenféle ilyen vesszős elválasztás úgy fos, ahogy van. Például sokan azt hiszik, hogy az a cikkek tagekkel való ellátásának módja, hogy vesszőkkel elválasztva benyomják egy adatbázis-mezőbe, aztán kész, pedig nagyon nem úgy kő'. Abból még egy normális query-t sem lehet futtatni, ami nem zabálja tök feleslegesen az erőforrásokat (például stringeket feldarabolni ilyen hülyeség miatt).Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Peter Kiss #14332 üzenetére
Ja, hogy így! Tehát rögtön a példányosítás utáni fluent használatra gondolsz, így már értem, bocs, előbb nem esett le.
Szóval akkor ezek szerint az a para vele, hogy külön sort kell létrehozni a működőképessé tételéhez. Mondjuk végül is akár még zavaró is lehet.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz fordfairlane #14336 üzenetére
És meglepő módon még az is segít neki, ha egy kicsit megerőlteti magát, és a dokumentációból az első értelemszerű példát copy-paste-eli, és átírja a számára megfelelő adatokra, például:
http://swiftmailer.org/docs/sending.html
Hogy mik vannak, doksi! Nem neked mondom, a kérdezőnek, meglep néha az ilyen mértékű lustaság.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Petyyyyy #14343 üzenetére
A kommentárban van egy demólink is.
Az ott szereplő képet inkább imgurra felraktam, meg a sok <br> helyett átalakítottam <p>-re, szóval sokat nem változtattam rajta:http://jsbin.com/ulufot/125/edit
tesztelgesd a különböző böngészőkben.=============
(#14345) trisztan94 :
Ügyes eszköz, de sajnos csak WebKit/Blink-specifikus kódot generál (ott a -webkit prefix), az meg nem faszányos, ha egy webfejlesztő konkrét renderelő motorra optimalizál csak... Pedig kényelmes lenne.(#14344) mobal :
"jquery blur?"
Erre gondoltál? http://api.jquery.com/blur/
Elárulnád nekem, ezzel hogy mosol el képet? Tényleg érdekelne!Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Lacces #14291 üzenetére
Most nem tudom kipróbálni, úgyhogy csak fejből írom, de az alábbiakat tesztelhetnéd:
ha a localhost fő document rootjába akarod tenni a .htaccess-t, akkor abba:
RewriteEngine on
RewriteRule ^basic-2/$ basic-2/web/index.php?r=site/login [L]
## ezután jöhet a többi RewriteRule!!VAGY ha magába a basic-2 könyvtárba rakod a .htaccess-t, akkor esetleg ez:
RewriteEngine on
RewriteRule ^$ web/index.php?r=site/login [L]Aztán persze lehet, hogy ez így nem jó, most csak gyorsan bepötyörésztem, egy próbát megér, ja, és természetesen legyen bekapcsolva a mod_rewrite modul az Apache-ban!
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz dragon1993 #14339 üzenetére
Nem tudom megérteni, miért jó neked, hogy megsokszorozod a futási időt, de nekem mindegy. Csak belegondolhatnál, mit kezdenél ennél jóval nagyobb adatmennyiségnél, akkor lehet, hogy már elkezdenél a futási idők faragásán gondolkozni... De amúgy is rossz megközelítés eleve gányolva programozni. Jobb eleve a legrosszabb esetre felkészülni, és még akkor is elcseszheted, de legalább csökkented az elcseszhetőség mértékét.
"Több oldal tagban van több url tag 1-el nehéz mindenen végig menni."
Miért is? Ha jól értem a problémádat: rekurzióról hallottál már? Igen, az beágyazott ciklus lesz, de nem kell teljesen elölről kezdened újból, ráadásul az érvelésedet nem egészen értem így magyarázatként.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Lacces #14350 üzenetére
"A basic-2 mappában van a .htaccess"
Akkor viszont nem tudom, mi a gondod, mert most kipróbáltam Apache-on, és jól működik, amit írtam
Most erre létrehoztam egy könyvtárstruktúrát, így:...
basic-2/
|- web
|- index.php
|- .htaccess
|- z_index.php
...A basic-2 könyvtárban direkt z_index.php fájl van, így nem is tud ráfutni ottani kezdőlapra (bár kiíratható lenne, hol vagyok épp).
A basic-2/.htaccess fájlban mindössze ez szerepel:
RewriteEngine on
RewriteRule ^$ web/index.php?r=site/login [L]a web/index.php fájlban pedig kiírom, hogy "web", meg egy blabladumát, aztán egy var_export()-tal kiírom a $_GET tömb értékét, és kész, és itt egy screenshot az eredményről:
Ez alapján ez pont az az eredmény, amit Te szeretnél.
Egyébként itt elég következetlenül írtad, mert egyszer úgy tűnik, csak cím-átírásról, egyszer pedig átirányításról beszélsz, a kettő pedig nem ugyanaz.
"Bár itt igazság szerint azt sem értem, hogy miért a (I)web(/I) és nem a (I)/web(/I) működik."
Mit nem értesz rajta? A basic-2 könyvtárban vagy, amiben van egy web alkönyvtárad.
A RewriteRule ^$ web [L] viszont nem fogja neked beírni a címbe a kívánt query stringet..."Ha ezt írom be: http://localhost/basic-2/
Akkor ez legyen a böngészőben: (I)http://localhost/basic-2/index.php?r=site/login"
Na várjunk.
Akkor tehát azt akarod, hogy ha valaki beírja a basic-2 címet, akkor kerüljön átirányításra a basic-2/index.php?r=site/login címre, ami viszont átíródik a basic-2/web/index.php?r=site/login címre?
Picit egyértelműbben plíz.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Lacces #14357 üzenetére
"De ha a basic-2/index.php-ban van egy link, ami az oldal1-re mutat, rá kattintok, és akkor már ez jön elő a címsorba:
localhost/basic-2/web/oldal1.php
"Ha a link valóban a localhost/basic-2/web/oldal1.php címre mutat, akkor mégis minek kéne előjönnie a böngésző címsorában? Miért nem írod át a linkek href attribútumában megjelenő URL-t? Aztán ha a megfelelő címre mutató átírás RewriteRule-lal helyesen működik, akkor nincsen gond...
Igazából ezért nem értem a problémát.A RewriteRule nem arra való, hogy az általad generált akármilyen HTML-kimenetnek a linkjeit egyenként átvizsgálja, és azokat is szépen átírja, érdekes is lenne...
"Jólvan, a képet nem jelenít meg"
Ne szórakozzá' már még jó, hogy nem jeleníti meg innen, mivel itt egy komplett oldalnak a linkjét raktad be az <img> tag src-jébe, ahelyett, hogy a képre jobb klikkeltél volna, és "Open image in new tab" (böngészőfüggően hasonló a szöveg), aztán EZT linkelted volna be, és még működött is volna...
Amúgy vágod, van a Prohardvernek is képfeltöltője. Bár tény, hogy nem túl kényelmes, például a SnagItnek - ami egy igen jó kis screenshot- és videókészítő progi - is az Imgurhoz van pluginje, ami egyből felküldi oda, böngészőben való szarakodás nélkül.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Lacces #14359 üzenetére
Hát akkor valamit nagyon félreértesz a webszerverhez érkező kérések kiszolgálásában, meg abban, hogy a SAJÁT WEBALKALMAZÁSOD milyen kimenetet generál... A saját webalkalmazásod olyan kimenetet generál, amilyet mondasz neki, hogy generáljon (meg nyilván amire képes). Elvárnád a webszerveredtől (!), hogy a kiszolgálás során, még a kliensnek való elküldés előtt parse-olja az egész HTML-kimenetet, vizsgálja meg, szerepel-e benne olyan URL, amit te át szeretnél írni, majd szépen az összes ilyet írja felül, és csak utána adja oda a kliensnek a HTML-kimenetet?
Hát ez így elég vad lenne, és főleg totálisan értelmetlen, amikor a HTML-kimenetedet NEKED kell módosítanod, generálnod úgy, hogy az úgy nézzen ki, ahogy akarod.
A RewriteRule szerepe elég "egyszerű": kliens szól, hogy szeretné az ezen az URL-en lévő tartalmat megkapni, a webszervered pedig ezt a kérést megkapja, eldönti, mit kell ezzel az URL-lel csinálni, mindezt az alapértelmezett webszerver-beállítások vagy a .htaccess/web.config/egyéb felülbírálások alapján, és ha olyan URL-t talál, amit át kell írni, akkor átírja arra, és kiszolgálja az ott lévő tartalmat. Így fordulhat elő az, hogy megadhatsz egy olyan URL-t, ami "mögött" ténylegesen, fizikailag nincs fájl, de a webszervered elintézi, hogy a kérésed végül ráfusson egy fájlra, amiben pedig eldöntöd, hogy ettől függően milyen tartalmat szolgálsz ki.Így működik a Prohardver fóruma is: pl. a
http://prohardver.hu/tema/php_kerdesek_2/hsz_14201-14400.html
cím mögött nyilván nincs fájl, hanem a webszerver "futtatja rá" valamilyen fizikailag is létező fájlra ezt a kérést, például a háttérben lesz valami ilyesmi (fogalmam sincs az igazi megvalósításról, úgyhogy csak példa):
http://prohardver.hu/index.php?q=tema/php_kerdesek_2/hsz_14201-14400.html
VAGY
http://prohardver.hu/index.php?q=tema&topic_name=php_kerdesek_2&from=14201&to=14400
VAGY
...............
(számtalan példa lehetne még)
aztán ennek feldolgozása szerveroldali kóddal...
Remélem, így már tisztább."Erre kaphatnék egy példát? Ezt hogyan lehetne másképp átírni?"
Nem Te készíted az adott oldalt, amit kiszolgálsz? Csak mert erről sem írtál semmit...
Amire gondoltam:
van egy linked, például:
<a href="web/oldal1.php">asd</a>
szépen átírod a kódodban kis kezeddel úgy, hogy helyette inkább ezt generálja:
<a href="oldal1.php">asd</a>
... vágod...Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Peter Kiss #14365 üzenetére
+ (#14363) trisztan94 :
úgy vélem, gonoszak vagytok.(#14369) mobal :
és minek, vagy ha már így van, minek a vessző a végére?Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #14373 üzenetére
Elvileg ennyi beállítani Apache-ban az alapértelmezett karakterkészletet UTF-8-ra (httpd.conf):
AddDefaultCharset utf-8
.htaccess fájlba berakva is működik (lásd "Context: server config, virtual host, directory, .htaccess")
Sk8erPeter
-
Sk8erPeter
nagyúr
"XML-ben kapom vissza a választ"
DOMDocument
http://php.net/manual/en/class.domdocument.php"Represents an entire HTML or XML document; serves as the root of the document tree."
SimpleXML
http://php.net/manual/en/book.simplexml.phpSzerk.:
Ja, hoppá, most látom, hogy az előttem belinkelt ibm.com-os cikkben pont ezeket tárgyalják ki elég jól.(#14378) Petyyyyy
A körforma eleve elég problémás. Szerintem ezt csak valami egymás fölé való helyezős trükközéssel lehetne megoldani, most hirtelen nem tudom, hogyan, vagy pedig valami JavaScript-library segítségével.
Javaslom, kérdezd meg a Weblapkészítés topicban is, hátha tudnak rá mondani valamit, főleg, hogy ez már nagyon nem PHP-s témakör. Habár az is igaz, hogy lehet, hogy PHP-ban is van megoldás rá.
Esetleg ha tudsz angolul, még Stack Overflow-n is megkérdezhetnéd, belinkelve az eddigi megoldást, ott egész biztosan tudnak mondani valami frankót.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #14376 üzenetére
"Valami miatt nem megy a htaccess"
Ez saját szerver?
Mert akkor át tudod állítani, gondolom azért nem megy, mert az AllowOverride None-ra van állítva:
http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride"When this directive is set to None, then .htaccess files are completely ignored. In this case, the server will not even attempt to read .htaccess files in the filesystem."
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #14385 üzenetére
Hát nem látjuk a generált XML-doksit, de valszeg nem parse-olható, mert mondjuk rosszul strukturált, vagy UTF-8 fájl BOM-mal az elején, vagy valami hasonló para. Legalábbis ennyi alapján.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #14389 üzenetére
"Ez jó tudni, én úgy értelmeztem a php oldaláról, hogy ez opcionális. Vagy a $client->__soapcall('funkcio_neve') vagy $client->funkcio()."
Ezt írja:
http://www.php.net/manual/en/soapclient.soapcall.php
"Usually, in WSDL mode, SOAP functions can be called as methods of the SoapClient object. This method is useful in non-WSDL mode when soapaction is unknown, uri differs from the default or when sending and/or receiving SOAP Headers."
Ez alátámasztja, amit fordfairlane írt.
Amúgy exceptionök dobálását érdemes engedélyezni (konstruktorban), és persze elkapni és kezelni, meg naplózni/fejlesztés során akár kiíratni is.
Én eddig a NuSOAP-ot használtam, szóval erről csak a doksiból tudok nyilatkozni.[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #14393 üzenetére
Akkor tudnám megmondani, mennyivel tud többet, ha ismerném a "beépített" megoldást.
Amikor SOAP-os kommunikációról volt szó egy feladatnál, akkor eleve a NuSOAP-pal kezdtem neki, mert több helyen azt láttam, hogy ajánlják (nem pedig a beépítettet). Egyébként közel sem mondanám olyan hú de jónak a NuSOAP-ot sem, legalábbis amikor én használtam, akkor valami botrányosan gyér volt a dokumentációja, a kódját kellett böngésznem és értelmeznem ahhoz, hogy rájöjjek néhány komplexebb dolog működésére (meg a kódban látható kommenteket olvasgattam), mondjuk volt ott mindenféle típus, egy C#-os kliensalkalmazásnak akartam szolgáltatni adatokat PHP-alapú WSDL-generálással (szóval az Apache-webszerver PHP-val volt a SOAP-szerver is). Ez úgy másfél-két éve volt, hogy azóta milyen a doksi, meg egyebek, fogalmam sincs."Főleg, hogy sokan visítanak, ha több hsz-t ír valaki. Holott az lenne a normális, amikor külön vannak az adott hsz-re való reagálások."
Pontosan. Engem is cseszegetett már modi emiatt, de engem nem érdekel, nem fogom ezért egybehányni a több embernek szánt hsz.-eket. Volt erről beszélgetés a házigazdák által is követett "Javítsuk a Prohardvert!"-topicban is, ott is kifejtettem az álláspontomat, többek közt azt, hogy az alapelvek pont azt mondják ki, hogy:
"Ha 5 percen belül eszedbe jut még valami a hozzászólásod után, akkor használd a (Szerkesztés) gombot, ezzel szerkeszteni tudod az aktuális hozzászólásodat.
Egy hozzászólásra mindig a Válasz linkkel írj, hogy mindenki láthassa mire és kinek válaszoltál. Ha 1-2 szavas választ szeretnél adni több hozzászólásra is, akkor próbáld meg egy hozzászólásba összegyűjteni a mondanivalódat."
Kiemelés tőlem, ebből látható, hogy a moderátorok önkényesen sokszor az alapelvekkel ellentétesen cseszegetik a júzereket. Mivel ebből az következik, hogy az alapelvek szerint is az a követendő, hogy látható legyen minden hsz.-nél pontosan annak előzménye, és csak abban az esetben kell egyetlen hsz.-be sűríteni, amit írsz, amennyiben az csupán 1-2 szavas válasz.
Szóval nyugodtan írhatunk külön-külön mindenkinek az alapelvek szerint, őstag rang fölött pedig ugyan ne akarjon már senki se vádolni bárkit, hogy hsz.-eket akar gyűjteni.
Remélem, ezt egy moderátor is olvassa.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Speeedfire #14396 üzenetére
A SoapUI az tudtommal inkább tesztelgetésre való, de arra nagyon jó. Gyorsan tudod csekkolni, ha valami a válaszban rossz. Szóval azt nem is tudnád használni élesben.
"Anno párszor belémrúgtak (nem modik, hanem júzerek), mert több hsz-t írtam, holott azok válaszok voltak adott hsz-ekre."
Ez ilyen begyöpösödött gyökérség miatt van, és pont azért, mert néhány moderátor szintén begyöpösödött hülyeségek miatt elkezdte cseszegetni az embereket, aztán belénevelték a júzerekbe is ezt az idióta szokást, hogy nyomorgassák egy hsz.-be is a több embernek szóló, akár teljesen független hsz.-t. Baromság. Mintha az adatbázis nem bírná el a több bejegyzést. Vagy mintha az a pár plusz pixel annyira zavaró lenne, amit egy külön megírt hsz. hozzátesz még. Vagy mintha lenne bármi haszna is annak, hogy egy hsz.-be van nyomorítva több embernek szóló válasz is, amikor annak az előzménye pont, hogy kényelmetlenül visszakereshető, hacsak a júzer be nem linkeli, mire válaszol, akkor "kézzel" kell kotorászni utána. Nagyon remélem, hogy idővel leszoknak erről a hülyeségről a Prohardver moderátorai, hogy ilyenek miatt izélgessék az embert, mert csak az jön le belőle, hogy valaki hirtelen nagyon élvezi a hatalmát, máskülönben az ilyeneknek semmi haszna nincs.
Annak amúgy örülök, hogy nem csak én látom így.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #14398 üzenetére
Még mindig nincs olyan, hogy </br>, csak olyan van, hogy <br /> vagy <br>... (Pedig szerintem ez már lett neked említve korábban.)
"mi az a konkatenalás?"
Most komolyan, ne csináld már... próbáltad már azt, hogy visszakérdezések helyett előbb beírod Google-be az ilyen szavakat?
De most segítek: összefűzés...A kódbeli részére:
echo 'empty($abroncs): '.empty($abroncs).'</br>';
HELYETT:
echo 'empty($abroncs): '.var_export( empty($abroncs), TRUE ) .'<br />';
PHP 5.5.0 felett pedig használhatod ezt is:
http://www.php.net/manual/en/function.boolval.phpVagy castolod int típusúvá:
echo 'empty($abroncs): '.(int)empty($abroncs).'<br />';Annak a sorodnak meg semmi értelme, hogy
echo 'isset($fos): '.isset($abroncs).'</br>';
mivel a stringbe a fantáziadús $fos nevű változót akarod tenni, de a KONKATENÁLÁS során pedig az $abroncs változót használod...Szerk.:
jé, úgy látszik, egy órák óta betöltött változatot láttam, mert azóta kaptál válaszokat.(#14404) PumpkinSeed :
"0-át"
Akarod mondani 0-t. Próbáld kimondani azt, hogy "0-át", az jön ki belőle, hogy "nullá-át". Így szoktad kimondani? Vagy pedig úgy, hogy "nullát"?http://debuggable.com/posts/false-0-or-not:480f4dd6-b2f8-49ac-97fd-493acbdd56cb
http://stackoverflow.com/questions/137487/null-vs-false-vs-0-in-php
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Sk8erPeter #14408 üzenetére
Ja, pont ugyanezt a Stack Overflow-s eszmecserét linkelte be trisztan94, nem láttam.
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #14410 üzenetére
Hát az biztos, kész vagyok, és most épp már a tököm tele van az OpenGL-lel
Sk8erPeter
-
Sk8erPeter
nagyúr
"a var_dumphoz hasonló rekurzív tömbbejáró függvénnyel kínlódom"
Szerintem ne kínlódj vele, én a Krumo-t ajánlanám. Pl. a Drupal Devel modulja is ezt használja, nagyon jól lehet vele kiíratni komplex változókat is, pl. többdimenziós tömböket, mindenféle típusú tartalommal (legalábbis amikor épp nincs kéznél egy tisztességesen belőtt IDE és Xdebug, amivel tudsz debuggolni).Sk8erPeter
-
Sk8erPeter
nagyúr
válasz don_peter #14425 üzenetére
Hát pedig whYz kódja azt csinálja, amit kell, és működik, úgyhogy "a hiba az Ön készülékében van"...
Arra viszont figyelj oda, hogy ez jQuery-vel működik. Az általad írtakat nyugodtan meg lehet valósítani plain JavaScriptben is.
Ha meg segítséget akarsz, akkor rakd fel a kódodat jsFiddle-re vagy JS Binre, hogy ne nekünk kelljen vele tökölnünk. Ja, és ne valami akármilyen oldalra rakd fel, ami úgyis meg fog szűnni, mert abból az utókor úgysem profitál semmit (ha már fórum), mivel akármikor le is törölheted, ráadásul azt mi nem tudjuk kényelmesen módosítani (csak fejlesztői panelból).
De továbbra sem értem, hogy jön ez a PHP-hoz, de mindegy.
Itt a JavaScript topic:
http://prohardver.hu/tema/javascript_topic/friss.html(#14422) Lacces :
ha belinkelted volna nekünk a phpDocumentor dokumentáció vonatkozó részét, és nem nekünk kellene utána kaparnunk, akkor több esélyed lett volna/lenne...
[ Szerkesztve ]
Sk8erPeter
-
Sk8erPeter
nagyúr
válasz don_peter #14432 üzenetére
Nem tudom, hol taglaltam, hogy én "mekkora király" vagyok, szerintem sehol. Ahogy azt sem, hogy ki mekkora akármicsoda.
Javaslatot adtam, hogy tedd fel a kérdésedet a JavaScript topicban, és segíts nekünk gyorsabban megoldani a problémádat azzal, hogy felrakod a kódodat egy online szerkeszthető tárhelyre, így a segítség még hatékony is lehet, nem oda-vissza kérdezgetésekkel és javaslatokkal fogjuk tömni a topicot, meg pazarolni egymás idejét. Hangsúlyozom: azt szeretnéd, hogy segítsünk neked megoldani valamit, a te melódat/hobbidat/leckédet akarod, hogy megkönnyítsük, mi ebből nem profitálunk semennyire, nem fizetnek érte, nem kapunk érte vállveregetést, mégis segítenénk, ehhez talán nem nagy elvárás, hogy ne nekünk kelljen plusz időt eltöltenünk ahhoz képest, amennyi szükséges.
Érdekes, ezt elég sokan rajtad kívül megértik, és aztán akár kész kódot kapnak segítségül, és elboldogulnak a kapott tanácsokkal, aztán esetleg újabb dolgokban kérnek útmutatást. Elég jól pörögnek a topicok így is.
A reakciód mindenesetre azt hiszem, csupán téged minősít, ha elolvasod a fentieket, láthatod, hogy elég normálisan írtam le az okokat. Olvasd el talán majd egy kicsit higgadtabb fejjel is, amit írtam neked korábban, akkor talán érteni is fogod, mi van oda leírva, és miért.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz Lacces #14435 üzenetére
Végül mivel oldottad meg?
Itt írnak ignore-ról, de nem olvastam el részletesen.Sk8erPeter
-
Sk8erPeter
nagyúr
válasz trisztan94 #14438 üzenetére
"ezek a Java alapú sz*rok"
Gratulálok...
Nyilván azért tartoznak a legnépszerűbb IDE-k közé a NetBeans, meg az Eclipse is, mert akkora szarok. Amúgy ez egy jó esettanulmány lehetne: vettél fél milkáért egy Macet, mert az menő, és azóta folyamatosan szenvedsz vele. Megérte? Nem találsz hozzá menő OS X-es alkalmazásokat (ebbe nyilvánvaló, hogy beletartozik a csillivilli, különben nem menő, és nem menő módon nem lehet dolgozni, hát milyen már az, hogy csak úgy simán hatékonyan tudod végezni a munkádat, mindenféle menőség nélkül), amiket hatékony munkára tudnál használni, vagy ha találsz is, akkor azért perkálni kell (ha még nem lett volna elég drága a gép). Egyébként biztos nincs így, csak az előítélet beszél belőlem, tapasztalatom nincs szerencsére Mac-kel, de pár emberkétől hallott infók alapján annyira nem vágyom rá, és erre Te is ráerősítettél a Weblapkészítés topicban is.
Ezeket a "Java alapú sz*rokat" egyébként lehet különböző paraméterezésekkel indítani, amikkel korlátozni tudod a memóriahasználatukat, meg egyéb erőforrásokkal kapcsolatos dolgaikat.Ez amúgy tényleg annyival szebb, mint ez? Biztos én vagyok a rohadt igénytelen állat, de én nem találom annyival szebbnek.
Ahogy már mondták, a "Java alapú sz*rok" alá kell a vas, SSD-vel életet menthetsz amúgy is, a 4 GB RAM meg manapság talán kevésnek is mondható fejlesztői szemmel (persze attól függ, milyen fejlesztői környezet, stb.), ha tisztességes IDE-t akarsz használni, ami azért követeli az erőforrásokat.
Annyira nagy rakás szarok ezek a Java-alapú IDE-k, hogy én például előszeretettel használom mindennapi fejlesztésre, debuggolásra (PHP-ben, JavaScriptben, CSS-ben, C++-ban) a NetBeans-t, és nagyon elégedett vagyok vele.
Igaz, én milyen jogon ugatok, amikor én csak szaros SSD-re és RAM-ra költöttem a pénzemet a gizda Mac helyett.Sk8erPeter
-
Sk8erPeter
nagyúr
Hát ennek annyira örülök, hogy szinte alig tudom szavakba foglalni. De komolyra fordítva: kit érdekel?
(#14447) trisztan94 :
"amikor egy Virtuális Windows 8+Visual Studio 2013 Pro + Windows Phone 8 emulator nem lassítja be ennyire"
Ezt a mondatot csak most láttam, azért az kemény lehet így dolgozni...
(#14456) Speeedfire :
"Ok, tehát ha valami egy optimalizálatlan sz*r, memory leaks-es valami akkor ssd, meg memória. Erre miért nem gondoltam...."Tehát akkor ha neked nem sikerül megfelelően konfigurálni az alkalmazást, mert nem néztél utána, hogy lehet korlátozni is az erőforrás-használatát például különböző paraméterezésekkel, meg mondjuk valóban kéri az erőforrásokat annak érdekében, hogy gyorsítsa a munkádat, akkor az csak is egy fos lehet, meg a fejlesztők idióták, és egyértelmű, hogy memóriaszivárgást tettek a programba? Vagy más magyarázata is lehet?
Szerk.: amúgy most én is beraktam az avatarokat megjelölésként a hsz.-be, ahogy Te is szoktad.
[ Szerkesztve ]
Sk8erPeter
Új hozzászólás Aktív témák
Állásajánlatok
Cég: Ozeki Kft
Város: Debrecen
Cég: Ozeki Kft
Város: Debrecen