Új hozzászólás Aktív témák
-
Speeedfire
nagyúr
válasz trisztan94 #18052 üzenetére
4 órával később ugyan azt belinkelted, amit fordfairlane is.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
-
adatfalo
senior tag
válasz fordfairlane #18051 üzenetére
<?php echo $auth->get(nl2br("\n", '<br />','company_name')); ?>
Így próbáltam, de tuti szintaxis hibát vétek, mert így nem jelenik meg semmi, de igen ezt kéne használnom, én is az nl2br-re gondoltam, csak őszintén ilyen összefüggésben még sose használtam.
www.adatfalodesign.hu
-
adatfalo
senior tag
válasz fordfairlane #18055 üzenetére
Köszönöm szépen, örök hálám!
Legközelebb próbálok ilyen nüansznyi dolgokra önmagamtól rájönni.
www.adatfalodesign.hu
-
fordfairlane
veterán
válasz adatfalo #18056 üzenetére
Remélem, hogy a végén majd egy filter rendesen kezelni fogja a html kimenetet. Tehát attól, hogy valaki beírja company-name-nek, hogy <script>alert('evil genius')</script>, nem egy alert ablak fog felugrani annak a böngészőjében, aki megnézi az adatlapot.
[ Szerkesztve ]
x gon' give it to ya
-
adatfalo
senior tag
válasz fordfairlane #18057 üzenetére
Kezeli már most is, ez egy wordpress-es plugin egyik sora volt (ami már alapból filterezte a form-okat), a Simple Membership-ről van szó egyébként.
www.adatfalodesign.hu
-
PumpkinSeed
addikt
PHP-ban hogyan lehet a következő struktúrát kialakítani:
class Article{
title string
content string
}
class Articles{
articles Article[]
}Csak mert nem tudom hogy lehet referencia típusú változót adattagként megadni, és nem is találtam megoldást erre.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
DNReNTi
őstag
válasz PumpkinSeed #18059 üzenetére
Nem tudom jól értem e mire gondolsz, de:
class Articles{
protected $articles = array();
private function initArticles() {
//inicializálod a tömböt vmi alapján, pl:
$this->articles = Article::getByGroupID($this->id);
//ez visszatér egy tömbbel a megfelelő Article objektumokkal
}
}Az initArticles() metódust én a getterbe is be szoktam tenni, ha üres, vagy nem inicializált a property akkor futtatom, illetve azért private, mert ha kívülről akarod meghívni elég a gettert hívni, az feltölti ha még nincs. Ha nem túl nagy az objektum fa, vagy biztosan nem rekurzív akkor be lehet tenni konstruktorba is, de ezt én inkább elkerülném. Remélem erre gondoltál.
but without you, my life is incomplete, my days are absolutely gray
-
PumpkinSeed
addikt
válasz DNReNTi #18060 üzenetére
Igen valami ilyesmire. Igazából a hangsúly azon volt, hogy tud-e Article típust tárolni az Articles. Ilyen lett:
class Article{
protected $title;
protected $content;
function __construct($title, $content){
$this->title = $title;
$this->content = $content;
}
}
class Articles{
protected $articles;
function __construct(){
$this->articles = array();
}
public function addElement($art){
array_push($this->articles, $art);
}
public function getElements(){
return $this->articles;
}
}
$art1 = new Article("Test1", "test1");
$art2 = new Article("Test2", "test2");
$artis = new Articles();
$artis->addElement($art1);
$artis->addElement($art2);
echo var_dump($artis->getElements());De erre magamtól is rájöttem, csak valamiért a múltkor próbáltam ugyanezt és error-t dobott arra, hogy objektumot nem akar tárolni és azt hittem, hogy nem lehet.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
Sk8erPeter
nagyúr
válasz PumpkinSeed #18061 üzenetére
"error-t dobott arra, hogy objektumot nem akar tárolni és azt hittem, hogy nem lehet"
Az elég durva lenne... Egyébként nem valószínű, hogy az volt a hiba, hogy objektumot "nem akar tárolni", hanem valami ennél PICIKÉT konkrétabb és értelmesebb hiba fordult elő.[ Szerkesztve ]
Sk8erPeter
-
PumpkinSeed
addikt
válasz Sk8erPeter #18062 üzenetére
Ja nyilv. nem az volt a hiba csak annak tudtam be és amúgy se akartam ennyire sok mindent beletenni, most ahhoz hogy 5-6 cikket kiolvassak az adatbázisból nem kell egy ilyen szintű dolog. konkrétan egy függvény megcsinálja a kilistázást meg még egy a megjelenítést és itthonra ez így jó is lesz.
"Akinek elég bátorsága és türelme van ahhoz, hogy egész életében a sötétségbe nézzen, elsőként fogja meglátni benne a fény felvillanását." - Kán
-
DNReNTi
őstag
válasz PumpkinSeed #18063 üzenetére
Amúgy remélem nem mondok f*szságot, de szerintem lehet egy objektum tulajdonsága egy másik objektum típusú. Ezért szoktam annotálni és akkor az IDE is vágja. Tehát pl ez így nekem mindig szuperül működik:
class Osztaly {
/** @var $egyeb_osztaly EgyebOsztaly */
protected $egyeb_osztaly;
}Szerk: typo
[ Szerkesztve ]
but without you, my life is incomplete, my days are absolutely gray
-
DNReNTi
őstag
válasz fordfairlane #18065 üzenetére
A runtime nem, de az IDE-nek jól jön a segítség, hogy tudja mi az ott. Lehet nem fogalmaztam egyértelműen. A lényeg, hogy lehet objektum típusú egy tulajdonság.
but without you, my life is incomplete, my days are absolutely gray
-
fordfairlane
veterán
válasz DNReNTi #18066 üzenetére
Tehát azt nevezed típusdeklarációnak, amit egy a forrást elemző IDE plugin képes kibányászni az annotációkból, ahhoz képest, hogy a nyelv mit támogat nyelvi szinten és mit nem? Végülis bármit lehet bárminek nevezni, ha elég lazák a nyelvi szabályok. Akkor az is típusdeklaráció, ha szólok a mellettem ülőnek, hogy mit használjon az osztálynál.
[ Szerkesztve ]
x gon' give it to ya
-
DNReNTi
őstag
válasz fordfairlane #18067 üzenetére
Bakker. Úgy kiforgattad a szavaimat mint egy Blikk újságíró.
but without you, my life is incomplete, my days are absolutely gray
-
fordfairlane
veterán
-
DNReNTi
őstag
válasz fordfairlane #18069 üzenetére
Most már összeállt mire gondolsz. Elbeszéltünk egymás mellett. Én nem konkrétan a típus meghatározására értettem, vagy céloztam a hozzászólásaimat hanem arra, hogy egy tulajdonság lehet objektum, mivel ez volt a témaindító. No túl van tárgyalva.
but without you, my life is incomplete, my days are absolutely gray
-
pckownz
senior tag
Mennyire biztonsagos megoldas, ha login helyett cpanelbol jelszavazok le egy php file-t?
-
#68216320
törölt tag
Technikai kérdés. User regisztrációnál a szokásos űrlap kitölt->emailt kiküld->aktiválós linkre kattint->belép sorrendet követném. Az aktivációs link mit tartalmazzon paraméternek?
Eddig úgy oldottam meg, hogy mysql-ben volt egy session mező a usernél és az aktiváló link az id+session párost tartalmazta. Viszont arra gondoltam, semmi értelme tárolnom folyamatosan session-t az adatbázisban ezért egy külön regisztrációs táblát csinálnék ilyen mezőkkel. Aktiválás után törölném az adott sort innét.
Viszont lehet alapjaiban rossz a megközelítés ezért kérném a segítségeteket, hogy miként javasolt felépíteni a folyamatot
-
DNReNTi
őstag
válasz #68216320 #18072 üzenetére
Nálam erre a bevált módszer egy random, de egyedi hash generálása adott eseményhez, ilyen az aktiválás, elfelejtett jelszó, fiók törlés, email cím változtatás. Külön táblában tárolom ezeket a felhasználóhoz és az eseménytípushoz kötve. Én törölni sem szoktam, de nagyobb felhasználóbázisnál, azért érdemes egy ütemezett archiválás.
but without you, my life is incomplete, my days are absolutely gray
-
DNReNTi
őstag
válasz #68216320 #18074 üzenetére
Írtam rá egy sima egyszerű random string generátort, egy while ciklusban 32 karaktert dob össze, kisbetű-nagybetű-számok kombinációból, aztán ellenőrzi hogy létezik e már, ha igen kezdi elölről. Elég kicsi az esélye amúgy, hogy bármikor is újat kelljen generálni, de az ördög nem alszik, így üzembiztos. Ezenkívül persze az adatbázisban a hash mező unique. Ezzel nekem még sosem volt gond.
but without you, my life is incomplete, my days are absolutely gray
-
-
Tele von Zsinór
őstag
válasz DNReNTi #18075 üzenetére
Saját megoldás helyett eseteg: paragonie/random_compat
A php7 új csprng függvényeire polyfill php5-re, a'la password_compat.
-
#68216320
törölt tag
válasz Tele von Zsinór #18078 üzenetére
Épp múltkor akartam kipróbálni a PHP7-et, de valamiért nem sikerült Apache2.4 alá konfigolnom. Friss 5-öt igen, de a 7 dll-jével nem indult el.
-
-
#68216320
törölt tag
válasz Tele von Zsinór #18080 üzenetére
Nekem az exe elindul onmagaban hiba nelkul, de az apache configban hivott dll-el nem indul az apache. Pedig ahogy neztem csak a fajlnevet kellett atirni es az eleresi utvonalat. Nem ertem mi lehet a gond. Probaltam 32bites parossal es 64bitessel is. Ugyanaz. Valamit elszurok. Log nem arul el semmit.
-
-
#68216320
törölt tag
válasz Peter Kiss #18082 üzenetére
Lehet, de ettől még lehet igényem apache használatára, igaz? IIS-t nem ismerem és nem is szeretném megismerni. A szokásos megoldást választanám. Már megszoktam Linux/OS X alatt.
Csak egyszerűen a 7-es dll-je nem akar működni nálam apache2.4-el. -
#68216320
törölt tag
válasz Peter Kiss #18084 üzenetére
Persze, természetesen fent van. Amikor az exe fájlt indítottam kereste is, feltettem, most nem ad hibaüzenetet.
Tehát elméletileg fut. Bár nem tudom exe futásakor hogyan tudom apache nélkül tesztelni.Más:
Amikor mondjuk egy regisztrációs űrlapot készítetek milyen megoldással kezelitek a megadott adatokat és hibákat? Én két megoldást tudok, de kíváncsi lennék a megfelelőre1.
Az űrlap, az adatok ellenőrzése, a feldolgozása ugyanabban a PHP fájlban van. Leegyszerűsítve valahogy így nézne ki:if( ha vannak adatok ellenőrzöm ) {
...
if( hiba1) {
$formView=true
$errorMessage[]=hibaüzenet
}
if( hiba2) {
$formView=true
$errorMessage[]=hibaüzenet
}
...
}
else {
formView=true
}
if( formView===true ) {
formot megjelenítem, esetleges $errorMessage tömböt kiírom
}
else {
kapott adatokat feldolgozom
feldolgozás utáni üzenetet megjelenítem
}2.
Az űrlap és az ellenőrzés/feldolgozás külön PHP fájlban vanform.php
<form method="post" action="task_form.php">
...
</form>task_form.php
kapott adatok ellenőrzése ...
if( hiba1 ) {
$_SESSION['formErrors'][] = hibaüzenet
}
if( hiba2 ) {
$_SESSION['formErrors'][] = hibaüzenet
}
...
if( ! empty($_SESSION['formErrors']) )
$location = $_SERVER['HTTP_REFERER']
else {
adatokat feldolgozom
$location = következő oldal címe
}
$loc = sprintf('Location:%s', $location )
header($loc);Igazából nem tudom melyik lenne az ideális, már ha bármelyik is annak nevezhető.
Az első kényelmesebb, viszont a browser frissítés gombra újra elküldi az adatokat, amit ugyan kezelhetek, de akkor sem tetszik igazán.
A második ezt kivédi, mert hiba esetén ugyan visszadja az űrlapot újra, de üresen (persze session-al tehetek vissza értéket) és frissítésre csak újra megjeleníti, nincs küldés. Cserébe viszont macerás.Ti milyen megoldást használtok ilyen esetben?
-
#68216320
törölt tag
válasz Peter Kiss #18084 üzenetére
Közben egy másik gépen is megpróbáltam a Php7-et indítani és elsőre sikerült. Szóval a laptopommal lesz valami. Majd kiderítem mi baja.
Update: a modulok okozzák a hibát. De nem tudom miért. Némelyik indul, némelyik nem.
[ Szerkesztve ]
-
-
-
Sk8erPeter
nagyúr
válasz #68216320 #18085 üzenetére
Az első mindenképpen ocsmány megoldás, mivel így nem válik szét a megjelenítés és az adatok validálása, feldolgozása, adatbázisba írása (meg hasonló műveletek). A form kiírásának semmi köze nem szabadna, hogy legyen ahhoz, hogy aztán mit kezdesz az adataiddal. Szóval mindenképp válaszd külön a kettőt. Ezért szokás szétválasztani a különböző rétegeket (lásd MVC-szemlélet és társai).
Sk8erPeter
-
#68216320
törölt tag
válasz Sk8erPeter #18090 üzenetére
Igen, sejtettem, h gázos Akkor a második megoldásra építek valami saját alapot , amit a későbbiekben testreszabhatok.
-
fordfairlane
veterán
válasz #68216320 #18085 üzenetére
Ti milyen megoldást használtok ilyen esetben?
A kettő nem zárja ki egymást. Kezelheted a form kirajzolását, a form submitot és a hibakezelést egy helyről, egy handlerből, de a részműveletek több helyen. Itt kettészedtem nézetre és minden másra. Természetesen ez így még mindig nagyon kezdetleges, de remélem, átjön a lényeg, és az újraküldés ellen védett.
form_handler:
<?php
$form_errors = array();
if($_SERVER["REQUEST_METHOD"] == "POST") {
// validálás
$form_errors["email"] = "Ez az email már foglalt";
$if(!count($form_errors)) {
// mentés
// ...
header("Location: " . $_SERVER["SCRIPT_NAME"] . "?success=1");
exit;
}
}
$success = isset($_GET["success"]?true:false);
require_once("form.php");form.php:
<?php
<?php if(success): ?>
A regisztráció perfektül organizálódik.
<?php endif; ?>
<form method="post">
<input type="text" name="email">
<?php if(isset($form_errors["email"])): ?>
<div class="errorlabel"><?=htmlspecialchars($form_errors["email"])?></div>
<?php endif; ?>
</form>[ Szerkesztve ]
x gon' give it to ya
-
Zedz
addikt
Sziasztok,
Laravelben találkozott már valaki olyannal, hogy a lang fájlokból jövő szöveget ha megnézzük a HTML kódban, akkor ékezet helyett annak valamilyen kódját mutatja? "és" helyett "és" például. A weboldalon jól jelenik meg, a HTML kódban sajnos nem. A fájlok és a html doc és UTF-8 encodera van állítva.
-
sztanozs
veterán
HTML kódban is jól jelenik meg, ezek ugyanis html encoded speciális karakterek (még az előző évezredből).
De itt egy frissebb és teljesebb entity lista: [link]
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
banán007
tag
Sziasztok!
Tudnátok pár olvasmányt, könyvet ajánlani PHP elsajátításához? Lehetőleg friss kiadású, magyar lenne a legjobb, de ha angolul találhatók nagyságrendekkel jobbak akkor természetesen azzal fogok foglalkozni.
-
MODERÁTOR
válasz fordfairlane #18098 üzenetére
PHP5 24 óra!
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
-
fordfairlane
veterán
Ezen kívül még itt van ez is:
Én ugyan nem ismerem, de ránézésre jónak tűnik. Mondjuk kíváncsi lennék egy kezdő véleményére, hogy mennyire találta jónak ezt a könyvet.
x gon' give it to ya
Új hozzászólás Aktív témák
- NBA és kosárlabda topic
- Politika
- Honor Magic5 Pro - kamerák bűvöletében
- Retro teló rajongók OFF topicja
- eBay-es kütyük kis pénzért
- World of Tanks - MMO
- Kerékpárosok, bringások ide!
- Fortnite - Battle Royale & Save the World (PC, XO, PS4, Switch, Mobil)
- SSD kibeszélő
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- AKCIÓ Új Dobozos Macbook Pro dokkoló új ára 70.000 forint
- ThinkPad Hybrid USB -C USB -A Dock 40AF Új ára 80.000 Forint Ingyen szállítás
- Xiaomi Redmi Note 9s 128/6 GB 34.9E !!!
- Új Hp Pavilion 15-eh Fémházas Szuper Laptop 15,6" -30% AMD Ryzen 7 5700U 8Mag 16/1TB FHD MATT
- ATI RADEON RX 480 -8 gb DDR5 256 bit videokártya