Hirdetés

2024. május 28., kedd

Gyorskeresés

Útvonal

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

Hozzászólások

(#15001) mobal válasza Speeedfire (#14991) üzenetére


mobal
MODERÁTOR

Az nem jó, mert nekem 6000 sorra kb 3 sec alatt sikerült. Bár kérdés, hogy mennyi oszlopod van. SQL?

"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."

(#15002) wis válasza modder (#15000) üzenetére


wis
tag

Igen, a Javához hasonlóan viselkedik, a primitív típusoknál és tömbnél működik a copy on write.
Csak a PHP tud olyat is, hogy objektumot adsz át & karakterrel:

function test($var)
{
$var = (object) array('abc' => '123');
}

function test2(&$var)
{
$var = (object) array('def' => '456');
}

$foo = (object) array('bar' => 'baz');
print_r($foo);
test($foo);
print_r($foo);
test2($foo);
print_r($foo);

Kimenet:

stdClass Object
(
[bar] => baz
)
stdClass Object
(
[bar] => baz
)
stdClass Object
(
[def] => 456
)

(#15003) #68216320


#68216320
törölt tag

Üdv!

Egy user-ek által használt WYSIWYG editor felületet pakolok éppen egy rendszerbe.
A TinyMCE 4.0.13 a választott. Viszont olyan problémába ütköztem, hogy szeretném a textarea tartalmát megtisztítani a nem kívánt tartalmaktól. (js részek, spec formázások, stb.) Arra gondoltam, hogy a strip_tags() megfelelő lesz nekem, de ehhez arra volna szükség, hogy az editor HTML kódokkal formázzon, ne css-el. Ebben tudna valaki segíteni? Esetleg van más mód a textarea tartalom tisztításra?

(#15004) #68216320 válasza #68216320 (#15003) üzenetére


#68216320
törölt tag

Közben rájöttem :D

(#15005) DNReNTi


DNReNTi
őstag

Villámkérdés WP guruknak:
Adott egy régi (nem tudom mikori verzio) telepitve egy ügyfelemnél és nem tudja a jelszót hozzá. Se ő se senki :D az adatbázisban átírnám a jelszót de nem tudom milyen titkosítással/hash-el van tárolva. Milyennel van? Pl azt szeretném egy 'a' betű legyen mit írjak be?
Köszke ;)

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

(#15006) Sk8erPeter válasza modder (#15000) üzenetére


Sk8erPeter
nagyúr

Ja, objektumnál felesleges a referencia, tömbnél nem.

Összefoglalva egy rövid példakóddal, hogy mi módosul, mi nem:

http://ideone.com/NfQXtX

Sk8erPeter

(#15007) Sk8erPeter válasza DNReNTi (#15005) üzenetére


Sk8erPeter
nagyúr

Itt próbáld meg: WordPress topic.

Sk8erPeter

(#15008) Sk8erPeter válasza #68216320 (#15004) üzenetére


Sk8erPeter
nagyúr

Illik ilyenkor megírni, mire jutottál. :)
Miket szeretnél kiszűrni?
Egyébként szerintem ilyen sanitizing feladatokra valami kész megoldást szokás használni, de úgy, hogy whitelisted van (nem blacklisted).
Ezt kéne kipróbálnod például (ha nincs kéznél másik jól működő megoldás):
http://htmlpurifier.org/

Egyébként kliensoldalon úgy emlékszem, enged a TinyMCE is valami előszűrést (persze ez nem elég önmagában, csak egy első szűrőnek jó).

Sk8erPeter

(#15009) #68216320 válasza Sk8erPeter (#15008) üzenetére


#68216320
törölt tag

Oké :)

A TinyMCE 4.x init részébe többek közt belekerült az alábbi:

formats: {
alignleft: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', attributes: {"align": 'left'}},
aligncenter: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', attributes: {"align": 'center'}},
alignright: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', attributes: {"align": 'right'}},
alignfull: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', attributes: {"align": 'justify'}},
bold: {inline: 'strong'},
italic: {inline: 'em'}
}

Ezzel a szükséges pár formázást nem css-el, hanem html taggal éri el. Tehát nem <span style="font-weight:bold"> lesz, hanem <strong>. Ilyen módon a strip_tags()-hoz tudok készíteni whitelist-et ami tartalmazza s <strong>-ot.

Viszont megnézem amit linkeltél. Ugyanis több HTML formázással gondban lennék. Mivel font style választás esetén nem tudnám megúszni vele a css-t. Ha viszont hagynám a <span> tagot, akkor visszaélésre adna lehetőséget.

[ Szerkesztve ]

(#15010) DNReNTi válasza Sk8erPeter (#15007) üzenetére


DNReNTi
őstag

thx

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

(#15011) biker válasza DNReNTi (#15005) üzenetére


biker
nagyúr

kérsz elfelejtett jelszót, ennyi

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#15012) DNReNTi válasza biker (#15011) üzenetére


DNReNTi
őstag

Az email fiokhoz sem tudjak a jelszot. :D jo kepessegu csapat :D

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

(#15013) Speeedfire válasza mobal (#15001) üzenetére


Speeedfire
nagyúr

~150 oszlop tele varchar2 mezővel.

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

(#15014) Coyot válasza DNReNTi (#15012) üzenetére


Coyot
őstag

Adatbázisban át tudod írni az email címet egy olyanra amihez tudnak hozzáférést és kész vagy.

Má' nem

(#15015) Sk8erPeter válasza #68216320 (#15009) üzenetére


Sk8erPeter
nagyúr

Jaja, ismerem ezt a formázási lehetőséget TinyMCE-nél, de ezzel tényleg nem úsztad meg még a többi feladatot. Meg hát ez még csak kliensoldal, szerveroldalon így is-úgy is kell whitelist alapján szűrni a kapott inputot.

"Mivel font style választás esetén nem tudnám megúszni vele a css-t. Ha viszont hagynám a <span> tagot, akkor visszaélésre adna lehetőséget."
Milyen visszaélésre gondolsz? Igazából a spannél is a class- és style-attribútumot szabad csak meghagyni, és utóbbira ezenbelül is legyen whitelist, hogy milyen stílusformázásokat engedsz (a class-re mondjuk nehéz, meg feleslegesnek tűnik).
Például egy fórum hozzászólásainál nem lenne jó engedni mindenféle aláhúzásokat, betűszíneket, háttérszíneket, ilyesmiket, amivel elcsúfítható az oldal összképe.

Sk8erPeter

(#15016) #68216320 válasza Sk8erPeter (#15015) üzenetére


#68216320
törölt tag

Ez egy afféle blog-szerű rész lenne, tehát lenne több formázási lehetőség is. A <span> rész szűrésnél a strip_tags() whitelist-be téve a tag-ot megmarad az egész ugyebár. Azon belül amikor benne van a style rész, hogyan tudom tovább szűrni? Az a gondom, hogy a strip_tags() csak HTML tagokkal dolgozik. Vagy rosszul tudom? illetve, ha class-t hagyok csak benne, akkor sem tudom, miként szűrjem ki a span mögül a többit.
Erre van valami könnyen járható út?

Pl:

<strong>valami szöveg</strong> - OK

<span style="font-weight:bold;">valami szöveg</span> - NEM OK (nehogy mást is írhasson a tartalomba)

<span class="editorBold">valami szöveg</span> - OK

Valami ilyesmi rendszerre lenne jó megoldást találni.
Aztán az <img> tovább nehezíti a dolgot, hogy csak a tárhelyen lévő képet fogadja el. De ez már egy másik történet ... :)

(#15017) Sk8erPeter válasza #68216320 (#15016) üzenetére


Sk8erPeter
nagyúr

Szerintem valami meglévő library-t kellene felhasználnod a HTML-elemek szűrésére (lásd a korábbi linket, de lehet, hogy van jobb, mint a HTML Purifier), ez azért közel sem triviális feladat, és néhány regexp nem biztos, hogy elegendő rá. Bár azokkal is megoldható részben.
Az, hogy csak class-ok vannak megengedve, azért jelentősen egyszerűsíti a dolgot (mivel csak a class-attribútumot kell engedned), ezen pedig kliensoldalon úgy lehet segíteni, hogy jól jelenjenek meg ezzel a tartalmak, hogy a TinyMCE-ben különböző stílusokat definiálsz előre. Lásd a "Custom formats"-demót; ha a Formats-ba belenézel, ott például láthatod az Example 1, Example 2 stílusokat - ezek egyszerűen sima span-tagek, és class van hozzáadva:

tinymce.init({
mode: "textareas",
plugins: "table",
content_css: "css/content.css",
style_formats: [
{title: 'Bold text', inline: 'b'},
{title: 'Red text', inline: 'span', styles: {color: '#ff0000'}},
{title: 'Red header', block: 'h1', styles: {color: '#ff0000'}},
{title: 'Example 1', inline: 'span', classes: 'example1'},
{title: 'Example 2', inline: 'span', classes: 'example2'},
{title: 'Table styles'},
{title: 'Table row 1', selector: 'tr', classes: 'tablerow1'}
],
formats: {
alignleft: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes: 'left'},
aligncenter: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes: 'center'},
alignright: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes: 'right'},
alignfull: {selector: 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img', classes: 'full'},
bold: {inline: 'span', 'classes': 'bold'},
italic: {inline: 'span', 'classes': 'italic'},
underline: {inline: 'span', 'classes': 'underline', exact: true},
strikethrough: {inline: 'del'},
customformat: {inline: 'span', styles: {color: '#00ff00', fontSize: '20px'}, attributes: {title: 'My custom format'}}
}
});

Itt ez a két sor az érdekes persze:
{title: 'Example 1', inline: 'span', classes: 'example1'},
{title: 'Example 2', inline: 'span', classes: 'example2'},

Ez jó példa arra, hogy simán megoldható, amit szeretnél, mármint kliensoldalon.
Ettől még szerveroldalon persze kell szűrni ugyanúgy.

A TinyMCE-nek is egyébként van már inline szerkesztési funkciója, az egyszerűsíti a dolgot (az oldalra vonatkozó stíluselemek vonatkoznak akkor a szerkeszthető részre is).
De ha a szokásos, iframe-es megoldást választod (mint a fenti), akkor pedig egyszerűen meg kell mondani a TinyMCE-nek, hogy melyik CSS-fájlt használja fel a stílusok érvényesítésére, ezt a content_css opcióval tudod meghatározni (ezt is láthatod fentebb). Ebbe belerakhatod a class-okat, meghatározhatod, hogyan nézzen ki a textarea. Érdemes úgy kialakítani a textarea kinézetét, ahogy várhatóan ki fog nézni a végleges eredmény.

"Aztán az <img> tovább nehezíti a dolgot, hogy csak a tárhelyen lévő képet fogadja el."
Erre is biztos van már valami nagyon egyszerű függvény, vagy hasonló, vagy csak simán egy regexp is elég lehet (ilyet nem olyan nehéz egyébként írni); esetleg ezt még ki lehet egészíteni file_exists() ellenőrzéssel, ha szükséges (hogy egyáltalán létezik-e az a fájl a szerveren).

Sk8erPeter

(#15018) #39417856


#39417856
törölt tag

Sziasztok!
Van nekem egy webtárhelyem és szeretném ha beírva a címét egy olyan felület fogadna engem mint egy TotalCommander fájlkezelő. Láttam már pár webhelyen ilyet, hogy kilistázza a mappákat és a fájlokat benne. Úgy lenne jó, ha bizonyos mappákat nem jelenítene meg, vagy esetleg jelszót kérne hozzá. Másik az hogy jó lenne egy fájlfeltöltő is amivel egy "upload mappába töltene max 3mb-s képeket és azt is meg lehetne utána tekinteni a fájlkezelővel. erre van valami kész megoldás?

Tehát összegezve: kellene egy fájlkezelő és egy fájlfeltöltő a webtárhelyemre amit elérhetnék pl a http://tarhelyem.host.hu/filekezelo oldalról.

[ Szerkesztve ]

(#15019) fordfairlane válasza #68216320 (#15016) üzenetére


fordfairlane
veterán

Ahhoz, hogy a bejövő szöveg megfeleljen minden szükséges kritériumnak, ahhoz a html-et DOM objektumfává kell alakítani, és az objektumfán végigmenve szemantikus szűrést kell végezni tagokra, attribútumokra és stílusleírásra.

Ezzel el lehet szőrözni jó sokat, már csak azért is, mert a HTML és a CSS egymástól erősen eltérő ún. "domain specific language", saját szintaktikával, escape szekvenciával, mifenével. Szóval az első próba a Tiny MCE FAQ-ban is ajánlott Html purifier könyvtár feltérképezése legyen szerintem, esetleg valami más, hasonló komponenssel való próbálkozás.

x gon' give it to ya

(#15020) Sk8erPeter válasza #39417856 (#15018) üzenetére


Sk8erPeter
nagyúr

Jaja, van ilyen megoldás, a régi ajaXplorer, aminek a neve most már Pydio: https://pydio.com/. Nagyon fasza, én szeretem, használom, persze azért konfigurálni kell, de csak egyszer kell átfutni a dokumentációját, meg bújni az opciókat a fájlmegosztáshoz és egyebekhez.
Egyéb tekintetben semmit nem kell vele csinálni, beállítod, működik, ahogy kell. Lehet vele még tömörített állományok tartalmát is kotorászni, Flash-alapú videólejátszója van, képnézegetője, fájlszerkesztője, lehet vele másolni, mozgatni, letölteni más URL-ről, tömöríteni, meg kibontani, szóval elég sok funkciót ellát, kényelmes felületen.

(#15019) fordfairlane :
nem is tudtam, hogy a TinyMCE doksijában is szerepel a HTML Purifier, attól függetlenül ajánlottam, de jó tudni. Ezek szerint biztos jóféle, sok helyen láttam már ajánlva.

Sk8erPeter

(#15021) #39417856 válasza Sk8erPeter (#15020) üzenetére


#39417856
törölt tag

köszi az infót, de én nem igazán ilyenre gondoltam.
nekem valami ehhez hasonló kellene, szóval totalcommanderből tudnék felötleni fájlokat a mappába, de ha beírnám pl. hogy http://lap.szolgaltato.hu/mappa akkor ott így jelennének meg a mappák és fájlok. esetleg a fájloknak mappáknak lehetne ikonjuk. szóval böngészőből csak olvasni é letölteni lehessen, feltölteni törölni ne.

(#15022) Rolly


Rolly
veterán

olyan editor érdekelne amivel online lehet komplett html fájlokat szerkeszteni (<html></html> érszt is) elég a text editor ... tyne fck nem jó mert itt konkrétan a templateeket szerkesztené az ügyfél ...

elképzelés:
bal oldalt egy fájl browser amiben mappák / fájlok bejárhatóak biztonsági okokból csak a .html és .css fájlok lennének elérhetőek és ezeket tudná módosítani... módosításkor én egy mod mappába menteném a módsított fájlokat s maga a tartalomkezelőm innen töltené be ...

(#15023) #68216320 válasza fordfairlane (#15019) üzenetére


#68216320
törölt tag

Első hallásra úgy tűnik ez túlmutat a jelenlegi képességeimen. Természetesen ez nem kifogás csupán a jelenlegi helyzet. Mivel most sok időm nincs a dologra, egyelőre marad a csupaszított editor és a kevés védelem.
Amint lesz időm, viszont utánajárok a témának. Felmerült bennem, hogy esetleg a bbcode nem volna-e megfelelő. HTML alap formázásokhoz és pár sablon használatához. Nem néztem még ennek sem a színfalai mögé, így azt sem tudom megvalósítható-e vele.

(#15024) fordfairlane válasza #68216320 (#15023) üzenetére


fordfairlane
veterán

Első hallásra úgy tűnik ez túlmutat a jelenlegi képességeimen.

A HTML Purifier használata nem tűnt nehéznek a doksija alapján. Mondjuk nem próbáltam ki.

[ Szerkesztve ]

x gon' give it to ya

(#15025) Sk8erPeter válasza #68216320 (#15023) üzenetére


Sk8erPeter
nagyúr

Amit én írtam, azt is láttad?
Nem azért írtam, hogy ignoráld. :D

"Felmerült bennem, hogy esetleg a bbcode nem volna-e megfelelő"
Mégis miért volna bármire is megoldás a BBCode? A BBCode úgy, ahogy van, egy f@szság, már születésétől kezdve értelmetlen volt a létezése. Ahelyett, hogy a felhasználókat a sokkal értelmesebb normál HTML-szintaktikára oktatták volna, beleerőltették a fejükbe tök feleslegesen a semmire nem használható BBCode-szintaktikát. Így az évek során kaptak egy használhatatlan, értéktelen fos "tudást". A Prohardveres BBCode-szerű szintaktika is egy értelmetlen fos, megérdemelne pár botütést, aki ezt bevezette, és aki még ezt a mai napig életben tartja. ;]

Sk8erPeter

(#15026) #68216320 válasza Sk8erPeter (#15025) üzenetére


#68216320
törölt tag

Persze. Nem ignoráltam. :D Pontosan ezt fogom megpróbálni. Amúgy jelenleg is használok saját css-t az editorhoz, bár egyelőre csak az editor alap betűtípusa miatt, hogy az legyen, ami majd a főoldalon is lesz a tartalomnak.

BBCode: Amúgy sem tetszett soha és nem is tudom lehet-e pl. img-t align paraméterrel ellátni. De, ezek után nem is érdekel.

Azt kellene valami számomra is teljesen átlátható módon megoldani mondjuk HTML tagokból minden paraméter eltűnjön, kivéve a class="". A feladat adott, napokon belül lesz időm foglalkozni vele. :K

Köszi az eddigieket. Még jönnék vissza kérdéssel pár nap múlva és remélhetőleg mihamarabb a megoldással is. :)

(#15027) trisztan94 válasza Sk8erPeter (#15025) üzenetére


trisztan94
őstag

Maximalisans egyetertek. En is nezegettem korabban a BBCode-ot, de egyszeruen nem ertettem mi ertelme van ennek. Nem sokkal bonyolultabb html tageket hasznalni, cserebe sokkal atlathatobb.

Vagy ha mar mindenkepp valami html-tol fuggetlen formazasi nyelvet akar az ember, akkor markdown. Annak is baromi egyszeru a szintaktikaja es nagyon lightweight (nem veletlenul hasznalja a Reddit, SO, stb)

https://heureka-kreativ.hu

(#15028) Sk8erPeter válasza trisztan94 (#15027) üzenetére


Sk8erPeter
nagyúr

Pontosan. A markdown TÉNYLEG segíti az egyszerűbb, sallangmentes és viszonylag kényelmes tartalom-létrehozást, annak is, aki egyébként ismeri a HTML-szintaktikát.

Na ez a BBCode-ról egyáltalán nem mondható el. A HTML-lel szemben sem a felhasználást nem teszi kényelmesebbé, sem a parse-olást, validálást, szűrést (se kliensoldalon, se szerveroldalon), tulajdonképpen csak macerás és korlátolt (lásd például az IMG tagnek az alap BBCode-szintaktikában nem tudsz title-t adni, csak a képhez tartozó URL-t, és hasonlók), ahelyett, hogy sima HTML whitelist lenne, ahogy egyébként manapság már az szerencsére sokkal inkább jellemző (ha valahol engedélyezett a HTML használata pl. kommentelőrendszerben). Tisztességes DOM-struktúrát sem lehet felépíteni belőle. A felhasználók így tényleg kapnak egy használhatatlan tudást, amikor ennyi erővel már megtanulhatták volna a HTML-t is, aminek még haszna is lenne. :)

(#15026) PeachMan :
"BBCode: Amúgy sem tetszett soha és nem is tudom lehet-e pl. img-t align paraméterrel ellátni."
Ugyan, hova gondolsz. :D

"Amúgy jelenleg is használok saját css-t az editorhoz, bár egyelőre csak az editor alap betűtípusa miatt, hogy az legyen, ami majd a főoldalon is lesz a tartalomnak."
Minden tekintetben érdemes a WYSIWYG editor iframe-jét olyanra formázni, amilyen a végleges környezetében lesz (hülye példával: ha sárga háttérszínt kap, akkor legyen sárga a szerkesztőfelületen is). De adott esetben (pl. blogtartalom szerkesztésekor, és hasonló esetekben) még egyszerűbb az inline-formázást használni:
http://www.tinymce.com/tryit/inline.php
http://ckeditor.com/demo#inline

"Azt kellene valami számomra is teljesen átlátható módon megoldani mondjuk HTML tagokból minden paraméter eltűnjön, kivéve a class=""."
HTML Purifierrrel:
http://stackoverflow.com/questions/670031/how-to-whitelist-just-some-attributes-with-htmlpurifier
HTML.AllowedAttributes

Sk8erPeter

(#15029) Lacces


Lacces
őstag

Hali,

Van egy kis problémám dátum kezeléssel... (ha legalább megmondanátok hogyan keressek rá, az is elég :) )

Szóval nekem minden héten le kell húznom egy tartalmat. Ahol az idő nem másból áll, mint a Nap és az Idő (óra perc formátumban)

És az lenne a kérdésem, hogy letudom-e ebből a két adatból generálni hozzá egy megfelelő dateTime objektumot? (valahogy a beépített PHP függvényeket használva).

Ugyanis ez a rész akkor válik izgalmassá, amikor Hónap forduló is van a héten, vagy év forduló is.
Mivel hetente kell leszedni ezt, végül is a Hét is megszerezhető. És akkor már 3 adat van, és valahogy a hét sorszámából plusz a napból (szombat, vasárnap, hétfő... nem szám), nem tudja ezt a PHP belső függvénnyel kigenerálni a hozzátartozó pontos dateTime objektumot?

Persze tudnék írni sajátot, is ami ezt összállítja automatikusan, de nem akarok ha van ilyen belső funkció a PHP-nak. :)) :R

(#15030) Lacces válasza Lacces (#15029) üzenetére


Lacces
őstag

Megvan egy megoldás:

A $dayNumber-t majd nekem kell átkonvertálni, mert összevissza van a rövidített neve a magyar napoknak. (H, Sze, Cs, V, stb....)
A setIsoDate-nek átadom az aktuális évet és az aktuális hetet, ez mindig a hét első napjára (hétfő-re mutat).
Ezek után a nap numerikus értékét felhasználva növelem a napok számát (akár az eredeti angol-t is fel lehet így hasznáni PHP 5.1.0+-tól)
És akkor megkapom a kívánt dátumokat napra pontosan.
(már csak a time-ot kell belőni, ha valaki szertné még hozzá :))

// TODO: Convert Hungarian day name to Number of day.
$dayNumber = 1;
$dateTime = new DateTime();
// Set to the first day of the current week.
$dateTime->setISODate(date('Y'),date('W'));
// Add the
$dateTime->add(new \DateInterval('P'.$dayNumber.'D'));
echo $dateTime->format('Y-m-d');

(#15031) Sk8erPeter válasza Lacces (#15030) üzenetére


Sk8erPeter
nagyúr

$dateTime->add(new \DateInterval('P'.$dayNumber.'D'));
Szerintem ez elég ronda.

Szebb lenne helyette így:
$dateTime->modify('+1 day');

Érdemes egyébként odafigyelni rá, hogy a DateTime osztálynak nagyon szépen megvannak a maga hülyeségei, ahogy írják is php.net-en, a hivatalos doksiban:
http://www.php.net/manual/en/datetime.add.php

"Example #3 Beware when adding months

<?php
$date = new DateTime('2000-12-31');
$interval = new DateInterval('P1M');

$date->add($interval);
echo $date->format('Y-m-d') . "\n";

$date->add($interval);
echo $date->format('Y-m-d') . "\n";
?>

The above example will output:
2001-01-31
2001-03-03
"

Ez remek, hogy tudnak róla, de nem ártana talán némi korrekció, ahelyett, hogy felhívják a figyelmet erre a hülyeségére. :)

Sk8erPeter

(#15032) Hujikolp


Hujikolp
őstag

Üdv!

Van egy tömböm, amikben fájl nevek vannak. Hogyan tudom ennek a tömbnek az elemeit hátulról olvasni, addig amíg egy ponthoz el nem érek? Tehát, a fájl kiterjesztés típusa kell nekem külön. Ez rendszerint zip, doc, docx, pdf stb lesz, ha megint megfordítom az állomány olvasási sorrendjét.

(#15033) DNReNTi válasza Hujikolp (#15032) üzenetére


DNReNTi
őstag

Eccerű:

$pont_pozicio = strrpos($tomb_elem, '.');
$kiterjesztes = substr($pont_pozicio+1);

Így pl ha $tomb_elem értéke akarmi.pdf akkor a $kiterjesztes "pdf" lesz.
Ennyi az egész.

[ Szerkesztve ]

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

(#15034) Hujikolp válasza DNReNTi (#15033) üzenetére


Hujikolp
őstag

Köszönöm! Sikerült is implementálni. :R Érdekes, hogy a közbenső pontokkal nem bajlódik, csak a legutolsót figyeli

[ Szerkesztve ]

(#15035) Tele von Zsinór válasza Sk8erPeter (#15031) üzenetére


Tele von Zsinór
őstag

A nagy baj, hogy nem egyértelmű, mi lenne itt a helyes megoldás. A példádnál maradva: január 31-éhez egy hónapot adva mit vársz? Februárt? De hiszen ott nincs 31-e, ha meg a 28-át adod vissza, akkor nem egy hónapot adtál hozzá. Március? De hiszen én csak egy hónapot akartam hozzáadni.

Inkább maradtak annál, hogy a +1 hónap az +30 napot jelent, és igyekeznek felhívni erre a figyelmet. A hónap egy instabil időtartam (kicsit olyan ez, mint timestampeknél a 86400 mint egy nap - általában igaz, de néha mégsem).

(#15036) DNReNTi válasza Hujikolp (#15034) üzenetére


DNReNTi
őstag

Épp ez a lényeg. A strrpos() a string végétől visszafelé keresi a megfelelő karaktert vagy karakterláncot. ;)

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

(#15037) Lacces válasza Sk8erPeter (#15031) üzenetére


Lacces
őstag

Rondának ronda, én sem vagyok oda érte...
De lemértem a feldolgozás idejét microtime()-al is, és hát érdekes módon az add(new DateInterval()) utasítással 10-ből 8 alkalommal gyorsabb volt, mint a modify()-os megoldás.
Ezért maradtam ennél a megoldásnál :).

De a végén lesz még egy refactor, akkor még meggondolom :). :R

(#15038) csabyka666


csabyka666
addikt

Üdv mindenkinek!

Session alapú beléptetést próbálom összehozni, és "majdnem" működik is, viszont van egy kis problémám vele, amiben a segítségeteket szeretném kérni.
Összeraktam egy egyszerű felületet, aminek annyi a lényege, hogy alapesetben csak egy beléptető form-ot lát a felhasználó, és ha megad bármilyen felhasználói nevet, csak azután láthassa az oldal tartalmát. (Nincs benne adatbázis sem, most csak a működés lenne a lényeg.)

Ezt a kódot hoztam össze:

<?php
session_start();

if(!isset($_SESSION["belepve"]))
{
echo "Az oldal megtekintéséhez be kell jelentkezned!";
echo '
<form method="post">
Felhasználói név: <input type="text" name=username /></br>
<input type="submit" name="belep" value="Belépés" />
</form>';

if(isset($_POST["belep"])){
$_SESSION["belepve"] = 1;
$_SESSION["username"] = $_POST["username"];
}
}
else{

echo "Üdvözöllek ".$_SESSION["username"];
echo "Az oldal tartalma: blablabla...";
?>

Ez működik is, de amikor beírok egy nevet, és rányomok az elküld gombra, megint behozza a bejelentkező felületet, és ismét be kell írnom valamit, vagy frissítenem kell az oldalt. A kilépésnél ugyanez a probléma: 2x kell meghívnom azt a php-t, amiben a session_destroy(); szerepel. Mit rontottam el?

Lehet, hogy kézenfekvő a hiba, de nézzétek el nekem, hogy nem vagyok egy programozó zseni.

Köszönöm a segítséget előre is!

Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091

(#15039) #68216320 válasza csabyka666 (#15038) üzenetére


#68216320
törölt tag

...

[ Szerkesztve ]

(#15040) biker válasza csabyka666 (#15038) üzenetére


biker
nagyúr

teljesen rossz a kód, az if ágban rosszul vannak egymásba ágyazva a dolgok

<?php
session_start();
if(isset($_POST["belep"])){
$_SESSION["belepve"] = 1;
$_SESSION["username"] = $_POST["username"];
}

if(!isset($_SESSION["belepve"]))
{
echo "Az oldal megtekintéséhez be kell jelentkezned!";
echo '
<form method="post">
Felhasználói név: <input type="text" name=username /></br>
<input type="submit" name="belep" value="Belépés" />
</form>';
}
else{
echo "Üdvözöllek ".$_SESSION["username"];
echo "Az oldal tartalma: blablabla...";
//itt nem volt lezárva az else ág!
}
?>

[ Szerkesztve ]

Elektromos autó töltő berendezések | Mesterséges növényvilágítás | Mai ajánlatunk: www.gerisoft.hu | www.e-autotoltokabel.hu | www.agrar-vilagitas.hu |

(#15041) #68216320 válasza csabyka666 (#15038) üzenetére


#68216320
törölt tag

Én csak nagyon amatőr vagyok, de az alábbi megoldást használnám:

account.php - a belépéshez és tartalom megjelenítéshez. bár én magam a tényleges belépést is egy login.php-ban intézném el.
logout.php - a kilépéshez

Erről jut eszembe, a session_destroy() csak kinyírja a session-t és megmaradnak még a $_SESSION globális tartalmak vagy törli is azokat? Mert esetleg felesleges a logout.php-ban külön foglalkozni velük.

(#15042) csabyka666


csabyka666
addikt

Köszi a válaszokat, hamarosan ki is próbálom a javaslatokat!

Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091

(#15043) csabyka666 válasza biker (#15040) üzenetére


csabyka666
addikt

Köszönöm a választ, így frankón működik!

Ahogy újra átnéztem a kódot, már látom, hogy rosszul volt felépítve az egész, illetve - szerintem - még az is hiba volt, hogy először nem azt vizsgáltam, hogy a belép gomb megnyomásra került-e, hanem kapásból a session tartalmát erőltettem, és már ott lehalt a dolog.

:R

Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091

(#15044) csabyka666 válasza #68216320 (#15041) üzenetére


csabyka666
addikt

Köszönöm ezt a javaslatot is! Én is így fogok tenni, talán áttekinthetőbb lesz a kód.

Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091

(#15045) CSorBA


CSorBA
őstag

Valaki ilyennel találkozott már?

Call to undefined function mysqli_begin_transaction()

Többi mysqli function pedig megy. :U

(#15046) CSorBA válasza CSorBA (#15045) üzenetére


CSorBA
őstag

Jahogy, csak 5.5-től van, nálam pedig 5.3.9 van. Ok, nem szóltam. :B

(#15047) #68216320


#68216320
törölt tag

Még csak ismerkedem az OOP megoldásokkal és ezzel kapcsolatban volna nagyon alap kérdésem.
Létrehozok két osztályt.
User - profilkép, user adatai, stb.
Hozzaszolas - hozzászólások szövege, megjelenítési variációk, letárolás, stb.

A lényeg, hogy a hozzászólás osztályban a megjelenítésnél szeretném a user objektum profilképét használni. Hogyan lehet ezt megtenni?

(#15048) #68216320 válasza #68216320 (#15047) üzenetére


#68216320
törölt tag

Illetve, ha tudnátok kezdőnek való magyar nyelvű oktatóanyagot a PHP nyelven keresztül az OOP használatáról, azt is megköszönném. A neten találok többet is, de az elején jó volna valami magyarázóbb verzió a talált handbook-szerűek helyett.

(#15049) Peter Kiss válasza #68216320 (#15047) üzenetére


Peter Kiss
senior tag
LOGOUT blog

Ennyiből ezt a kérdést senki nem tudja megválaszolni.

Viszont adhatnál egy osztálydefiníciót, mégis hogyan képzelted el ezt a kettőt!

(#15050) csabyka666


csabyka666
addikt

Üdv mindenkinek!

Azt szeretném kérdezni tőletek, hogy létezik-e valami megoldás arra, hogy egy cookie tartalmát módosítsam?
Mindezt úgy képzeltem el, hogy pl. van egy cookie-m, aminek a tartalma 1,3,4,5,8...szóval számok, és nekem mondjuk a 4-est ki kéne vennem a sorból, és 1,3,5,8...stb. maradna csak.
Oké, töröljem le, és hozzam létre újra, de akkor is valahogy meg kellene keresnem, hogy hol van az adott elem, amit ki kellene törölni.

Néztem több fórumot is, de nem találtam megoldást. Tudtok ebben segíteni?

(Van egy olyan merész elképzelésem, hogy a cookie-nak egyetlen eleme lenne, ami egy tömb, és akkor azt be tudnám járni...ez megoldható esetleg?)

Köszönöm a válaszokat előre is!

Ágdarálást, kaszálást, területtisztítást vállalok profi gépekkel! Elsősorban Zala megye és vonzáskörzete, de minden megkeresést meghallgatok. +36305633091

Útvonal

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