Hirdetés

2024. június 10., hétfő

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#13401) Speeedfire


Speeedfire
nagyúr

Még mindig PDO OCI kapcsolat. Adott egy tábla ~150 mezővel, a legtöbb varchar2(4000) és ha nyomok egy fetchAll()-t akkor a fenti hiba jön elő. Ezt nem lehet valahogy mellőzni, megnéztem és a legnagyobb mezőben ~500 karakter van.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13402) Peter Kiss válasza Speeedfire (#13399) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Az gáz azért.

(#13403) Sk8erPeter válasza don.racz (#13400) üzenetére


Sk8erPeter
nagyúr

Sok szerencsét hozzá, de azért ez itt nem így működik. Inkább úgy, hogy leírod szépen a komplett problémát, mutatsz példakódot, megmutatod, mire jutottál eddig, aztán megpróbálunk segíteni. De a fórum nem privát segítség-megoldásokra, meg egyéni Skype-olásokra való. Tiszteld mások szabadidejét is. :)

Sk8erPeter

(#13404) Sk8erPeter válasza Speeedfire (#13399) üzenetére


Sk8erPeter
nagyúr

Ebben a formában azért ez elég furcsa... Nem is tudod felülbírálni? Mert ez alapján olyan, mintha komolyabb hibákra nem dobhatnál egy szép felhasználóbarát hibaoldalt, hanem majd a Yii szépen megmondja, hogy itt aztán gáz van, de feltételezem, azért ezt megoldották valahogy, elég régi keretrendszerről van szó...

Sk8erPeter

(#13405) spammer


spammer
veterán

Elakadtam.

Ezzel megkapom minden txt fájlból a 3. sorba írt adatot:

$dir = "articles";
$files = array_reverse(glob($dir."*.txt"));

foreach ($files as $file) {

$open = file($file);
$line = $open[2];

echo $line . "<br>";

}

Például ezeket az adatokat kapom meg:

kék
zöld
sárga
piros
zöld

Hogyan tudom megadni, hogy csak azokat a fájlokat listázza, amiknek a 3. sorában ($line=$open[2]) az van, hogy "zöld" ? :F Hova és hogyan kellene erre feltételt írni?

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13406) Speeedfire válasza Sk8erPeter (#13404) üzenetére


Speeedfire
nagyúr

Nem tudom, nem igazán találtam rá ilyen megoldást, de lehet én keresem rossz helyen. Pedig az elvileg csak egy warning. Érdekes, hogy pl a PDO-ban sem tudom beállítani ezt a buffer értéket.
A warning kidobja, hogy le lesz vágva, ez még nem is lenne nagy gáz. De, hogy emiatt miért lesz error 500!?
Nem értem még egyelőre, remélem holnapra rájövök.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13407) DeltaPower válasza Speeedfire (#13406) üzenetére


DeltaPower
őstag

Ha jól értettem a google találatok közt olvasottakat, ez a "buffer" félrevezető. A problémát az okozza, hogy a single byte char adatot multibyte char adattá konvertálod/konvertálódik fetchAll-nál, akkor az eredeti bináris méreten túlcsordulhat, erre viszont buffer overflowot jelez. A yii pedig lehet hogy a buffer overflowot hackelési kísérletnek veszi és inkább elszáll 500-al, vagy ha valami security plugin van telepítve, az is ráugorhat.

"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser

(#13408) PiXeL90 válasza spammer (#13405) üzenetére


PiXeL90
csendes tag

Szia!

Az echo $line . "<br>"; sort tedd be egy ilyen if-be:

if($line == "zöld"){
echo $line . "<br>";
}

(#13409) spammer válasza PiXeL90 (#13408) üzenetére


spammer
veterán

Köszi, azóta már megoldottam, csak elfelejtettem beírni. Amúgy lehet, hogy rosszul fogalmaztam meg, mert nem csak egyszerűen szűrni akartam az eredményt (listát) egy If-fel, hanem ha az adott fájl adott sora = feltétel, akkor listázza a fájlokat és a kívánt tartalmukat. Kicsit bonyolult így, de a lényeg, hogy már megoldódott :)

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13410) Speeedfire válasza DeltaPower (#13407) üzenetére


Speeedfire
nagyúr

Én is hasonlókat láttam. Mivel varchar4000 a legtöbb, emiatt sokat magát az oci8 fájlt forgatták le ismét azzal a módosítással, hogy ezeket a ba varchar4000-reket levágják és nem csordul túl.
Az error kérdés még mindig érdekes, nem találtam rá eddig értelmes megoldást. Pedig biztos van valami amivel le tudom tiltani a yii error kezelését.

Mindenesetre ezt a dolgot rövidre zártam azzal a megoldással, hogy az excel-t az oracle generálja le nekem egy blob mezőbe amit kistream-elek magamnak. Így nem gond az 50-100k sor sem.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13411) DeltaPower válasza Speeedfire (#13410) üzenetére


DeltaPower
őstag

Az nem járható, hogy a forrást konvertálod utf-be?

"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser

(#13412) Speeedfire válasza DeltaPower (#13411) üzenetére


Speeedfire
nagyúr

Milyen forrásra gondolsz?

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13413) DeltaPower válasza Speeedfire (#13412) üzenetére


DeltaPower
őstag

Az adatbázist. Vagy az már utf-ben van?

[ Szerkesztve ]

"Moonshine Whiskey (70°, ízesítés nélküli) van. Fincsi" - Teebee - "De az kiírtaná az egész családomat..Akkor is ha csak én innék belőle.." - forintuser

(#13414) spammer


spammer
veterán

Ezzel a kóddal keresek text fájlban [link], a keresendő kifejezést egy input mező adja át (tehát $needle = $_POST['search'])

A problémám az, hogy case-sensitive a cucc, tehát be beírom, hogy "mogyoró", azt nem találja meg, de a "Mogyoró"-t igen (nagy kezdőbetűvel), mert úgy szerepel a text fájlban.

Hogyan tudnám a fentebb linkelt kódban megadni, hogy ne tegyen különbséget kis és nagybetű között?

strtolower($needle) nem jó, mert az ugye csak lowercase-re konvertálja a keresendő szót, de attól még a text fájlban ha nagy kezdőbetűs a szó, akkor nem találja meg. :(

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13415) Peter Kiss válasza spammer (#13414) üzenetére


Peter Kiss
senior tag
LOGOUT blog

stripos

(#13416) Speeedfire válasza DeltaPower (#13413) üzenetére


Speeedfire
nagyúr

Az adatbázis utf-8-ban van természetesen.

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13417) spammer válasza Peter Kiss (#13415) üzenetére


spammer
veterán

Köszi :C Azt hittem, valami bonyolultabb dolog lesz :D

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13418) Andoidtibi


Andoidtibi
csendes tag

Sziasztok szeretnék egy olyan kérdéssel hozzátok fordulni ami ebben a kódban rejlik
Ezt a Tizenöt tömb elemet szeretném úgy ki íratni <ul>-ben hogy 3 oszlop legyen és ötösével listázza
<?php
$elemek=array("Egy","Kettő","Három", "Négy" , "Öt" , "Hat" , "Hét" , "Nyolc" , "Kilenc" , "Tíz", "Alma" , "Dió" , "Mák" ,"Körte" , "Cseresznye");
sort( $elemek );

print '<table>';
for($c=0;$c<count($elemek);$c++){

print '
<ul>'.$elemek[$c].'</ul>
';
}
print'</table>';

?>

(#13419) DNReNTi válasza Andoidtibi (#13418) üzenetére


DNReNTi
őstag

Szia,
Én először eldönteném hogy táblázatba vagy listába akarom kiíratni.
Esetedben talán egyszerűbb a táblázat, viszont szebb megoldás listával, mely megjelenését nem a kiíratás hanem a css határozná meg. ;)

Megírom gyorsan a táblást. ;)

but without you, my life is incomplete, my days are absolutely gray

(#13420) DNReNTi válasza Andoidtibi (#13418) üzenetére


DNReNTi
őstag

Így nézne ki szerintem a legegyszerűbb táblás megoldás, természetesen ez most fixen 3 oszlop 5 sort jelenít meg, 15 elemmel. ;) Talán kiindulási alapnak jó lesz.

$elemek = array("Egy","Kettő","Három", "Négy" , "Öt" , "Hat" , "Hét" , "Nyolc" , "Kilenc" , "Tíz", "Alma" , "Dió" , "Mák" ,"Körte" , "Cseresznye");
sort($elemek);
$szamlalo = 0;

echo '<table>';
for ($i = 1; $i <= 5; $i++) {
echo '<tr>';
for ($j = 1; $j <= 3; $j++) {
echo '<td>'.$elemek[$szamlalo].'</td>';
$szamlalo++;
}
echo '</tr>';
}
echo '</table>';

but without you, my life is incomplete, my days are absolutely gray

(#13421) Sk8erPeter válasza Andoidtibi (#13418) üzenetére


Sk8erPeter
nagyúr

Amit most csinálsz:
egy <table> elembe 15-ször kiíratod egy <ul>-be az aktuális elemet.
Ez szintaktikai hiba (meg nem a feladatnak megfelelő): <table> elemen belül ezek lehetnek:
http://www.w3.org/TR/html-markup/table.html.
Tehát <table> után jöhet egy <caption>, <colgroup>, <thead>, <tbody> vagy <tfoot> elem, vagy esetleg egyből a <tr> (táblázat sora), ami pedig <td>-(ke)t (táblázat oszlopa) tartalmazhat.
De <ul> semmiképp sem következhet egyből. Ezenkívül az <ul> elemen belül csak <li> elemek szerepelhetnek.
Itt van egy egyszerű 3 oszlopos, 3 soros táblázat, a felső sor a fejléc:
http://jsfiddle.net/JH48Z/

amit Te szeretnél, annak a kimenete így néz ki szintaktikailag helyesen:
http://jsfiddle.net/JH48Z/1/
vagy <tbody> nélkül is jó:
http://jsfiddle.net/JH48Z/2/

Na, tehát ennek megfelelően kell kiíratnod, ez az első, amit végig kell gondolnod. Próbáld meg az összes lépést egyesével végiggondolni, akár papírra is leírhatod, ha úgy egyszerűbb (algoritmizálj).
Először ki kell íratni a <table> elemet (majd a végén, a tartalom bepakolása után le kell zárni). Aztán jön a <tr>, most csak egy sort szeretnél, tehát akkor ezt csak egyszer kell kiíratnod, majd ebbe kerül majd a 3 <td>, a <td>-ken belülre pedig az 5-5 listaelem (<ul><li>...</li></ul>). De hülyebiztosra kell elkészítened a kódot, számítani arra, hogy a tömb elemeinek száma változni fog. Pl. működjön úgy is, ha csak 10 elemed van, meg akkor is, ha 632.
Most vegyük azt, hogy mindenképp azt szeretnéd, hogy mindig legyen 3 oszlop, és mindig 5 elemet írjon az adott oszlopba, már ha van annyi (ha már nincs annyi, akkor a maradékot pakolja bele az aktuális cellának aktuális listájába).
Ha tök általánosan akarod megoldani, lesz három ciklusod egymásba ágyazva. Egyikben kiírod a szükséges számú sort (itt most 1, de lehetne jóval több is), a benne lévő ciklusban a szükséges számú cellát (itt 3), az azonbelül lévő ciklusban pedig a listaelemeket íratod ki.
Amire szükséged lesz, a felső egészrész egyszerű kiszámítására vonatkozó függvény: ceil()

Egy elég általános megoldás, amit gyorsan bepötyögtem, kipróbáltam, jó:

$elementsArray = array("Egy","Kettő","Három", "Négy" , "Öt" , "Hat" , "Hét" , "Nyolc" , "Kilenc" , "Tíz", "Alma" , "Dió" , "Mák" ,"Körte" , "Cseresznye"
, "asd", 'asd', 'qwe', 'retkljwer', 'xycbm'
);

$nrOfElements = count($elementsArray);
// szükséges listaelemek száma
$nrOfNeededListElements = 5;
// szükséges oszlopok száma
$nrOfNeededColumns = 3;
$nrOfNeededRows = ceil($nrOfElements/($nrOfNeededListElements*$nrOfNeededColumns));
// $nrOfCellsToFill = ceil($nrOfElements/$nrOfNeededListElements);
$nrOfElementsPrinted = 0;
echo '<table class="list-items-table">';
for($row = 0; $row < $nrOfNeededRows; $row++){
// sor
echo '<tr>';
for($cell = 0; $cell < $nrOfNeededColumns; $cell++) {
// <td>-t mindenképp kiírjuk, üresen is (bár elvileg nem feltétlenül muszáj)
echo '<td>';
// akkor írjuk csak ki az <ul>-t, ha szükséges
if($nrOfElementsPrinted < $nrOfElements) {
echo '<ul class="list-items">';
for($i = 0; ($i < $nrOfNeededListElements) && ($nrOfElementsPrinted < $nrOfElements); $i++) {
echo '<li>';
echo $elementsArray[$nrOfElementsPrinted];
echo '</li>';
$nrOfElementsPrinted++;
}
echo '</ul>';
}
echo '</td>';
}
echo '</tr>';
}
echo '</table>';

Azért jó, hogy általános, mert változtathatod benne ezt a két változót:
$nrOfNeededListElements = 5;
$nrOfNeededColumns = 3;

így az elsővel meghatározhatod, hány listaelemre lesz szükséged (neked most 5 kellett), a másodikkal pedig azt, hogy hány oszlopra van szükséged (itt 3). Ha átállítod másra, úgy is működőképes.

Itt láthatod, mi lesz a kimenet (egy sorba pakolja, ezzel most nem foglalkoztam, hogy legyen elválasztva a kódban sortöréssel - lásd PHP_EOL):

http://ideone.com/8wT9m5

Ergo így fog kinézni, ide bemásoltam a kimenetet:
http://jsfiddle.net/JH48Z/3/

[ Szerkesztve ]

Sk8erPeter

(#13422) Sk8erPeter válasza Speeedfire (#13406) üzenetére


Sk8erPeter
nagyúr

sikerült azóta rájönni, mi a para?

Sk8erPeter

(#13423) shaggy


shaggy
aktív tag

SOS segítségre lenne szükségem van egy progi php-ben és hozzá egy adatbázis de most valami lelete és amikor beírom a jelszót és felhasználónevet hibát dob ki és nem enged az oldalra a login.php 20 és 21 sora hibás szerinte de szerintem jó nem tudom mi a hiba valaki segítsen.
Privátba írtók elküldm a teljes progit is.

[ Szerkesztve ]

(#13424) Soak


Soak
veterán

Nem kene erre kitolni egy elso hsz jellegu dolgot hogy ingyen segitseget nem sok ertelme van privatban kerni? Vagy csak engem zavarnak ezek nagyon?

(#13425) CSorBA válasza Soak (#13424) üzenetére


CSorBA
őstag

Ezt akartam már én is mondani. Mehetne bele pár fontosabb könyv, amit szoktunk javasolni, meg valami rendszabályzat. :)

(#13426) Speeedfire válasza Sk8erPeter (#13422) üzenetére


Speeedfire
nagyúr

Nem is foglalkoztam azóta ezzel az error500-al. Csináltam egy tárolt eljárást oracle-ben, ami az excel-t elmenti egy blob mezőben, onnan meg szépen kistreamelem.

De ha gondolod próbáld rekonsturktuálni oracle alatt pdo-val ezt a dolgot, mert kíváncsi lennék rá. :D
Szét gugliztam magam, de csak módosított oci8 csomagokat láttam. Egyszerűen az oracle nem akarja támogatni a pdo-t. Használjon mindenki oci-t. :P

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13427) Sk8erPeter válasza Speeedfire (#13426) üzenetére


Sk8erPeter
nagyúr

"De ha gondolod próbáld rekonsturktuálni oracle alatt pdo-val ezt a dolgot, mert kíváncsi lennék rá."
Milyen dolgot? :DDD Én már az elejére sem emlékszem.

Igazából csak arra lettem volna kíváncsi, rájöttél-e, hogyan bírálhatod felül a Yii erőszakos kivételkezelését, mert úgy tűnt, nem tudod elkapni a keletkező kivételt, mert már előbb kitolja a kimenetre a Yii, ami gáz.

"Egyszerűen az oracle nem akarja támogatni a pdo-t. "
Nem fordítva kéne, hogy legyen a fejlesztési irány?

Sk8erPeter

(#13428) pvt.peter


pvt.peter
őstag

Sziasztok!

Adott az alábbi php kód:
http://pastebin.com/Hy8YGsxM

A kérdésem: a fenti kód mennyire jó felépítése egy adatbázis tranzakcióinak a kezelésére, tehát adatlekérésére, módosítására esetleg törlésére.
Mit lehetne rajta javítani, módosítani? (mysqli -vel való kapcsolódás rajtam kívül álló okok miatt kizárva)

Választ előre is köszönöm,
Peti

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#13429) DNReNTi válasza pvt.peter (#13428) üzenetére


DNReNTi
őstag

Szia,
Ez is sima php mysql_ parancsokat használ, csak létrehoz egy "Database" osztályt benne függvényekkel, amelyekkel a későbbiekben könnyebben lehet boldogulni. Ezzel tehát nem kerülöd ki a mysql_ parancsok használatát.

but without you, my life is incomplete, my days are absolutely gray

(#13430) pvt.peter válasza DNReNTi (#13429) üzenetére


pvt.peter
őstag

Nem értem mire válaszoltál :D
Tudom, hogy mit csinál a kód, bár még nem teszteltem.
Értelemszerűen a "mysql_" parancsok majd a query1() és query2() fgvekben lesznek.

Ez egy .50-es rombolópuska, elég szép visszarúgással.

(#13431) Speeedfire válasza Sk8erPeter (#13427) üzenetére


Speeedfire
nagyúr

Nagyon sok adatot lekérdezni egyszerre oracle-ből pdo-n keresztül. :)

Nem is néztem azóta, biztos van rá valami, amivel előbb elkapom és nem dob rá error-t, hanem én mondom meg neki. Csak, nem lehet egyszerű a dolog...vagy én nem találom meg.

Nem fordítva kéne, hogy legyen a fejlesztési irány?
Hogy fordítva?

Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com

(#13432) Andoidtibi


Andoidtibi
csendes tag

Hát nagyon szépen köszönöm mind kettőtöknek nagyon sokat segítetettek :R :R még most tanulgatom a PHP nyelvet valaki esetleg tudna olyan oldalt ahhol magyarul vannak jó leírások meg gyakorlati feladatok ?

(#13433) Sk8erPeter válasza pvt.peter (#13428) üzenetére


Sk8erPeter
nagyúr

Igazából azt pötyögted be, ami kommentekben is megtalálható, túl sok új nincs benne. Ez a query1(), query2() elég mágikus név, mit akarsz vele megvalósítani? Mindenesetre már az elnevezés is rossz. De legfőképp az, hogy fel akarod fedezni a spanyolviaszt: ne akarj n+1-edik adatbázis-kommunikációs wrapper osztályt csinálni, ott a mysqli és a PDO, valamint remek ORM-ek vannak. Írtad, hogy a mysql_ függvények használatára vagy kényszerítve, de ezt az érvet sajnos nem tudjuk elfogadni. :DDD Tehát minimum mysqli vagy PDO, a mysql_ kezdetű függvények használatáról 2013-ban már nincs is értelme beszélni.
Volt már korábban itt egy (v. több) hitvita a topicban, hogy Singleton-minta jó-e vagy sem, a vége az lett, hogy több érv szól a nem mellett (itt olvashatsz róla többek közt: [link], meg persze a topicban, a Singleton szóra rákeresve).

Sk8erPeter

(#13434) Sk8erPeter válasza Speeedfire (#13431) üzenetére


Sk8erPeter
nagyúr

"Hogy fordítva?"
Úgy, hogy nem az Oracle-fejlesztőknek kell ráfeküdniük izomból a PHP-val való együttműködésre, hanem a PHP fejlesztőinek... :)

Sk8erPeter

(#13435) Jim-Y


Jim-Y
veterán

Sziasztok. Nem megy debian alatt a PHP rendesen. Nézem az apache logot:

Először:
PHP Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in /var/www/woowie/php/server.php:10\nStack trace:\n#0 /var/www/woowie/php/server.php(10): PDO->__construct('mysql:host=loca...', 'root', 'root', Array)\n#1 {main}\n thrown in /var/www/woowie/php/server.php on line 10, referer: http://localhost/woowie/

Ekkor ez volt a PDO:
$db = new PDO(
"mysql:host=localhost;dbname=test",
"root",
"root",
array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;',
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
)
);

Majd kicseréltem erre:
$dsn = 'mysql:dbname=testdb;host=localhost';
$user = 'root';
$password = 'root';

try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}

Így ezt a hibaüzit kapom:
[Tue May 14 23:06:55 2013] [error] [client ::1] PHP Notice: Undefined variable: db in /var/www/woowie/php/server.php on line 20, referer: http://localhost/woowie/
[Tue May 14 23:06:55 2013] [error] [client ::1] PHP Fatal error: Call to a member function prepare() on a non-object in /var/www/woowie/php/server.php on line 20, referer: http://localhost/woowie/

Ötlet?:/

php5, apache, mysql installálva, újraindítva, config fájlokban nem turkáltam.

(#13436) Tele von Zsinór válasza Jim-Y (#13435) üzenetére


Tele von Zsinór
őstag

A pdo_mysql php modult kapcsold be.

(#13437) Sk8erPeter válasza Jim-Y (#13435) üzenetére


Sk8erPeter
nagyúr

Pedig ott van tök egyértelműen az exception message-ben: "could not find driver" :)
A megoldást pedig már írták, php_pdo_mysql extension bekapcsolása.

Sk8erPeter

(#13438) Jim-Y válasza Tele von Zsinór (#13436) üzenetére


Jim-Y
veterán

hiányzott egy package:

sudo apt-get install php5-mysql

ezután megjavult :) köszi

Egyébként sajnos az nem sokat mondott, hogy kapcsold be a modult, ha az egyszerű ember azt se tudja, hogy azt hogyan kell :DDD

[ Szerkesztve ]

(#13439) Sk8erPeter válasza Jim-Y (#13438) üzenetére


Sk8erPeter
nagyúr

"Egyébként sajnos az nem sokat mondott, hogy kapcsold be a modult, ha az egyszerű ember azt se tudja, hogy azt hogyan kell"
Hát igen, ilyenekben nagyon jó segítségedre lehet Google barátod... :)
Google a barátod

Sk8erPeter

(#13440) Peter Kiss válasza pvt.peter (#13428) üzenetére


Peter Kiss
senior tag
LOGOUT blog

:DDD

Semennyire. A csatlakozáshoz szükséges adatok tárolói mind private-ok, hol lehet őket beállítani? Konstruktorban csatlakozik a szerverhez (miért is?), de be lehet zárni menet közben a kódban, így a későbbi részek meg is haltak, ha használni akarják. Állapotot tartalmazó cuccok nem lehetnek static változóban sosem. Ennél durvább már csak az lehetne, ha ehhez hasonló kóddal perzisztens kapcsolatokat használna valaki.

Ha jól emlékszem, a mysql nem is tud SQL tranzakciókat kezelni. :DDD

@Sk8erPeter

Van értelme wrapper-t csinálni, mert a mysqli és a PDO még nem az, illetve mind a kettő ocsmányul néz ki, plusz sosem tudhatod, mikor mondják azt, hogy PDO nincs, csak mysqli, akkor cserélhetsz mindenhol mindent, emellett meg tudja könnyíteni a tranzakciókezelést, be tudsz szúrni pl. PDO driver-specifikus beállításokat, ilyesmi.

(#13441) Sk8erPeter válasza Peter Kiss (#13440) üzenetére


Sk8erPeter
nagyúr

Akkor másképpen fogalmazok: kezdő ne akarjon adatbázis-wrappert csinálni, mert csak egy katyvasz lesz belőle. :D Meg amúgy is Dunát lehet rekeszteni az ilyenekkel.

Sk8erPeter

(#13442) spammer


spammer
veterán

Ha már úgyis szó van itt a mysqli-ről. Megnéztem a tárhelyszolgáltatónál, ezt írja a az infó:

MysqlI Support
Client API library version 5.5.24

Tehát nyugodtan használhatok mysqli-t, ugye? Az a helyzet, hogy össze akarok dobni egy kisebb DB-t majd a weblaphoz, úgyis kellene mysql-lel foglalkoznom, de akkor jobb, ha a mysqli tutorialokat keresek egyből, ugye? :)

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13443) fordfairlane válasza spammer (#13442) üzenetére


fordfairlane
veterán

A msqli használata nagyban hasonlít a pdo-ra. Én wrappert használnék az adatbáziskezelő programrészekre többek közt pont emiatt, hogy a php-ban többféle db layer van.

[ Szerkesztve ]

x gon' give it to ya

(#13444) spammer válasza fordfairlane (#13443) üzenetére


spammer
veterán

Köszi, msqli-t próbálgatom most, de kezdő vagyok, meg nem is lesz szükség semmi nagy vagy bonyolult adatbázisra.

Ennek így van értelme?

$text = $db->escape_string($_POST['text']);

Form adatokat ad át, és a text mező (ami egy textfield) html kóddal formázható (TinyMCE pluginnel). Viszont ha megnézem adatbázisban (phpmyadmin), simán úgy látom, ahogy a form elküldi. Például:

<p><a href="valami.com">valami.com</a> "html próba".</p>

Ez így? :F

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13445) DNReNTi válasza spammer (#13444) üzenetére


DNReNTi
őstag

Persze hogy van értelme. Az űrlapon bevitt adatokat mindenképp célszerű az escape_string() metóduson átengedni mielőtt betolod az adatbázisba, elkerülendő a mysql injection-t.
A másik dolog is teljesen normális. Sőt ilyenkor célszerű közös css-t használni az editorban (TinyMCE) és a megjelenítéskor, hiszen nem csak tartalomra hanem kinézetre is pontosan ugyan azt kapja majd vissza az user amit megszerkesztett. ;)

but without you, my life is incomplete, my days are absolutely gray

(#13446) spammer válasza DNReNTi (#13445) üzenetére


spammer
veterán

Akkor jó, köszi :) Azt hittem hogy az idézőjeleket és a <> jeleket is konvertálja.

A css részével nincs gond.

„A feketébe öltözött ember a sivatagon át menekült, a harcos pedig követte."

(#13447) Peter Kiss válasza spammer (#13446) üzenetére


Peter Kiss
senior tag
LOGOUT blog

1. Értelmetlen. Használj prepared statement-eket!
2. htmlentities

(#13448) fordfairlane válasza spammer (#13444) üzenetére


fordfairlane
veterán

Van értelme, de mysqli és pdo használata esetén célszerűbb prepared statementet használni.

Viszont ha megnézem adatbázisban (phpmyadmin), simán úgy látom, ahogy a form elküldi.

Ennek pontosan így kell működnie.

x gon' give it to ya

(#13449) Sk8erPeter válasza Peter Kiss (#13447) üzenetére


Sk8erPeter
nagyúr

Itt miért kéne már htmlentities()?

Sk8erPeter

(#13450) Peter Kiss válasza Sk8erPeter (#13449) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Ha furcsállná, miért az van bent, ami. :DDD

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.