Új hozzászólás Aktív témák
-
trickyy
senior tag
Sziasztok!
Kérdésem az lenne,hogy mennyire érdemes elkezdeni szerintetek a PHP nyelvet elsajátítani ,kifizetődő lenne-e hosszabb távon,akár iskolát is végeznék ilyen területen,mint webprogramozó.
Érdekelne a dolog,csak nincs ismerősöm a szakmában akitől tanácsot kérjek,gondolom itt akad olyan aki talán ebből él meg.
Előre is köszi!
Szerk:
Lenne segítségem is.
-
Sk8erPeter
nagyúr
válasz
raczger #8098 üzenetére
Hát ennyiből nem tudom, mondjuk azt nem írtad, az Android app helyesen megkapta-e minden alkalommal az adatokat, nem volt-e 404, vagy hasonló, ami miatt mégis a főoldal nyílt meg mondjuk, stb. - meg nem indított-e az Android-app túl sok requestet mindemellett...
Majd írd meg, ha újból tesztelted, és ezeket mind vágod. -
raczger
őstag
válasz
Sk8erPeter #8093 üzenetére
Első bekezdés stimmel.
Igen, van egy eredeti oldalam, pl a valami.hu, az androidos progi meg egy könyvtárban lévő php-t hív meg, aminek elvileg semmi köze nincs az eredeti oldalhoz (valami.hu/konyvtar/fajl.php).
Az eredeti oldalon ami mindig lefut nem beszúrás, csak lekérdezés, de akár lehetne látogatásmérő is.
Egy session alatt androidban is csak egyszer fut le, egyszer hívja meg egy alkalommal és az eredeti weboldalamon is csak 1x-1x van egy oldalletöltés alkalmával a két sql lekérdezés.
Androidban, azaz java-ban, a new URL-el olvasom be az url-t.
Sajnos akkor nem jutott eszembe, hogy az adatbázist megnézzem, pedig van user online rész, lehet ott láttam volna valami érdekeset, majd egy másik tárhelyen fogom újra letesztelni ezt.
A tárhelyes egyébként mutatott egy adatbázis szerver terheltség grafikont, kb a 5x-ére nőtt a terheltség ezekben az időszakokban mikor teszteltem az android appomat.
Van awstats a tárhelyemhez (cpanel) és ott sem mutatott ekkora terheltséget. Az azt mutatta, hogy összesen 7000-szer hívtam meg az adott fájlt, ami többszöri tesztelést tesz ki, több nap. Ez közel sincs ahhoz a 40.000-es számhoz, ami néhány perc alatt összejött elvileg.
Vizsgák után másik, full tiszta tárhelyen elkezdem vizsgálni ezt a problémát, nem hagy nyugodni, hogy mitől lehetett ez pontosan.Athlon64+: Elírásos hibánál bosszantóbb nincs. Volt, hogy tudtam, hogy valahol elírtam, csak nem találtam több óra keresés után sem, aztán úgy döntöttem, inkább újraírom azt a részt, és úgy jó lett
-
CSorBA
őstag
válasz
Sk8erPeter #8095 üzenetére
Persze, mert felmásoltam és kész
A Setupot még nem néztem, majd nekiesek egyszer.
Athlon64+: Nincs ennél bosszantóbb
-
Sk8erPeter
nagyúr
A phpMyAdminnak van egy config.inc.php fájlja a főkönyvtárában.
Ebben néhány beállítás található, többek közt a blowfish_secret is, ezt nálam az a setup generálta, ami ott van a /setup cím alatt... ez generálta a config.inc.php-met is.
Nálam localhoston így néz ki ez a blowfish_secret kód (egy sor a sok közül):
$cfg['blowfish_secret'] = '4efe8f2e64de52.06461375';Valszeg ez nálad nincs beállítva. Vagy valami hasonló.
-
CSorBA
őstag
válasz
Sk8erPeter #8093 üzenetére
Megnéztem már, de sajnos nem jártam sikerrel.
Annyit tudok csinálni, hogy felrakom egy mappába a szerveren a pma-t, beállítok neki egy subdomaint, pl.: pma.domainem.hu És ott már enged belépni a dbuserrel és dbpass-al. És szépen csak az adott dolgokat látom.
Egyedül annyi bajom van, hogy be kellene konfigolni normálisan, mert arénázik vagy 3 dologról alul:
The phpMyAdmin configuration storage is not completely configured, some extended features have been deactivated. To find out why click here.
A konfigurációs fájlnak egy titkos hozzáférési kódra (blowfish_secret) van szüksége.
A szerver Suhosinnal fut. Kérjük, hogy a lehetséges problémáknak nézzen utána a dokumentációban.Bár ettől függetlenül engedi csinálni amiket kell.
-
Sk8erPeter
nagyúr
válasz
raczger #8086 üzenetére
Szóval akkor röviden összegezve: az az alkalmazás, ami az Androidos proginak szolgáltat adatokat 2 mp-enként, állításod szerint egyáltalán nem is kapcsolódik adatbázishoz, csak megkavar egy tömböt, kiírja az egyik tartalmát, meg csinál egy fájlba írást, igaz? ... és annak ellenére, hogy az Androidos progihoz semmiféle adatbázis-baszkurálás nem kell, azt mondják, durván túl van terhelve az adatbázisszerver. Eddig stimmel?
"a két sql lekérdezés amit beszúrt nekem az az eredeti oldalamon szokott meghívódni"
Ezalatt az "eredeti oldalam" alatt mit értesz? Úgy érted, a főoldalon lefut mondjuk egy látogatást mérő szkript, ami beszúrogat adatbázisba, a kis Androidos alkalmazás meg csak valami alkönyvtárban van? Annak a bizonyos scriptnek a lefutása függ sessiontől? (úgy értem, egy session alatt csak egyszer fut le?) Vagy úgy tűnik, minden alkalommal új sessiont kezdeményez? Mert mondjuk ilyen akkor elő szokott fordulni, ha az ember pl. DOMDocument segítségével olvasgat be adott URL-ről visszakapott adatokat. Ehhez hasonló esetben meg, ha valamiért mégis először a főoldalon le tud futni az a bizonyos script, akkor akár előfordulhat, hogy mindig újból és újból lefut... Látható is, hogy az adattábláid durván telítődnek? Vagy milyen változásokat látsz az adatbázisban?
Bocs, hogy ennyi kérdéssel válaszoltam a kérdésedre, de ezek ismerete nélkül elég nehéz behatárolni szerintem így "külsősként" a problémát...==
(#8091) Athlon64+ : mutass kódot, ahogy raczger is írta.
===
(#8090) CSorBA:
Gyors guglizás alapján hátha ez segít, tapasztalatom nincs benne: [link]. -
raczger
őstag
válasz
Peter Kiss #8091 üzenetére
Szerintem csak valami elírás lesz (a legidegesítőbb hiba
. Ha megmutatod a metódust és a használatára írsz példát, ami neked működött helyesen. Több szem többet lát.
-
Peter Kiss
őstag
Érdekes hiba: Adott egy metódus, ami 2 paramétert fogad, 2 INT-et elviekben. Ennek átadom a következő paramétereket: 100, 100
Maga a metódus ezt látja (simán azonnal kiíratva print_r-rel): 100, 0Vajon miért nem tudja fogadni a másik paramétert? Ma már volt egy hasonló esetem, de ott nem tűnt ennyire fel, de ott is pontosan ez volt: az átadott true helyett mindig false-t látott.
-
CSorBA
őstag
Tegnap óta gondolkozok, mit akartam tőletek kérdezni, végre eszem bejutott (bár nem annyira phps kérdés):
Adott egy cpaneles szerver, cpaneles loginnal. Ha belépek, akkor van phpmyadminom is. Azaz konkrétan a pmadminba a cpnales elérést/azonosítást használja. Van lehetőségem, hogy az adott userrel lépjek külön be? Mert így ha valamelyik aloldalnak kellene, az egészet kellene odaadom.
-
Lacces
őstag
Írtam magamnak egy kódot. De nem írja ki az eredményt. Alapszinten megcsináltam, kiírta a fájlokat + könyvtárakat csak sajnos nem lexikografikusan. Hanem teljesen összevissza.
Most viszont megpróbáltam sorba rendezni, de elakadtam, az az nem ír ki semmit.
Vagy nem tudom jól hozzáadni a tömbökhöz az elemet. (Szerintem inkább ez), vagy a kiíratásnál vérzek el.
A PHP Manualban néztem az Arrays részt, de nem igazán jöttem rá mi a gond. Lehet valamit benézek.
$noVisible = array('.','..','.settings','.project','.buildpath');
$files = new DirectoryIterator('./');
$dir = array();
$file = array();
//for($i=0; $i<$files->getSize()-1; $i++) ki kommentálva, a $dir[$i] elképzelés is kudarcot vallt
foreach ($files as $f ){
// a $noVisiable tömb elemeit ne jelenítse meg.
if (!in_array($f, $noVisible)){
// Ha $f könyvtár, akkor a $dir tömbbe mentse el, ha nem akkor a $file tömbbe.
if($f->isDir()){
//echo $f.'<br>';
$dir[]=$f;
}else {
//echo $f.'<br>';
$file[]=$f;
}
}
}
// Rendezze a tömböket.
sort($dir);
sort($file);
// Írassa ki a tömbök tartalmát.
foreach ($dir as $d)
echo $d.'<br';
foreach ($file as $f)
echo $f.'<br>';Tele von Zsinór: Okés, akkor Yii, meglettem győzve
-
raczger
őstag
Tegnap egy kissé fura dologgal találtam magam szemben.
Épp írok egy android alkalmazást, amely interneten keresztül beolvas egy url-t és azokat az adatokat feldolgozza. Ennek tesztelésére hasonló adatokat visszaadó php-t raktam a tárhelyemre. A php annyit csinál, hogy egy 10 tagú tömböt összekever és kiirat illetve felülír egy fájlt az aktuális idővel. A tárhelyesek tegnap küldtek nekem egy emailt, hogy szokatlanul magas sql lekérdezést hajt végre valami a tárhelyemről, konkrétabban másodpercenként több százat (körülbelül pár perc alatt több, mint 60.000 sql lekérdezés). Ez irreálisan magas, mivel 100 egyedi látogatóm van, napi 1000-1500 oldalletöltéssel. A tárhelyes arra a php-ra gyanakodott, amit az android app tesztelésére csináltam (2mp-enként hívtam meg), írtam neki, hogy ez lehetetlen mivel abban még csak adatbázishoz sem kapcsolódok. Ő eltávolította azt a fájlt (mappát) és állítólag megszűnt a szokatlanul magas terhelés. Ez számomra több szempontból is furcsa, és itt jön a kérdésem/kérésem, kellene egy kis felvilágosítás, mert lehet, hogy én tudtam eddig valamit rosszul. Ja még annyit hozzáteszek, hogy a két sql lekérdezés amit beszúrt nekem az az eredeti oldalamon szokott meghívódni, minden oldalletöltéskor.
Az oldalamon van htaccess url rewrite, ami akkor irányít át a főoldalra úgymond, ha a kért fájl nem létezik. Tehát elvileg, ha azt a valami/valami.php-t hívom meg közvetlen akkor elvileg a főkonyvtárban lévő index.php-hez köze nem lesz, véletlenül sem futtatja le. Ám, ha mégis, 2mp-ként meghívom a fájlt akkor 2mp-enként lenne az a két sql lekérdezés, nem? Egy kliens hogy tudná így felhalmozni az sql lekérdezéseket? Eléggé nyugtalanít, hogy nem értem, nem tudom összerakni a kockákat, mert én valami másra gyanakszom, hogy más dolog miatt lehetett ez. -
Tele von Zsinór
őstag
Kezdetnek Yii vagy Kohana - ezeket relatív egyszerű megtanulni, széleskörűen használtak, megfelelően dokumentáltak, és guglival is sok problémádra megoldást találsz.
Később, ha továbbra is webfejlesztőként tervezel előre, érdemes lehet legalább utánaolvasás szintjén megnézni az összetettebb rendszereket, gondolok itt a Symfony2-re és a Zend2-re (utóbbi még csak a béta-fázisnál tart).
Egyébként szabadidődben érdemes néha olvasgatni a választott rendszer kódját, problémamegoldáskor is jó, remek tanulási lehetőség, és szokod, hogy más által írt dolgot kell megértened.
-
Lacces
őstag
Még tart a könyv kivégzése.
. Elég lassan haladok, még szoknom kell a PHP szintaktikát és gondolkodást.
Azt akarom kérdezni, hogy vannak ezek a frameworkok. Mint a Zend, CakePHP,Yii stb.
Na majd én szeretnék egy weboldalt (mi mást...
). Amit élesben akarok használni, üzemeltetni. Ahogy volt most a felhasználó kezelés/regisztrálás. Így eszembe jutott, hogy megkérdezem a dolgot tőletek.
A következő weblap tervhez, melyik framework-ot ajánljátok.
- Felhasználó kezelés / regisztrálás / authentikálás, az fontos, ha alapból már biztonságosan lehetne, felhasználókat regisztrálni, bejelentkeztetni (nem nekem kell kódolni benne sokat, úgy mélyen, hanem csak a kinézetre koncentrálni)
- MySQL-hez kapcsolódás az PDO példányokkal történjen. Nagyon szeretem, nagyon tetszik (még az elején járok, de ez jön be)
- HTML 5-ös elsősorban a CANVAS megjelenítését akarok használni a weblapon. Grafikon, statisztika adatok kirajzolása.
- JQuery pluginek is lennének alkalmazva.MIndegyik FrameWork-ról olvastam, és mindegyiket dicsérik itt-ott... nehéz a választás majd. De úgy tudom, hogy ezek jelentősen letudják rövidíteni a fejlesztési időt is.
Saját weblapokhoz melyiket ajánlanátok?
Illetve még egy apróhirdetés szerű oldalt is szeretnék majd fejleszteni. Olyan témájú apróhirdetős oldalt még nem találtam.
-
Lacces
őstag
válasz
Sk8erPeter #8078 üzenetére
Yeap, most végig viszem Eclipse-sel a következő kis mini projekt meg Netbeans alatt nézem meg.
-
Sk8erPeter
nagyúr
Szerintem használd azt, ami neked kényelmesebb. Az Eclipse és a NetBeans egyaránt teljesen jó lehet. Nem hinném, hogy az Eclipse kevesebbet tudhatna a NetBeans-nél PHP-fejlesztéshez, szerintem mindkettő beállítható úgy, hogy hasonló képességű legyen, de majd szól valaki, ha mégis komoly hiányosságot fedezett fel valamelyikben.
... és mindkettő ingyenes... ez eléggé mellettük szól.
-
CSorBA
őstag
Ezt nem nagyon értem, de ugyanúgy mint bárhol máshol.
Szóval ha kell egy fájl eggyel kintebbi könyvtárból: "../file.neve"
-
PHP-ban hogyan lehet eggyel feljebbi könyvtárban lévő fájl behívni?
Pl.
Benne vagyok az gyumolcs/alma/idared könyvtárban
Az alma könyvtárban van, ami kell nekem. Hogyan hívjam meg?
-
sNORh
addikt
Hali
Egy kis segítség kellene.
Adott egy e107-es design, azt én átalakítottam kicsit, és eddig mindent át tudtam írni a style.css fájlban amire szükségem volt, de msot megakadtam. Az oldal fejlécének az aljából levágtam egy 1000x1pixeles képet, és azt szeretném a háttérnek végteleníteni.
ő lenne az alap:body { margin: 0; padding: 0; font-size: 12px; font-family: 'Lucida Grande', Verdana, Arial, Sans-Serif; color: #ffffff; text-align: center; background: #000000 url('images/background.jpg') no-repeat top center fixed; }
ne kövezetek meg mert itt teszem fel a kérdést, de ez a topik pörög a legjobban
-
Lacces
őstag
válasz
Peter Kiss #8069 üzenetére
PhpStorm, jól hangzik, főleg a JetBrains név, sok jót olvastam róla. 30 napig ingyenes
Ha lesz állásom, lehet megveszem
-
válasz
Peter Kiss #8069 üzenetére
+1 PhpStorm. Alapból a JetBrains -es cuccok marha jók.
-
Lacces
őstag
válasz
Sk8erPeter #8067 üzenetére
Rendben, köszönöm a jó tanácsot!
(De azért mejegyzésben megtartottam a regexpreszt
Ahogy olvastam én is, nem igazán van neten, most próbáltam egy Pimp my Gedit nevű plugint, hát én változást nem látok
.
NetBeans-en gondolkozok amúgy. Akartam is egy ilyen kérdést berakni, de ha már feljött a téma:
Én Eclipset használok. Java-nál nekem jobban bejött. Nem tudom, hogy mi az előnye, csak jobban szeretek benne kódolni. Nekem egyszerűbb, jobban rááll a kezem. Hamarabb megtudtam szokni.
De itt Eclipsben szegényesnek tartom a php-t. (leszedtem a plugint, de mégsem érzem úgy, hogy az igazi).
NetBeans megér egy próbát? (Anno a python-t is NetBeans tanultam, elég részletes "támoagtást" nyújtott. Csak akkor is a kódolás. Nem tudom... Visual Studio, Eclipse-re áll rá jobban rá a kezem. Nem akarok én IDE háborútIsten ment.
De lehet holnap NetBeans-sel megyek, lehet sokkal több dolog van benne PHP esetén, mint az Eclipse-ben. (meg nem jön rosszul, ha több fejlesztő eszközben otthon van az ember... láttam már állás hirdetéseken megnevezve a fejlesztő eszközöket) -
Sk8erPeter
nagyúr
válasz
PazsitZ #8065 üzenetére
Ez a PHP-vel utólagosan eltávolítós módszer szerintem csak akkori végső megoldás, ha Te nem férsz hozzá a beolvasandó fájlokhoz, és annak eleve el van cseszerintve a karakterkódolása.
#8066 Lacces: a preg_replace-es megoldást csak akkor használd, ha nagyon muszáj.
"Notepad++ -ot már akartam, de linuxra nem jön fel a Wine nélkül. Keresek egy linuxos megfelelőt."
Hasonlóan alacsony erőforrásigénnyel rendelkező, funkciógazdag szövegszerkesztőt én valahogy nem találtam Linuxra, meg mindegyiknek megvolt a maga hülyesége vagy hiányossága (Notepad++-hoz képest, ami elég jól bővíthető pluginekkel is), de most nincs kedvem egyenként felsorolni, mik voltak azok; kényelmi és egyéb szempontok is szólnak részemről a Notepad++ mellett - Wine-nal kicsit nyakatekert megoldásnak tűnik, de én sokszor Linuxon akkor is inkább a Notepad++-t használtam, pont így.
Vagy ha komplett IDE-t akartam, amire a kis erőforrásigény kevésbé jellemző, akkor NetBeans-t használtam (ahhoz már nem kell Wine). -
Lacces
őstag
válasz
PazsitZ #8065 üzenetére
Köszönöm szépen mindenkinek a választ.
BOM kódolás... mik vannak. Látom még sokat kell tanulnom
Notepad++ -ot már akartam, de linuxra nem jön fel a Wine nélkül. Keresek egy linuxos megfelelőt.Ez preg_replace() megoldás nagyon tetszik. Meg köszi a wikipédiás linket is, így értem, hogy mi alapján lett a reg kifejezés felépítve is. (táblázatból látszott nekem).
Ez be is vált -
Sk8erPeter
nagyúr
Szerintem rossz a fájlod (vagy fájljaid) karakterkódolása.
Rakd fel a Notepad++-t, nyisd meg a fájljaidat, és az "Encoding" menüpontban menj rá, hogy "Convert to UTF-8 without BOM". Ennek megfelelően a meta tagekben is legyen UTF-8 karakterkódolás.
Meg nyomathatsz egy ilyen headert a PHP-fájljaid elején:
header('Content-Type: text/html; charset=utf-8');Szerk.: Athlon64+ 16 másodperccel előbb írt.
(#8057) Retekegér: ja, szerkesztettem, mert eszembe jutott, mi van, ha az UW kicsit elmaradt a fejlődésben, és még mindig csak PHP 4 van fent... Mondjuk azért remélem nem.
-
Lacces
őstag
Jövők mesterek
.
PHP kód:
readfile('/var/www/Tutorial/JapanJourneyBlog/private/text.txt')text.txt tartalma:
This is being read from a text file in the private folder.A weblapon viszont ez jelenik meg:
ďťżThis is being read from a text file in the private folder.Bekerül az a d'tz oda valahogy, és nem tudom miért.
Localhoston vagyok, Ubuntu 11.10, Eclipse IDE. - ha ez segít.
Nézegettem én itt a php online referencia gyűjteményét de ez nekem új, meg nem találtam meg pontosan, mivel nem is igazán tudom, hogy mit keresek...
A file_get_contents() függvényes kiírás esetén is, ugyanazt csinálja.
Másik kérdés:
Localhost-on vagyok, és próbáltam volna a Captcha-t is, az localhost-on nem működik? Csak hostingolás esetén?
(megkaptam a public és private key-t de ezek ellenére sem működött, url-nek meg a localhost-ot) Ez annyira nem sürgős, most úgy is itt gépen akarom. Majd az atw.hu-ra felakarom lőni a weblapot később. És akkor majd úgy is előfog akkor kerülni a téma. -
PazsitZ
addikt
válasz
Siriusb #8059 üzenetére
Gyakorláshoz persze, de mivel eddig nem ezt tette, gondoltam, publicban használni is akarja majd, és nem otthonról hosztingolni.
localba meg WAMP, XAMP, linux alatt meg szvsz érdemesebb külön felpakolgatni ezen cuccokat.(#8060) Retekegér: tudtommal igen. Jah mMeg létezik még egy ilyen forma: http://neved.atw.hu/index.php - http://users.atw.hu/neved/index.php
-
Retekegér
MODERÁTOR
-
Retekegér
MODERÁTOR
válasz
Sk8erPeter #8056 üzenetére
Az ultraweb ezek szerint nem támogatja. Mindegy, utánajárok a paraméterezéseknek és megpróbálom átírni a php fájlom.
Szerk.: közben látom szerkeszettél.
Van valami tipped esetleg, hogy hol lehetne gyakorolni 4-es verzió felett?Köszi a segítséget!
-
Sk8erPeter
nagyúr
válasz
Retekegér #8055 üzenetére
Egyéni preferenciáktól, és attól, hogy a szerveren egyáltalán fent van-e és engedélyezve van-e (php.ini-ben) a MySQLi-kiterjesztés. Persze PHP 4-es verziójában még egyáltalán nem fogod tudni használni, mivel ott még nincs, de aki manapság 4-es PHP-t használ...az valahol leragadt az őskorban.
Egyébként ha választani kell és lehet, érdemes inkább a MySQLi-kiterjesztést használni a klasszikus MySQL-kiterjesztés helyett.
-
Retekegér
MODERÁTOR
válasz
DeltaPower #8054 üzenetére
Ahhá, értem!
Egyébként a könyv huncut módon megjegyezte, hogy az általad javasolt paraméterezés is helyes, de bővebb magyarázattal nem szolgált.
Egyébként ez mitől függ, hogy mysqli-t vagy szimpla mysql-t használunk? A verziószámtól?
-
DeltaPower
addikt
válasz
Retekegér #8053 üzenetére
http://hu.php.net/manual/en/function.mysql-connect.php
http://hu.php.net/manual/en/mysqli.construct.phpmysql_connect()-nek más a paraméterlistája, mint a mysqli_connect()-nek
így próbáld:
$dbc = mysql_connect('sql4.ultraweb.hu', 'felhasználó', 'jelszó');
mysql_select_db('adatbázis', $dbc);szerk: mysql_query()-nek és mysqli_query()-nek is más a paraméterlistája, nem elég csak a függvényneveket kicserélni.
-
Retekegér
MODERÁTOR
Hali!
Most kezdtem el hobbiból a PHP&MySQL párossal foglalkozni. Az ultraweben tesztelgetem a kódokat, most azonban elakadtam. Van egy form, ami bekéri az adatokat, amiket aztán szeretnék egy adattömben tárolni php segítségével. Íme:
<html>
<head>
<title>Alien Abduction Report</title>
</head>
<body>
<?php
$first_name = $_POST['firstname'];
$last_name = $_POST['lastname'];
$when_it_happened = $_POST['whenithappened'];
$how_long = $_POST['howlong'];
$how_many = $_POST['howmany'];
$what_they_did = $POST_['whattheydid'];
$alien_description = $_POST['aliendescription'];
$fang_spotted = $_POST['fangspotted'];
$email = $_POST['email'];
$other = $_POST['other'];
$dbc = mysqli_connect('sql4.ultraweb.hu', 'felhasználó', 'jelszó', 'adatbázis')
or die('Error connecting to MySQL server');
$query = "INSERT INTO aliens_abduction (first_name, last_name, when_it_happened,".
"how_long, how_many, alien_description, what_they_did, fang_spotted, other, email)".
"VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many',".
"'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')";
$result = mysqli_query($dbc, $query)
or die('Error querying database');
mysqli_close($dbc);
echo 'Thanks for submitting the form. <br />';
echo 'You were abducted ' .$when_it_happened;
echo ' and were gone for ' .$how_long. '<br />';
echo 'Number of aliens you have seen: '.$how_many. '<br />';
echo 'The aliens did this: ' .$what_they_did. '<br />';
echo 'Description about them: ' .$alien_description. '<br />';
echo 'Was Fang there? ' .$fang_spotted. '<br />';
echo 'Other comments: '.$other. '<br />';
echo 'Your e-mail address is: ' .$email;
?>
</body>
</html>Ilyen hibaüzit kapok:
Fatal error: Call to undefined function: mysqli_connect() in /mnt/ultraweb/./../....../....../report.php on line 18
Ha átírom a mysqli-t szimpla mysql-re, akkor ez lesz az üzenet:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /mnt/ultraweb/./../....../....../report.php on line 26
Error querying databaseTudna-e segíteni valaki, hogy megtaláljam a hibát.
Előre is köszi!
-
Sk8erPeter
nagyúr
válasz
PazsitZ #8050 üzenetére
Amit most mutattál, az más, mint amiről én beszéltem! Abban a példakódban, amit Lacces mutatott, ott egy stringbe úgy erőszakoltak bele egy változót, hogy bohóckodtak a kapcsos zárójelekkel, amikor totál felesleges, lehetne átlátható módon konkatenálni is egy másik stringet (az általad mutatott példakódban Te meg épp ezt csináltad, jól), és akkor nincs belőle kavarodás. De szerintem korábban is pont ezt írtam, csak más szavakkal.
-
Lacces
őstag
Köszönöm szépen mindenkinek a hsz-ket. Részletes volt, felfogtam. Meg a jó tanácsokat is köszönöm!
-
PazsitZ
addikt
Erről eszembe jutott, hogy nekem volt régen ilyen próbálkozásom az sql result gyors ki-extract-olására függvényből global változóként. Persze nem szép. Ma már nem is használom/használnék ilyet, mármint global változót.
(#8038) Lacces: Ennek nincs köze a mutatókhoz. A miértre a magyarázat annyi, hogy ez egy script nyelv.
$fetchResult = mysql_fetch_assoc($localpSQLResult);
if ($fetchResult){
foreach($fetchResult as $var_name => $var_value)
{
$var_name = "q_$var_name";
global $$var_name;
$localGlobalVarsArr[] = $var_name;
$$var_name = $var_value;
}
return true;
}
Így global változóként létrehoztam az sql eredményét egy q_ (query) prefix-es változóként.
De a neveket le is tároltam, hogy egy fajta garbage collect-ként üríteni tudjam őket.
Fetch esetén ugye mindig felülíródott a változó tartalma, következő querynél ez a gc opció default lefutott, de szükség esetén letiltható volt.(#8041) Sk8erPeter : Alapvetően szerintem nem ördögtől való dolog ez, persze azért nem kell túlzásba vinni.
Én pl. Factory pattern esetén szoktam használni.Bár itt nem változóként, használod fel a változóban tárolt sztringet, hanem osztálynévként, de a logika hasonló.
Definiálsz sztring konstans értéket a lehetséges osztályok neveivel, majd azáltal pédányosítod a megfelelő osztályt./**
*
* @param const $SQLLayerType SQLLayer constant
* @param DBObj $db
*/
public function __construct($SQLLayerType=null, DBObj $db=null) {
$list = array(SQLLayer::SELECT, SQLLayer::INSERT, SQLLayer::UPDATE, SQLLayer::REPLACE, SQLLayer::DELETE);
if(is_null($SQLLayerType) || !in_array($SQLLayerType, $list)){
$this->SQLLayerType = SQLLayer::SELECT;
}
else $this->SQLLayerType = $SQLLayerType;
$Class = "SQL" . ucfirst($this->SQLLayerType);
$this->SQLObj = new $Class($this->SQLLayerType, $db);
if(!is_null($db)) $this->SQLObj->table($db->getTableName());
} -
Sk8erPeter
nagyúr
"Főleg, hogy jobb is a konkatenálás, azt a szebb példát, annak külön örülök
Így van egy Java feelingje az egésznek"
Attól lesz Java feelingje, hogy van benne egy konkatenálás?Hmm.
Ja, assign - hozzárendeli egy $temp, vagyis átmeneti változóhoz a $_POST tömb aktuális értékét. Itt a foreach ciklusban ugyanis bejár egy tömböt, vizsgálja a tömb értékeit. De gondolom ezt nem kell magyaráznom, ha csináltál már ilyet Java-ban.
"az expected tömbben található értékek alapján, létrehoz változókat"
Na, akkor elölről. Az első if-nél azt vizsgálja, a $_POST aktuális tömbindexének értéke ($temp-ben van most) nem üres-e és szerepel-e a $required tömbben. Ha a két feltétel teljesül, akkor valamit mondjuk nem töltöttél ki az űrlapon, berakhatjuk a $missing tömbbe, jelezvén, hogy ez a kulcs hiányzik mondjuk, pampogunk a júzernek, hogy töltse már ki legyen szíves az adott mezőt.
Egyébként ha a $temp nem üres, az adott kulcs az $expected tömbben van, (pl. kitöltötte az elvárt mezőt), akkor hozzuk létre az azonos nevű változót (pl. $name)."Ha létrehozza is őket, akkor ezek sima egyszerű változók"
Azok milyenek?Gondolom azt a szót keresed, hogy "lokális" változó.
Attól függ. Ha ez az egész pl. egy függvényben szerepel, akkor csupán lokális scope-ja lesz, a függvényen belül. De lehet akár globális is, ha mondjuk ez egy fájlban "kívül" szerepel ez az egész Onnantól a függvények számára a global kulcsszóval ezek a változók elérhetők, amennyiben nem szüntetted meg azóta pl. unsettel. -
Lacces
őstag
válasz
Sk8erPeter #8041 üzenetére
Aham, rendben köszönöm! és neked is Athlon64+ - amúgy nekem pont ez a kedvenc proci típusom
Főleg, hogy jobb is a konkatenálás, azt a szebb példát, annak külön örülök
Így van egy Java feelingje az egésznekÉs az tényleg, szebb, olvashatóbb is.
Mindenkinek: Értelmezéshez kérnék segítséget, még
$expected = array('name', ' email' , 'comments') ;
<?php
foreach ($_POST as $key => $value) {
// assign to temporary variable and strip whitespace if not an array
$temp = is_array($value) ? $value : trim($value);
// if empty and required, add to $missing array
if (empty($temp) && in_array($key, $required)) {
$missing[] = $key;
} elseif (in_array($key, $expected)) {
// otherwise, assign to a variable of the same name as $key
${$key} = $temp;
}
}
Az elseif ágban lévő utasításra gondolok.
${$key} = $temp;
Én ezt az utasítást úgy értelmezem, hogy az expected tömbben található értékek alapján, létrehoz változókat. (Néztem szótárban az assign szó jelentéseit, de max a hozzárendelés, na de mihez. Még nem találkoztam ilyen sokszor angol nyelvű könyvben ezzel a szóval)
A következőket: $name, $email és $comments - amelyeknek értéke is ad.
Ha létrehozza is őket, akkor ezek sima egyszerű változók, vagy globális változók is? $_POST['name']-re gondolok konkrétan (az assign to miatt erre is gondolok már...) -
Peter Kiss
őstag
válasz
Sk8erPeter #8045 üzenetére
Ez az egy ilyen kuriózum van benne, ha jól emlékszem.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #8044 üzenetére
Hát ez kellemetlen.
Ettől függetlenül nem értem, minek egy sorba nyomorítani az egészet. De félre ne értsd, nem fikázni akarom a kódolási szokásaidat.Ízlések és pofonok, csak nekem a hajam kettéáll a bogozandó kódoktól.
(főleg, hogy feleslegesnek tartom a túlzott rövidítéseket)
-
Peter Kiss
őstag
válasz
Sk8erPeter #8043 üzenetére
Saját ORM.
-
Sk8erPeter
nagyúr
válasz
Peter Kiss #8042 üzenetére
Ez minek a kódjából származik? Gondolom valami nagyobb keretrendszerszerűség. Persze ezt is szét lehetne bontani, hogy ne kelljen bogozgatni későbbi kódmódosításkor, de biztos az rengeteget gyorsít a kódon, ha egy sorba tömörítünk mindent.
-
Sk8erPeter
nagyúr
Szerintem meg itt köze nincs a mutatókhoz a dolognak (hogy azt akarná "visszahozni").
Mindenesetre én úgy gondolom, hogy ezzel csak olyan szinten érdemes foglalkozni, hogy tudd, ilyen szintaktika is van, értsd is meg, ha valakinek a kódjában ezt látod, de Te lehetőleg kerüld el messzire. Tök feleslegesen teszi nehezen olvashatóvá a kódodat, nem tudok olyan esetről, ahol ezt ne lehetne kiváltani másik, szebb, átláthatóbb módszerrel. Pl. egy stringnél tök felesleges beleerőszakolni ilyen módon egy összetettebb változót, akkor már inkább válassz alternatívákat.
Pl. konkatenáld:
vegyük az általad említett példát átalakítva:
eredeti:
echo " {$startYear}–{$thisYear} ";
helyette szebb:
echo $startYear . '-' . $thisYear . ' ';
Nem kell szenvedni vele, hol is ér véget a kapcsos zárójel, plusz egy fejlesztőkörnyezetben jobban láthatóan ki van emelve a változónév (persze, felismeri az IDE, ezt is kiemeli, de amennyiben egyedi módon nem állítottad át valami nagyon elütő színre, akkor a stringen belül, a string default színével csupán félkövéríti, vagy hasonló, tehát akkor is nehezebben észrevehető egy ilyen változónév), ez is segíti az átláthatóságot.
A printf, sprintf-hez hasonló behelyettesítős módszerek is ezerszer szebbek ennél a kapcsos zárójeles bohóckodásnál. -
Lacces
őstag
válasz
DeltaPower #8039 üzenetére
Hm... Nekem nagyon gyanús, hogy valójában a mutatókat próbálja visszahozni a C/C++ nyelvből.
Köszönöm a segítséget!
-
DeltaPower
addikt
Lényegében az történik, amit írtál, így működnek a "változó változók".
$valami='akarmi';
$elso='valami';
// ez a két sor ugyanazt jelenti
echo $valami; // 'valami' nevű változót írja ki
echo ${$elso}; // a $elso tartalmával megegyező nevű változót írja kiA { }-ek el is hagyhatók, csak abban az esetben szükséges, ha enélkül nem egyértelmű a megadás (pl. $$tomb[0] esetén, nem mindegy, hogy a $$tomb nevű tömb 0-ik eleme, vagy a $tomb[0] tartalmával egyező nevű változó)
Az általad hozott példa, a {${alma}} viszont nem biztos, hogy működik, mivel az 'alma' konstans tartalmának megfelelő nevű változót jelenti, konstans használata pedig nem tudom, hogy megengedett-e ilyen kifejezésben.
-
Lacces
őstag
válasz
Peter Kiss #8037 üzenetére
Aham, nagyjából értem, ez valahogy úgy akar működni, mint a C/C++-ban vagy C#/Java, kiíratásnál egyfajta argumentum, paramétert írok bele a kiíró függvényben.
A másik kérdésem, egyébként pont később lett volna, de akkor most felteszem, más esetleg, nagyon gyerekes leírást, magyarázatot tudsz adni a Variables Variable-re?
Nagyon nehezen tudom néha felfogni
Az első linken lévő, az okés, mert egyszerű példa. De már itt, belegabalyodók:
echo "This is the value of the var named by the return value of \$object->getName(): {${$object->getName()}}";Vagyis ekkor az $object->getName() függvény által visszad egy értéket, pl. alma
és akkor {${alma}} lesz a háttérben, és megkeres egy $alma nevű változót, és annak a tartalmát írja ki?Nekem ez nagyon új ez a felfogás.
-
Peter Kiss
őstag
-
Lacces
őstag
Sziasztok!
PHP egy kis sajátosságához kéne értelmezni, fejtájgítást kérnék az elit programozóktól
Adott ez a kód:
echo " {$startYear}–{$thisYear} ";
Az lenne a kérdésem, hogy itt "{" és "}" zárójelek, miért kellenek? Én úgy vettem észre, hogy ezek nélkül is működik.Azt hiszem már sejtem, gondolom ez csak az olvashatóságot szolgálja, más eseteknél is teszteltem, nem láttam különbséget, hogy most használok-e kapcsos zárójeleket, vagy sem.
Teljes kód:
<?php
$startYear=2006;
$thisYear = date('Y');
if ($startYear == $thisYear) {
echo $startYear;
}else{
echo " {$startYear}–{$thisYear} ";
}
?> -
válasz
Sk8erPeter #8034 üzenetére
Esetleg alternatíva még: [link]
-
#95092224
törölt tag
Szerintetek ezt hogyan kell érteni?
http://img401.imageshack.us/img401/6544/nonamejp.jpg
(link: 72 kb jpeg) -
CSorBA
őstag
válasz
Tele von Zsinór #8029 üzenetére
Én is kb hasonló cipőben járhatok. Legtöbb általam készített oldalnál eléggé egyben van a sablon és a funkció, és mivel a dizájváltás általában eddig sosem annyiból állt, hogy tisztán csak kinézetet cserélt a cég (hanem rengeteg funkció került adott esetben be és ki) így kb én is annyit csináltam mint te:
"Nagyon sokáig tiszta php-t használtam a templateimben, kis odafigyeléssel: nem nyúlok már adatbázishoz (ami kell, azt megkaptam a controller rétegtől), illetve vezérlési szerkezetekben az alternatív szintaktikát használtam."
Nem tudom én sem igazából eldönteni, mivel eddig egyszemélyes fejlesztőként dolgoztam kizárólag, így egyelőre én is az első tábort gyarapítom, úgyis csak én foglalkozok az egésszel, és megfelelően kommentezve, tördelve, jegyzetelve, értelmesen csinálva eddig még mindent átláttam. Van egy cég (akikkel elég régóta dolgozok), ami eddig négy átalakuláson ment át, és mindig teljesen új honlap készült
, szóval eddig teljesen tudtam hanyagolni ezt a template témát, de persze ez leginkább azért van, mert nem volt olyan munka, ahol szükség lett volna rá.
-
Tele von Zsinór
őstag
válasz
wolandino #8027 üzenetére
Az, hogy az html, js és css fileokat érdemes különválasztani, nem kérdés.
Template-nyelv tekintetében nagyon megoszlanak a vélemények, az egyik oldal (jogosan) arra hivatkozik, hogy tkp. a php maga is egy template-motor, a másik oldal viszont nagyon okos kibővítéseket tud, és valóban nagyon tudja egyszerűsíteni a templateket (na meg a designernek sem kell megtanulni php-ul).
Kipróbáltam a smartyt (és nem többesszám, mint nálad), nem győzött meg.
Nagyon sokáig tiszta php-t használtam a templateimben, kis odafigyeléssel: nem nyúlok már adatbázishoz (ami kell, azt megkaptam a controller rétegtől), illetve vezérlési szerkezetekben az alternatív szintaktikát használtam.
Mostanában fedezem fel magamnak a twiget, nagyon tetszik, még meglátjuk, hosszútávon beválik-e. Persze sokat segít, hogy beépített támogatása van az általam használt keretrendszerben.
-
wolandino
tag
válasz
Sk8erPeter #8022 üzenetére
Én viszont még nem ismertem, átlapoztam, és nagyon ász, ha elolvastam, lehet még fizetek is érte
Köszönöm! -
wolandino
tag
A Codeigniter tartalmaz többek között egy HTML helpert.
illetve segítség lehet még a HTML Table Classt.Amúgy szerintem elég érthetően leírtam mit szeretnék
Szeretnék olvasható, strukturált kódokat írni, csak még nem tudom mi lenne célravezetőbb.
Nem feltétlenül szeretnék használni "template engine"-t, de ha valaki meggyőz róla, hogy ez visz el a nirvánába, akkor természetesen fogok. Úgy érzem a kódjaim olvashatóbbak lennének, ha csak minimálisan keverednének bennük az egyes programozási platformok.
Pl ha vannak jó PHP megoldások a HTML minimalizálásához, akkor jó, vagy bármi egyéb amire nem gondoltam, akár teljesen banális dolgok is, mint pl. néhány irányvonal vagy programozási stílus bármiA smartykról pl. folyamatosan olvasom, hogy milyen jók, de még nem igazán sikerült átéreznem, hogy mitől is, a példák amiket találtam is inkább arról szóltak, hogy milyen jó sablonokat lehet velük készíteni-ami persze jó-de nem feltétlenül éreztem átláthatóbbnak a dolgokat ettől. És mindig csak ilyen "Helló világ" szintű példákat találtam, pedig egy komolyabb feladatnál talán könnyebben meglátnám a dolog nagyszerűségét
De mondom, nem a smarty a lényeg, hanem a strukturált, karbantartható, olvasható, továbbfejleszthető nézetek. Ha smarty a megoldás, akkor az, ha bármi más, akkor bármi más -
Lacces
őstag
válasz
Sk8erPeter #8022 üzenetére
Hűha, bővült ám rendesen. Régi volt meg tőle, ami nem más volt, mint a www3schools-on található hivatalos doksinak a magyarosítása
Én most jelenleg ezt nézem át. Nagyon jó, tetszik. Gyakorlatias. Nekem eddig bejön. Igaz még az elején vagyok, és a felületen vannak főleg php kódok (UI - aztszem így hívják ezt)
Php solutions könyvDe amit küldtél azt ismét átfogom olvasni! KÖszönöm
-
válasz
wolandino #8024 üzenetére
Szia! Én nem nagyon értem mit szeretnél. Ha jól tudom a Codeigniter nem tartalmaz külön "template engine" -t. Ez esetben javaslom a Smarty használatát, hogy el tudd különíteni a nézeteket. Természetesen a Controllerel küldöd ki a nézetet, de a nézetben már nem lesz semmi php, max változó név.
-
wolandino
tag
Sziasztok!
Codeigniter(MVC) keretrendszert használok és kezdetben sok mindenre nem tudtam mire jó, örültem, ha úgy működött az oldal, ahogy szerettem volna és nem foglalkoztam mással
Most jutottam el odáig, hogy szeretném, ha a kódjaim minél egyszerűbbek és átláthatóbbak lennének a Nézetekben is.
Egyelőre még kevertem van bennük HTML, PHP, Javascript( JQuery,JQuery UI, Highcharts) kód. Szeretném ha a HTML-t felváltaná a PHP, ehhez a keretrendszernek vannak osztályai és segédei. Illetve azt hiszem a smartykkal is el lehet érni valami hasonlót.
A JavaScript kódokat is lehet, hogy jobb lenne valahogy külön fájlokban tárolni.
Szeretnék strukturált, átlátható kódokat írni, és már van is valamilyen fejlődés a kezdeti állapothoz képest, de még nagyon az elején járok.
Jól jönne pár tapasztalt róka véleménye
Köszönettel,
W.Senki?
-
Lacces
őstag
válasz
Sk8erPeter #8022 üzenetére
Igen, ezt ismerem, ezt már kivégeztem
, de azért köszönöm.
-
Lacces
őstag
válasz
Sk8erPeter #8018 üzenetére
Igen, igazad van, meg érzem is magamon ezt a sok szívást rajta, először szerintem megnézek egy másik könyvet, amely tágabban belemegy a php és mysql-be. De mégis kezdőknek írt. Amit te is írtál.
A főprofilom fejlesztesnél, remélem nem php lesz
. Csak hát kell a munka, és azt mondják gyorsabban lehet tanulni ezt a nyelvet és helyileg lenne is php-s meló (webáruház fejlesztő), .net/java nincs (meg még azt magamtól is kéne tanulni), és annyi pénzem sincs, hogy pesten albiba menjek... Egyrészt emiatt gondoltam, hogy az alapoktól megismerni... csak egyszer átnézni, hogy milyen ez. De max akkor egy kis rövid komplex weboldalra gondoltam.
Visszont hobbi szinten akarok majd egy ilyen fél facebookos oldalt, meg hirdető oldalt létrehozni és üzemeltetni. Ezért is gonolkoztam a webshopban, mert az elég komplex hozzá. Bár lehet az már túlkomplex is lenne.
Előbb akkor átnézem azokat, amiket te is írtál
Aztán majd utána jövők, hogy merre tovább. -
Sk8erPeter
nagyúr
Most kezdőként komolyan webáruház fejlesztésével akarsz kezdeni? Szerintem tegyél le róla. Nem azért, mert képtelen lennél megcsinálni, hanem mert olyan szinten komplex, és elképesztő időelkúró tevékenység, de legfőképp azért, mert nagyon jó webshopmotorok vannak készen, amiket folyamatosan foltozgatnak az esetleges felfedezett biztonsági vagy egyéb hibák miatt. Így egyre nehezebb feltörni és megborítani őket.
Ha PHP-t szeretnél tanulni, ne webshoppal kezdd, hanem előbb tanulgasd meg, hogy kell formokat validálni, feldolgozni, adatbázisba tölteni az adatait, onnan lekérni a feltöltött adatokat, aztán jöhetnek a komplikáltabb dolgok is.
Persze ahogy érzed, de én a helyedben tuti, hogy a meglévő igen széles ingyenes webshop-kínálat ismeretében NEM épp webshop kódolásával cseszném el az időt.
De ez igaz szerintem haladókra is, ha nem muszáj, akkor nem elejétől kezdve kellene megírni egy webshopmotort, hanem inkább továbbfejleszteni egy meglévőt. -
Lacces
őstag
válasz
Tele von Zsinór #8016 üzenetére
Köszönöm, azért segítséget.
Az lenne a kérdésem, tudsz kezdőknek ajánlani esetleg egy jó weboldalt, ahonnan meglehetne tanulni egy komplett webáruház elkészítését?
Ezt a könyvet unom, mindig más hibákat dob mint ami benne van, vagy csak itt szerencsétlenkedek vele...
-
Tele von Zsinór
őstag
-
Lacces
őstag
Köszönöm az eddigi help-et, jó volt a php.ini-ben egy kicsit lenni, de tényleg, átnézegettem őket.
Most észrevettem egy újabb furcsaságot. (A könyv példája alapján egy saját error osztályom van ami kiír amit akar)
Gondoltam egyet, és az egész projekt mappámat, másoltam, és átneveztem, de tényleg csak annyi, hogy polobolt helyet egy másik névre.
Na de viszont akkor kidobott nekem egy hibát:
filemtime(): stat failed for /var/www/tshirtshop/presentation/templates_c/1f28fb1f88fa6e0e9ca9af2d5bb26df5592c8861.file.store_front.tpl.phpCsak azért nézek, mert én tényleg csak másoltam. + a jogokat is kiadtam a templates_c mappára: chmod a+w, ami az eredeti poloboltnál is volt.
Eredeti mappára is:
sudo chmod a+w /var/www/polobolt/presentation/templates_c
Másolt mappára is:
sudo chmod a+w /var/www/tshirtshop/presentation/templates_cMegnéztem grafikusan a jogokat, és azt láttam, hogy a templates_c mappában lévő 2 fájlra lévő jogok, különböznek a 2 projekt esetén.
(Ezeket a fájlokat nem én hoztam létre, hanem automatán jöttek létre)
a polobolt esetén, ami működik, ott a jogosultságok esetén a tulajdonos és csoport név: www-data!
Még amit én másoltam, ott meg én vagyok a tulajdonos és csoport is... Lehet ez itt a gond? -
Köszi!
De én olyanra gondolok, ami a Steam esetében van webes felületről. A történet lényege, hogy ha bejelentkezel, és a böngésződ nincs az adatbázisukban, küldenek egy emailt egy megerősítő kóddal, aminek a megadása után tudok operálni.
mobal,
-
Tele von Zsinór
őstag
Igen. Olvasd el például ezt a cikket: Using SSL Client Certificates with PHP
-
wolandino
tag
Nem vagyok benne biztos, de ez azt hiszem hasznos lehet:
[conditional-css] -
Sziasztok!
Van arra megoldás vagy módszer, hogy Böngészőt authentikáljak?
-
wolandino
tag
Sziasztok!
Codeigniter(MVC) keretrendszert használok és kezdetben sok mindenre nem tudtam mire jó, örültem, ha úgy működött az oldal, ahogy szerettem volna és nem foglalkoztam mással
Most jutottam el odáig, hogy szeretném, ha a kódjaim minél egyszerűbbek és átláthatóbbak lennének a Nézetekben is.
Egyelőre még kevertem van bennük HTML, PHP, Javascript( JQuery,JQuery UI, Highcharts) kód. Szeretném ha a HTML-t felváltaná a PHP, ehhez a keretrendszernek vannak osztályai és segédei. Illetve azt hiszem a smartykkal is el lehet érni valami hasonlót.
A JavaScript kódokat is lehet, hogy jobb lenne valahogy külön fájlokban tárolni.
Szeretnék strukturált, átlátható kódokat írni, és már van is valamilyen fejlődés a kezdeti állapothoz képest, de még nagyon az elején járok.
Jól jönne pár tapasztalt róka véleményeKöszönettel,
W. -
Tele von Zsinór
őstag
Egyrészt amit a kollega mondott az error_reporting beállításáról (meg a notice-ok irtásáról), másrészt mégegy csomagtipp: php5-xdebug. Felrakod, apache-t újraindítod, más dolgod nincs is (azért phpinfo()-ban ellenőrizheted
).
Az xdebug egy borzasztóan jó eszköz fejlesztés közben. Az egyik legalapabb dolog, hogy az el nem kapott exceptionök nem egy egysoros valamik lesznek, hanem egy szép, valamennyire formázott táblázat, amiben ott a stack trace is. Másrészt a var_dump kimenete is sokkal olvashatóbb lesz. De a kedvencem a debugger - én netbeans-zel használom, és működik, amit más (c++, delphi, c#, akármi) nyelvek IDE-jében megszokhattál: step-by-step debug, watch-ek és egyéb finomságok.
-
Sk8erPeter
nagyúr
Ennek semmi köze a XAMPP-hoz! Legfeljebb annyiban, hogy ott alapból a php.ini-ben nem voltak elnyomva a hibajelzések.
De ez nem "debugger", ne keverjük a fogalmakat. Ez csak simán kiírja a hibaüzeneteket.
Kotord elő a php.ini-t, és keresd meg az error_reporting részt.
Nézd meg, hogy jelenleg mi van beállítva.
Én ezt a beállítást javaslom fejlesztésre:
error_reporting = E_ALL | E_STRICT
Ez a "legszigorúbb" hibajelzés, mindent kiír.
Egy igényes programozó megszünteti a hibajelzések okát, nem pedig láthatatlanná teszi őket.
Engem személy szerint kiráz a hideg attól a mentalitástól, hogy "ugyan már, ki nem szarja le a notice-okat, nyomjuk el, nem kell annak látszania, szedjük ki az error_reportingból, azt kész, meg van oldva". Na persze, majd amikor azzal fog a fejlesztő időt elkúrni, hogy rájöjjön, vajon miért nem működik valami (pl. tömbindexelésnél elgépelés miatt), akkor változtat a hozzáállásán.(vagy nem, az a menthetetlen eset)
Aztán keresd meg a display_errors-t:
display_errors = On
Ha még alaposabban szeretnéd:
display_startup_errors = OnViszont fontos hozzátenni, hogy ezek a hibajelzési beállítások csak a fejlesztési fázisra vonatkoznak. Utána szigorúan tilos kiíratni ezeket a hibákat! Többek közt az is egy sebezhetőségi pont. Az éles rendszeren kezeld a hibákat megfelelően, csakis belső naplózást használj a hibajelzések tárolására, ne írass ki belőlük egyet sem.
-
Lacces
őstag
Na még annyit, hogy volt a Xampp fent, és most alias a natur Apache+PHP+Mysql+phpmyadmin.
Amikor a Xampp volt fent, és volt valami hiba, akkor volt egy debugger(talán?), ami jelezte, hogy mit hogyan írjak át. Hol a hiba stb. Lásd: Egy hsz-em
Na most ebben az újabb natur verzióban nincs jelen ilyesmi. És csak lestem, hogy hoppá semmit sem jelenít meg. Semmilyen hibát nem írt ki, hogy miért nem jeleníti meg az oldalamt, aztán a fentebbi hsz-m jutott eszembe, hogy jelzett hibát Xampp alatt az oldal. És akkor most aszerint átírtam a fájlokat, és hoppá, már működik is.
De ugye itt semmi sem jelezte ki, hogy mi baj.
(Könyv forráskódja és javításokat jelölő doksijában, sem volt ez a hiba felsorolva, javítva)Értitek
. Kell egy debugger, ami jelzi, hogy na-na, valami baj van
(mint Xamppnál), nem úgy mint most, hogy vagy működik az oldal, és mindent megjelenít, vagy némán csendben marad, és bedob egy üres oldalt.
-
Sk8erPeter
nagyúr
válasz
Siriusb #8003 üzenetére
Hát igen. Amúgy miután ezeken a fázisokon végigment az ember, még mindig könnyű hibát véteni a konfigfájlban, aztán nézni, hogy most mi van má' megint (persze kellő szopás után viszonylag gyorsan rájössz a hibaüzenetekből, de akkor is idő megy vele). Ezért volt nekem felüdülés, vagy inkább kellemes meglepetés az IIS admin-felülete (alapvetően eléggé ódzkodtam tőle, míg ki nem próbáltam). Összekattintgatod, és egyszerűen mennek az oldalaid.
Nem is igazán világos, normális grafikus felület miért nem készült még Apache-hoz - csak ilyen: [link], de próbáltam, még mindig elég silány, csak a konfigfájlt állítod, még mindig el lehet cseszni, és ettől kezdő nem kattintgatja össze az oldalt -, azért ennyire senki nem lehet konfigfájl-buzi.(na jó, de)
-
Siriusb
veterán
válasz
Sk8erPeter #8000 üzenetére
Egyetértek!
Amikor életemben először felraktam az apache-t, stb. virualhostokkal a gépemre, nem félórás munka volt, mire mindenki felsorakozott.
Viszont így tanul igazán a halandó... -
Lacces
őstag
válasz
Sk8erPeter #8000 üzenetére
De most legalább Istennek érzem magam
És neked is kösz
Új hozzászólás Aktív témák
Hirdetés
- HP ProDesk 600 G2 Mini PC (i5,16GB, 256GB+1TB, Win10) Csere/Beszámítás!
- iPhone 14 128GB Független Újszerű/1-3 hónap gar./Akku 85%/p4240
- ÚJJ !! 850.000 Ft helyett - M4 iPad Pro 13" 512 GB WIFI + Cellular - 90 Apple Garancia
- Apple Magic Keyboard iPad Pro 12,9" 2021 (6th Gen), fekete - HU / Apple Pencil 2
- Cooler Master ma824 stealth . D15 killer :D
- Konzol felvásárlás!! Playstation 5, Playstation 5 Pro
- BESZÁMÍTÁS! MSI B450M R5 3600X 16GB DDR4 512GB SSD GTX 1660 Ti 6GB FSP CMT240 Zalman 500W
- Apple iPad 8 32GB,Újszerű,Adatkábel,12 hónap garanciával
- Jogtiszta Microsoft Windows / Office / Stb.
- 124 - Lenovo Yoga Pro 7 (14IMH9) - Intel Core Ultra 9 185H, RTX 4060 (48 hónap garancia!)
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest