- Egérpad topik
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- Androidos fejegységek
- Gaming notebook topik
- Milyen billentyűzetet vegyek?
- HDD vs SSD: Ki nyer 2025-ben? – Tech Percek #4
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Vezeték nélküli fülhallgatók
- AMD Navi Radeon™ RX 9xxx sorozat
- Amlogic S905, S912 processzoros készülékek
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
#68216320 #17999 üzenetére
Nem, nem az a baj vele, hogy nem "hordozható", hanem hogy túl sok mindent akar csinálni az osztályod - éppen ahogy j0k3r! írta, és tök igaza van -, olyat is, ami nem tartozik az ő hatáskörébe, és hogy idézzem a kollégát, "A te esetedben a User osztálynak csak annyi dolga kellene, hogy legyen, hogy egy ilyen entitást leírjon". Tehát ha van egy felhasználó osztályod, akkor az írjon le felhasználóra vonatkozó attribútumokat (milyen tulajdonságai vannak) és műveleteket (miket tud a felhasználó csinálni), de ne lehessen vele tök más felhasználókat is szerkesztgetni, törölgetni, hozzáadni, mert az már nem tartozik rá, hogy az adatbázisban milyen egyéb felhasználók vannak, főleg nem szabad itt, hogy azokat még kezelgetni is tudja. Ilyesmire tényleg egy külön osztály való, aki kezeli ezeket az entitásokat egy "magasabb" szinten, és ő tudhat is róla, hogy milyen felhasználók vannak.
-
j0k3r!
őstag
válasz
#68216320 #17997 üzenetére
OOP során egy ökölszabály, hogy egy osztály csakis egy valamiért feleljen ([link])
A te esetedben a User osztálynak csak annyi dolga kellene, hogy legyen, hogy egy ilyen entitást leírjon. Kicsit magyarosan (és csúnyán) fogalmazva a User osztálynak nem kell tudnia arról, hogy ő hogyan van tárolva a háttérben (MySQL, xySQL, stb.), mivel őt mentik el, nem pedig ő ment.
A leírtak alapján valami ilyesmi vonalon indulnék el:
User {
Id
FirstName
LastName
Email
// other properties
getFullName()
// other helper methods
}
SignInManager {
Login(email, password, persistent)
Logout()
}
UserManager {
AddUser(User user)
EditUser(User user)
DeleteUser(userId)
} -
#68216320
törölt tag
válasz
Sk8erPeter #17994 üzenetére
Sk8erPeter, j0k3r!: Köszönöm a válaszokat. Valóban több értelme van a konstruktorban átvenni a paramétert. Ezt fogom csinálni.
j0k3r!: Nem igazán értem miért hiba az AddUser metódus. Picit kifejtenéd? Kerülnének bele public AddUser, LoginUser, LogoutUser, ModifyUser, DeleteUser, InfoUser és még fene tudja milyen metódusok. Ez így hibás felépítés lenne?
-
válasz
Sk8erPeter #17994 üzenetére
Tudom. De diy nem kell nekem már a mysql.
-
j0k3r!
őstag
válasz
#68216320 #17993 üzenetére
Add át ctor paraméterként, és akkor már sokkal szebb lesz a kód, illetve egy fontos programozási (OOP) alapelv is teljesülni fog: [link]
Miért van a User osztálynak AddUser metódusa? Ezt inkább valami User/AccountManager jellegű osztályba tenném. Szerintem ezt gondold át még egyszer
-
Sk8erPeter
nagyúr
válasz
#68216320 #17993 üzenetére
Ez így tényleg ronda, eleve kerülendő globális változókat használni, de miért nem passzolod át egyszerűen akár a konstruktorban, akár valamelyik metódus paramétereként a szükséges változót?
(#17989) mobal:
Jól hangzik elméletben, de a szolgáltatók többségénél még mindig nem MariaDB van, hanem MySQL. -
#68216320
törölt tag
Pici segítségre volna szükségem. Hogyan kellene szépen megoldanom, hogy a $sqlConnect kapcsolatot az osztályon belül elérhessem, ha azt azon kívül példányosítom? Valami ilyesmi van:
class Valami() {
// itt használnám a $sqlConnect kapcsolatot
$sqlQuery = 'valami INSERT INTO';
$stmt = $sqlConnect->prepare($sqlQuery);
...
}
try {
$sqlConnect = new PDO('mysql:host=localhost;dbname=valami;charset=utf8', 'sqluser', 'sqlpass');
$sqlConnect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sqlConnect->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
} catch(PDOException $ex) {
echo "An Error occured!";
} -
martin66
senior tag
Sziasztok,
Keresek egy programozót, aki képes egy php alapú WordPress plugint átalakítani minimálisan.
A jelentkezést privátban várom, a feladatot is privátban mondom meg. (Természetesen, a módosítás költségét fizetem.) -
Zedz
addikt
válasz
Sk8erPeter #17988 üzenetére
A sok kontár kóddal sajnos tényleg nem lehet mit kezdeni, de ha jól tudom akkor már a CodeIgniter is tudja, hogy csak át kell írni valahol milyen DB-vel dolgozzon, a query builder pedig elintézi a többit. És ez még csak nem is ORM.
-
válasz
Sk8erPeter #17984 üzenetére
Hát mert ha mysql-t akar, azért legyen mária. Semmit nem fog észrevenni, csak lesz egy "jobb" db engine alatta. Hosztnál is az van használatban - gondolom.
De felőlem legyen postgresql, az is jó!
Speeedfire: ismerem az Oracle-t, az elmúlt fél évben elég sokat használatam, előtte MSSQL. Ez is mind jó.
-
Sk8erPeter
nagyúr
Elméletileg nem, aztán a gyakorlat lehet, hogy adott esetben mást mutat, de ha még jobb esetekben nincs is probléma az átállással, gondolj bele, a weben fent lévő cuccok közül vajon hány készülhetett olyan módon, hogy ott nem jelent gondot egy komolyabb váltás... hát olyanokból arányaiban elég "kevés" lehet (a nagy többséghez képest).
-
Zedz
addikt
válasz
Sk8erPeter #17986 üzenetére
Egy jó keretrendszerben a DB átállás nem igazán kellene, hogy fájdalmat okozzon, nem?
-
Sk8erPeter
nagyúr
válasz
Speeedfire #17985 üzenetére
Végül is a MariaDB sem ismert a "kommersz körökben", akármi legyen is az.
A hostingcégek többsége még mindig a MySQL-t nyomatja érthető módon, mivel pl. a szintén népszerű PHP-alkalmazások többsége is erre alapoz, ez az örökség még elég sokáig fent fog maradni, nehéz elképzelni hirtelen váltást, mert így menne a kukába az összes régi webes cucc is, ami MySQL-re épített. Ha viszont alternatívák után kell nézni, akkor a PostgreSQL elég népszerű, az nem valószínű, hogy ennél a MariaDB népszerűbb lenne, főleg már csak amiatt sem lehet az, mert utóbbi JÓVAL újabb, a PostgreSQL-re rengeteg alkalmazás épül. Persze abban igazad van, hogy valószínűleg kevésbé fájdalmas az átállás MariaDB-re MySQL-ről, mint pl. PostgreSQL-re, gondolom erre gondoltál.
-
Speeedfire
félisten
válasz
Sk8erPeter #17984 üzenetére
Pont amiatt.
Mysql-t szinte "mindenki" ismeri. Míg a postgresql, oracle, microsoft sql nem annyira népszerű kommersz körökben. -
Sk8erPeter
nagyúr
válasz
Speeedfire #17983 üzenetére
Nem azt kérdeztem, hogy miért MariaDB a MySQL helyett, mert az értelemszerű, hogy "jobb", azt kérdeztem, miért pont MariaDB, miért nem mondjuk PostgreSQL (vagy más). De pont ezt így le is írtam.
"Mármint MySQL oké, hogy nem, csak miért MariaDB, miért nem PostgreSQL, vagy ilyesmi"
-
Speeedfire
félisten
válasz
Sk8erPeter #17982 üzenetére
Gyorsabb a mariadb, mint a "sima" mysql. És minden funkció benne van (kis késéssel), ami a mysql-ben is.
-
Sk8erPeter
nagyúr
válasz
GGAllin #17974 üzenetére
"Linux(Xubuntu) alól akarom futtatni a Wamp Servert de valami nem jó"
Jaja, az eléggé nem jó, hogy Windows-cuccot akarsz Linuxra erőltetni, olyat, aminek ráadásul tökéletes alternatívái vannak Linux-oldalon. Érdekelne, hogy mi az oka?Egyébként a Wine-emulációk még mindig nagyon korlátosak, még ha egész sok Windows-progi fut is így Linuxon, az esetek többségében tapasztalható valamiféle hiányosság. Persze nem is elvárható, hogy minden menjen.
(#17979) mobal:
Miért épp az?Mármint MySQL oké, hogy nem, csak miért MariaDB, miért nem PostgreSQL, vagy ilyesmi.
Azért, mert újabb, vagy csak mert MySQL-utód, vagy van valami egyéb oka, pl. szakmai vagy simán ízlésbeli szempontok? (Csak kíváncsi vagyok, félre ne értsd, nem azért kérdezem, hogy aztán vitatkozzak, hogy hádepedignemis, csak érdekel.
)
-
válasz
Speeedfire #17978 üzenetére
mysql5 mariadb
-
GGAllin
tag
Sziasztok!
Linux(Xubuntu) alól akarom futtatni a Wamp Servert de valami nem jó, tudom hogy ez nem pont az a fórum, de a Wamp Server topikja elég üres azért írok ide.
Feltelepítettem (már többször is) de mégsem tudom elindítani, a tálca ikon narancssárga, azt írja hogy a szerver online viszont az alap index.php-t sem érem el a localhost-on. Ha ki akarom kapcsolni vagy újraindítani akkor pedig ezt a hibaüzenetet kapom, mi lehet a probléma?Köszi előre is!
-
adatfalo
senior tag
Hello!
Wordpress-hez keresnék plugin fejlesztőt, akit érdekelne az kérem írjon rám privátban. A wordpress fórumban már nagyon-nagy vonalakbankifejtettem.
Előre is köszi!
-
mr.nagy
tag
Gyakorlatilag semennyi ideig csak míg a másik lap feldolgozza. Az igazság, hogy PDF-et akarok generálni.
Eddig ezt jól csak úgy tudtam megoldani, hogy az ürlap.php-val bekérem a felhasználótól a szükséges adatot, ezt eltárolom session-ba. Ezt követően a pdf.php fájlt meghívom, amiben rögzítve van, hogy a print.php-ból generáljon PDF fájlt. A print.php a session-ban tárolt adatokat kiegészíti SQL-ről további adatokkal és ezeket formázva kapom a nyomtatási kinézetet.
Ez a pdf.php tartama:
<?php
include("tools/mpdf.php");
ob_start();
include "print.php";
$template = ob_get_contents();
ob_end_clean();
$mpdf=new mPDF('','A4','','',32,25,27,25,16,13,'L');
$mpdf->WriteHTML($template);
$mpdf->Output('MyPDF.pdf', 'D');
?> -
mr.nagy
tag
válasz
Speeedfire #17967 üzenetére
Köszönöm! Most be vagyok havazva mással, de később kipróbálom.
-
mr.nagy
tag
Sziasztok!
Egy dinamikus ürlapon az alábbi kód van:
<input name="cikk[]" type="text" multiple="multiple" />Ezt PHP-ban a következő módon dolgozom fel jelenleg:
$cikk = $_POST['cikk'];
for($i=0; $i<count($cikk); $i++)
{ .......Az ürlap eredményét hogyan tudnám session-ba tárolni, hogy egy másik php-s oldalon így tudjam feldolgozni?
-
válasz
Sk8erPeter #17963 üzenetére
Konkrét kérdés, mennyire gyors!
-
PHP7-et valaki már próbálta?
-
The DJ
addikt
A fene vigye el, addig csesztettem, hogy jó lett. Persze nem OsolCaptcha és nem is Recaptcha lett
Végül a SecurityImages komponens/plugin 5.1.2-es verziója lett a nyerő (ne tudjátok meg mennyit kellett túrni a netet utána). Persze települni nem akart, mindig elszállt MySQL hibával. Fogtam a fejem, mire kiderült, hogy a telepítő SQL fájljaiban kellett átírnom a "TYPE=MyISAM" részt "ENGINE=MyISAM"-re. Ezután felment gond nélkül, konfigolni is tudtam, meg is jelent, validált is, még választani is tudtam, hogy melyik captcha-t használja a 4 beépített plugin közül.
Innen már csak fél órát szívtam azzal, hogy rájöjjek miért tilt le 10 frissítés után, de most végre működik.
Remélem többet nem látok Joomla 1.5-öt (ó, dehogynem fogok...)
-
The DJ
addikt
válasz
Sk8erPeter #17958 üzenetére
Jó ötlet, köszönöm, megpróbálkozom ott is.
-
Sk8erPeter
nagyúr
válasz
The DJ #17957 üzenetére
Én a helyedben megkérdezném itt:
Joomla Stack Exchange
http://joomla.stackexchange.com/
Biztos vannak olyan arcok, akik még ilyen ősrégi fosokhoz is értenek, mint az 1.5-ös Joomla. Vagy érdemibbet tudnak mondani, mert ahogy elnéztem az itt aktív közösséget, senki nem ért a Joomlához (és ez javukra legyen mondva).
-
The DJ
addikt
válasz
cidalain #17956 üzenetére
Próbáltam, sajnos nem jó. Az URL-ben folyamatosan ennyi látszik a checkout alatt: index.php?page=checkout.index&option=com_virtuemart&Itemid=33&redirected=1&Itemid=33
Tehát nem navigál el a checkout.index-ről, itt viszi végig az egészet, ezért ha átírom meg se jelenik a captcha.
Köszönöm azért, hogy próbálsz segíteni
Nem tudok sehogy belehackelni egy recaptcha-t? Ezerszer sikerült már betennem "sima" PHP-s oldalakba, de itt nem tudom hol validál ez a nyamvadt form és így nem is tudom hova kellene illesztenem a recaptcha ide vonatkozó részét.
-
cidalain
veterán
válasz
The DJ #17955 üzenetére
Fuu ez kxxva kaotikus igy estefele. Na tobbek kozott ezert ruhellem a keretrendszereket. Mert olyan megrendelo jincs aki ne akarna belenyulkaltatni a kodba. Aztan lesznek azbilyen katyvaszok. Jo esetben csak 5 kulonbozo programozo takolt bele
Van viszont checkout.registration. kiprobalhatod a szkripted hogyha az elso sorba azt irod hogy page=checkout.registration.
Ebbe atirni, vagy mittudomen. Ez vaktaban lovoldozes reszemrol, ne vedd ugy hogy ertek hozza
<?php
$this->enabledForms['Virtuemart Registration Form'] = array('requestVars' => 'option=com_virtuemart&page=checkout.index',
'formName' =>"adminForm",
'ignore_condition' => 'task=logout',
'tagToPlaceCaptchaBefore' =>'<input type="submit"',
'verifyOnVars' =>'option=com_virtuemart&func=shopperadd',
'redirectOnfailure' =>JURI::base()."?page=checkout.index&option=com_virtuemart" ,//JFactory::getURI()->toString(),
'skipAJAXVerification' => false,
'isVertical' => false,
) ;
?> -
The DJ
addikt
válasz
cidalain #17954 üzenetére
Itt is van a login_registration.tpl.php: [link]
Viszont látom, hogy ez kevés lesz, úgyhogy itt a checkout_register_form.php is: [link]
Ebbe hackeltem bele alulra a kódot, hogy megjelenjen a captcha, meg is jelent a megfelelő helyen, csak nem működött.
Van is itt egy </form> zárás, de fogalmam nincs hol nyitja meg.
-
cidalain
veterán
válasz
The DJ #17951 üzenetére
Persze azt lattam hogy tpl-ek vannak de nem volt meg a regisztracio tpl-je.
De mar megvan, abba a teljesbe amit utobb kuldtel:
checkout/login_registration.tpl.phpEz az erdekes, hogy itt mi van, mert neked ebbe a tpl-be kellene valahogy belegyurni a captcha kodolos szart
Pontosabban az ebben levo regisztracio urlaphoz kellene kapcsolni.
Siman kellene benne lenninvalami formnak, es annak mas neve kell hogy legyen, nem adminForm
Fel tudod tenni mutiba ezt a tpl fajlt? -
The DJ
addikt
válasz
Sk8erPeter #17952 üzenetére
Én áttúrtam a neten, kipróbáltam legalább 5 különböző plugint, de csak arra elment 2-3 óra, hogy egyáltalán levadásszam őket, mivel ma már sehol sem találni 1.5-höz plugint vagy komponenst. Ez az egy volt, ami működött. Ennek is vannak beállításai, lehet ki/bekapcsolgatni ezt azt (megjelenjen-e a Joomla 1.5 regisztráció alatt, jelszóemlékeztetőkor, stb.), de Virtuemart-ra vonatkozó dolgokat pont nem. Van az osolcaptcha.php mellett egy "nonCoreForms" nevű mappa, abban pedig a "virtuemart.php" fájl (ennek másoltam be a kódját az első üzenetemben), ez az, ami a Virtuemart-os Captcha megjelenítéséért felel. Ha a PHP-t törlöm vagy átnevezem, akkor nem is jelenik meg Virtuemart alatt a Captcha egyáltalán.
Azt még kifelejtettem, hogy elvileg meg lehetne hívni a captcha-t PHP-val is, ezt írja a plugin, de ez se működik. Azaz működik, beilleszti a képet és a field-et, de nem validál, akár kitöltöm, akár nem továbbenged. Pedig ez lett volna a másik ötletem a problémám megoldására.
For adding captcha in other forms
Just put
<?php
global $mainframe;
//set the argument below to true if you need to show vertically( 3 cells one below the other)
$mainframe->triggerEvent('onShowOSOLCaptcha', array(false));
?>
in the HTML of the form where you want the captcha to showBetettem a regisztrációs űrlap aljára kézzel, megjelent, de ha nem írtam be semmit akkor is sikeres volt a regisztráció
-
-
The DJ
addikt
válasz
cidalain #17950 üzenetére
Beteszem az egész checkout.index.php-t, biztos, hogy ez a form az, ami felelős érte: [link]
Tehát beteszel valamit a kosárba, rögtön felajánlja, hogy lépj be a folytatáshoz (rádiógomb), vagy regisztrálj, ha még nincs fiókod (másik rádiógomb). Ha a regisztrációra mész, akkor megjelenik maga a regisztrációs űrlap, az alján már a captcha-val. Ha kitöltöd a formot, akkor átdob a következő szekcióra, ami már a szállítási cím kiválasztása, de ott is ott van alul a capthca, mivel ez is az "adminForm" nevű formban van.
Ez a rész az, ahonnan kezdődik a kódban a form:
$basket_html .= '<form action="'. $sess->url( SECUREURL."index.php?page=".$next_page."&checkout_last_step=".$current_stage) .'" method="post" name="adminForm">
És ha figyeled, akkor látod, hogy csak legalul zárja a formot, közben pedig hívogatja be az egyes szekciókat a tpl.php fájlokból.
-
cidalain
veterán
-
The DJ
addikt
Sziasztok!
Lenne egy PHP-s gondom, sajnos én ehhez kevés vagyok, de hátha valaki tudna segíteni. Elmagyarázni se biztos, hogy egyszerű lesz, de megpróbálom.
Adott egy Joomla 1.5-re épülő weboldal, ami alapvetően egy webshop Virtuemart-ra épülve (még az is csak a régi 1.1.6-os verzió). A frissítés sajnos nem opció, mivel rengeteg egyéni funkció került beépítésre az évek során a webshop részbe, szinte minden testre lett már szabva, a sablon is egyedi, stb, tehát azzal kell dolgozni, ami van.
A probléma: Nagyon sok kamu regisztráció érkezik az utóbbi időben, valószínűleg botok. Ezt megakadályozandó szerettem volna beépíteni egy captcha-t a regisztrációs űrlap aljára. Ezer meg egy variációt próbáltam, a lényeg a lényeg, egy működő megoldást találtam, ez pedig egy OsolCaptcha nevű plugin, ami még direkte a Joomla 1.5-höz lett fejlesztve. Feltettem, bekapcsoltam és rögtön meg is jelent a Captcha a Virtuemart regisztrációs form alján, működött is, volt öröm és boldogság... de sajnos van egy hibája a dolognak, mégpedig az, hogy a checkout minden lépésénél ott van alul, tehát nem csak a regisztrációnál, hanem a szállítási cím választásánál, a fizetési opciók kiválasztásánál, a véglegesítésnél, stb, ez pedig minden, csak nem felhasználóbarát. Annyi lenne a lényeg, hogy a regisztrációs űrlap alján megjelenjen, de a további lépéseknél már ne legyen ott. Próbáltam ismerkedni a captcha plugin működésével és rá is jöttem mi alapján dolgozik. Ez a PHP fájl tartalma, ami a Virtuemart-ba illeszti be a captcha-t automatikusan:
<?php
$this->enabledForms['Virtuemart Registration Form'] = array('requestVars' => 'option=com_virtuemart&page=checkout.index',
'formName' =>"adminForm",
'ignore_condition' => 'task=logout',
'tagToPlaceCaptchaBefore' =>'<input type="submit"',
'verifyOnVars' =>'option=com_virtuemart&func=shopperadd',
'redirectOnfailure' =>JURI::base()."?page=checkout.index&option=com_virtuemart" ,//JFactory::getURI()->toString(),
'skipAJAXVerification' => false,
'isVertical' => false,
) ;
?>Tehát az "adminForm" nevű formot keresi meg az oldalon, ott pedig az "<input type="submit"" rész elé helyezi el a captcha-t. Gondoltam sima ügy, megkeresem Virtuemart-ban ezt az "adminForm" részt és átnevezem a regisztrációs űrlap nevét valami másra, majd a captcha fentebb bemásolt kódjában is átírom a form nevét és így csak azon az egy helyen fog megjelenni. Igen ám, de ez nem kivitelezhető, mivel ez a csodálatos Virtuemart mindent egy form alatt futtat, mégpedig ilyen formában: [link] (csak a releváns részt töltöttem fel pastebinre).
Tehát látható, hogy a kosárba rakás után az összes szekció az "adminForm" nevű form alatt fut és PHP-vel hívja be az egyes szekciók tartalmát a rendszer, tehát nem tudom kivitelezni az ötletem.
Biztos nem bonyolult dolog ez, de én nem értek hozzá, úgyhogy hozzátok fordulok. Szóval hogyan lehetne a legegyszerűbben megoldani azt, hogy ez a csodálatos captcha csak a regisztrációs rész alatt jelenjen meg és a többi szekciónál ne?
Köszönöm a segítséget előre is!
-
cidalain
veterán
válasz
martin66 #17945 üzenetére
Szoval akkor
Ha structure = TEMPLATEPATH."/images/"Akkor valahol a TEMPLATEPATH-nak ennek kell legyen beallitva: "zpanel/hostdata/zadmin/public_html/domain/wp-content/plugins/Tevolution/tmplconnector/monetize/templatic-custom_fields/"
Vagy valami nagyon hasonlo.Mert ha nem ez van, akkor te ide varod a mappaletrehozast, de persze az nem ide hozodna letre.
Ha ez valahol van, akkor valami configban lenne, esetleg a wp-load.php-ban.
De egyebkent nagyon gyanus ez, hogy annak esetleg valtozonak kellene lennie.
Probald mar ki hogy eleje irsz egy dollar jelet:
$TEMPLATEPATH (minden elofordulasnal)Vagy probabol kikommenteled a structure = sort, es csinalsz egy masikat:
//$structure = TEMPLATEPATH."/images/";
$structure = "kurvaelet/";Hogy ekkor letrejon e a kurvaelet mappa a php fajl mellett. Ha igen akkor ez nem jog baj
Na jo:
Nem ertelmeztem csak javitottam par dolgot, meg atrendeztem az elso es az utolso sor valtozatlan, ugyhogy ezt a reszt eleg cserelni, minden mas az eredeti.require("../../../../../../wp-load.php");
$uploaddir = $TEMPLATEPATH."/images/tmp/";
if(!is_dir($uploaddir))
{
if (!mkdir($uploaddir, 0777, true))
{
die('Failed to create folders...');
}
}
$nam = $_FILES['uploadfile']['name'];
$upload = ''; -
Sk8erPeter
nagyúr
A file függvény fájlnevet vár első paraméterül, Te pedig a $current változót passzolod át neki, ami a beolvasott fájl tartalmát, meg az ahhoz fűzött további adatokat tartalmazza. Ez így eleve nem lesz jó.
Azt írod, hogy fopen($path), de közben a $path változó értéke nincs beállítva (vagy legalábbis itt nem osztottad meg velünk). Ha a kódodból és hsz.-edből jól vettem le, az eredeti fájlt szeretnéd módosítani úgy, hogy hozzáírsz még adatot, tehát akkor az általad $file-nak nevezett változót kellene átadnod neki. De szerencsésebb lenne ezt inkább $filename-nek elnevezni, hiszen épp csak egy fájlnév, nem a fájlt reprezentáló objektum vagy ilyesmi (tehát félrevezető a név).
Az fopen két paramétert vár, csak egyet adtál meg. Ez a hibaüzenetekből egyértelműen kiderül, ha nincsenek kijelezve a hibaüzenetek, fejlesztés idejéig igazából kötelező (hogy időben észrevedd, meg hogy ne legyen ilyesmi, hogy nem érted, mi van). Mivel csak írni szeretnél a fájlba, passzold át még neki a "w" paramétert.
Aztán a foreach-ben ha jól értem ilyen jó fáradt fejjel, ki akarod szedni a már meglévő sorokat. Na de aztán nem teszed bele igazából azokat az értékeket, amik "újak", csak kiszedsz - tehát pl. egy üres fájlnál nem írsz vissza a fájlba semmit. Így nem meglepő, hogy az egész nem is működik. -
martin66
senior tag
válasz
cidalain #17944 üzenetére
Van annak valami oka hogy van egy structure-od, amihez hozzaadsz egy tmp mappat, majd ugyanez a komplett cucc 6 sorral kesobb egy uploaddir? - Nem tudom, hogy van-e oka, sajnos nem én írtam a plugint, csak életre akarom kelteni.
En az elejere tennem az uploaddirt, es azt hivatkoznam mindenholn a structure-t meg kiszednem a francba. - Nagyon nagy szívesség lenne, ha átalakítanád a php kódot, mivel kiszedtem ezt, akkro meg az errort írja ki:
$structure = TEMPLATEPATH."/images/";
if(!is_dir($structure."tmp"))
{
if (!mkdir($structure."tmp", 0777, true))
{
die('Failed to create folders...');
}
}Masik kerdes:
Mi a TEMPLATEPATH? az images mappa itt van: /var/zpanel/hostdata/zadmin/public_html/domain/wp-content/plugins/Tevolution/tmplconnector/monetize/templatic-custom_fields/imagesA warning uzenet a php helyet jeloli, nem azt ekll irhatova tenned. Hanem ahol az images/tmp mappa van.! - A tmp-nek is az imagesnek mindennek adtam 777-es jogot.
De köszi ám, hogy foglalkozol vele!
-
cidalain
veterán
válasz
martin66 #17940 üzenetére
Van annak valami oka hogy van egy structure-od, amihez hozzaadsz egy tmp mappat, majd ugyanez a komplett cucc 6 sorral kesobb egy uploaddir?
En az elejere tennem az uploaddirt, es azt hivatkoznam mindenhol, a structure-t meg kiszednem a francba.
Masik kerdes:
Mi a TEMPLATEPATH?
A warning uzenet a php helyet jeloli, nem azt kell irhatova tenned. Hanem ahol az images/tmp mappa van.! -
martin66
senior tag
válasz
PumpkinSeed #17941 üzenetére
Sajnos nem, 1 felhasználó van a root és ő a tulaja a fájlnak. Más felhasználó nincs.
-
sqpp
őstag
<?php
$city="Budapest"; // Your city
$country="hu"; // Two digit country code
$url="http://api.openweathermap.org/data/2.5/weather?q=".$city.",".$country."&appid=2de143494c0b295cca9337e1e96b00e0&units=metric";
$json=file_get_contents($url);
$data=json_decode($json,true);
$file = '/home/cs2d/sys/lua/weather.dat';
$current = file_get_contents($file);
$current .= $data['weather'][0]['main']."\n".$data['main']['temp']."\n";
// Write the contents back to the file
$lines = file($current, FILE_IGNORE_NEW_LINES);
$remove = $current;
foreach($lines as $key => $line)
if(stristr($line, $remove)) unset($lines[$key]);
$data = implode('\n', array_values($lines));
$file = fopen($path);
fwrite($file, $data);
fclose($file);
?>Ötlet, hogy mi a gond? A cél az lenne, hogy az adott értéket az időjárásról elmenti a fájlba, de nem új sorba kezdi azt, hanem csak frissíti, viszont nem akar működni úgy, ahogy kéne
-
martin66
senior tag
válasz
cidalain #17925 üzenetére
Szia,
Sajnos újra hiba van, véletlenül letöröltem a plugint és újra fel tettem, de újra a fájl létrehozási gondja van, de már a jövőhétnek is megadtam a 777-es jogod, de így se akar menni. Ötlet?
Logban a hiba:
[08-Dec-2015 14:07:35 UTC] PHP Warning: mkdir(): Permission denied in /var/zpanel/hostdata/zadmin/public_html/domain/wp-content/plugins/Tevolution/tmplconnector/monetize/templatic-custom_fields/drag-uploadfile.php on line 7A php fájlnak 666 jogot adtam és a Tevolution mappától minden mappának 777-es jogot.
A php fáj tartalma.
-
supercow
őstag
válasz
PumpkinSeed #17936 üzenetére
-
sqpp
őstag
Medoo-t valaki használt már?
-
DS39
nagyúr
válasz
trisztan94 #17932 üzenetére
eddig nem ilyen volt, vagy mi a probléma?
-
trisztan94
őstag
-
cidalain
veterán
válasz
PumpkinSeed #17928 üzenetére
Rakontrazok: de a net eleres is hogy menne mar el? Se laba, se farka...
Oke, megyek aludni. -
don_peter
senior tag
válasz
Sk8erPeter #17927 üzenetére
Éjjj, de harapósak vagyunk..
Teljesen igazad van
Cookie maradt, és bejegyzés elküldése után, ha sikerrel jár, akkor törli a tárolt adatot is. -
DNReNTi
őstag
válasz
PumpkinSeed #17928 üzenetére
Aww ne, ez nagyon rossz volt.
No offense.
-
PumpkinSeed
addikt
válasz
Sk8erPeter #17927 üzenetére
A net amúgy se megy el, maximum a net elérés.
-
Sk8erPeter
nagyúr
válasz
don_peter #17917 üzenetére
"Kiíratásnál pedig ezt:
localStorage.getItem("lastname");
Az oldal frissítése után nem ír ki semmit."
És ennek mégis mi a frászért kellene bármit is kiírnia?Nem tároltad el sehova a függvény visszatérési értékét, nem használtad fel sehol... mit vársz, mit kellene tennie ettől a sortól?
Szóval nem, nem jól használod.(#17910) don_peter:
"És igen, megfeledkeztem arról, hogy a PHP az szerveroldali megoldás bár ajax-al nyilván megoldható a textarea kiolvasása, de sokkal jobb és közelibb egy javascript."
Ennek a mondatnak mi értelme van? Az AJAX az Asynchronous JavaScript and XML-ből alkotott mozaikszó, szóval hogy miért választod külön a kettőt, az rejtély. Mi az, hogy "sokkal jobb"? Minél jobb? Mi az, hogy "közelibb"? Mihez képest van közelebb, és az miért lesz bárkinek is jó?Tehát: van a kliensoldali, böngészőfüggő mentés, meg a szerveroldali. Ha nem para, hogy böngészőadatok ürítésekor elvész az addig megírt piszkozat, vagy hogy egyáltalán böngészőfüggő a dolog, tehát nem folytathatja az emberke bárhol az addig megkezdett szövegét, akkor maradhat a kliensoldali tárolás. Ha nem szeretnéd, hogy klienshez, böngészőhöz kötődjön a tartalom, vagy hogy a böngésző oldalspecifikusan tárolt adatainak törlésekor elvesszen a tartalom, akkor küldd el a piszkozatot szerveroldalra, és ott tárold (lásd Gmail-piszkozat). Persze itt azért figyelj rá, hogy ne tudjon kismillió darab piszkozatot tárolgatni a júzer, hogy tömködje feleslegesen piszkozatokkal az adatbázisodat, mármint ha ez gondot jelent.
IP-cím változása hatására nem kell, hogy a session is megszűnjön, erre ismét jó példa a Gmail. Vagy a Drupal is így oldja meg. Nézz utána, hogy kell megoldani.
(#17905), (#17907):
"elmegy a NET"
Akarod mondani net. Ez a szó NEM egy mozaikszó! Nem értem, emberek miért írják csupa nagybetűvel, nem kell. Lásd ezt."COOKIE lehet járható út?"
Akarod mondani cookie. Ez sem mozaikszó."persze mehet egy kis ajax-al is a dolog"
Akarod mondani AJAX.Pont azt nem írod csupa nagybetűvel, amit meg kell?
-
cidalain
veterán
válasz
martin66 #17922 üzenetére
Max filesize 2M kevesnek tunik.
Nem nagyobb veletlenul a kepfajlod mint 2 mega?
Meg az upload_tmp_dir vagy valami hasonlo lehet problema, mert az ideiglenes fajlfeltoltes temp az oda menne (ahonnan aztan a move_uploaded_file fuggyveny atteszi a helyere)
Ha nem akkor passz. -
CSorBA
őstag
válasz
don_peter #17917 üzenetére
Jól, és nálam működik is, konzolból is. De én is javaslom, hogy fáradj át vagy a Weblap készítés vagy a JavaScript topic-ba
-
supercow
őstag
válasz
don_peter #17917 üzenetére
Nézd meg pl a jstorage.info-t szerintem egy egyszerűen használható eszköz, de ez már inkább JS nem PHP. Én már használtam űrlap-adatok offline tárolására, képekkel, mindennel.
-
don_peter
senior tag
válasz
CSorBA #17913 üzenetére
Már meg írtam a cookie változatot, de sajna a sortörésekkel gondja van. Csak az első sortörésig hajlandó működni.
Ez a sessionStorage kötődik a session munkamenethez?
Mert ebben az esetben lehet nem lesz jó.
Ha jól sejtem, akkor ez a böngésző bezárásáig fog élni, vagy is meg is válaszoltam a kérdésemet? -
martin66
senior tag
Sziasztok,
Egy kis segítséget kérnék tőletek. Van egy VPS szerverem én magam tettem fel egy ubuntu 14-es szervert, rá az apache2 és felraktam egy WP honlapot. De van egy kis gondom valamit nem állítottam be a szerveren, de nem tudom mit.
A hiba:
Nem működik, a behuzogatós képfeltöltés, illetve a tallózás. De ugyanez a téma, fájlok és pluginekkel tökéletesen megy egy másik, de az tárhelyszolgáltatónál vásárolt tárhelyen.
Kérlek, adjatok tippet, hogy mi lehet a baj a szerverem beállításaiban.Itt érhető el a form: oldal. (free és alul a kép feltöltés).
Sajnos nem jöttem rá, hogy miért írja ki az error-t. Talán a full php kód segít nektek. Előre is köszi: -
CSorBA
őstag
Ne akarjunk cookieban tárolni ideiglenesen se nagyobb szöveget, mikor erre kifejezetten alkalmas pl a sessionStorage és localStorage.
-
supercow
őstag
válasz
don_peter #17910 üzenetére
Browser cookie limits
Meglepően sok adatot enged sütiben tárolni, sok KB szöveg is elfér. -
don_peter
senior tag
válasz
PumpkinSeed #17908 üzenetére
A gond most pont az, hogy vannak olyan helyek ahonnan olvassák a fórumot, ahol a saját rendszereik 15 percenként a titkosítások miatt cserélik az IP címüket.
Ezzel elhasal a munkamenet, és az IP azonosítás.És igen, megfeledkeztem arról, hogy a PHP az szerveroldali megoldás bár ajax-al nyilván megoldható a textarea kiolvasása, de sokkal jobb és közelibb egy javascript.
A kukik, képesek egy nagyobb akár több ezres karakternyi szöveget tárolni?
Mert akkor ez lesz a jó megoldás.Legvégső esetben az adatbázisos kulcsos megoldás is jó lesz..
-
cidalain
veterán
válasz
PumpkinSeed #17908 üzenetére
Persze, nyilvan ajaxos autosave adatbazisba esetre gondoltam.
-
PumpkinSeed
addikt
válasz
cidalain #17906 üzenetére
"...de az meg javascript szerintem."
Valószínűleg minden esetben JS lesz mert a PHP nem tudja kiolvasni a textarea értékét. Amúgy meg az járható út szerintem, hogy egy unique kulcs cookie-ban tárolása vagy session-ben ha nem több napra áll le az internet, és akkor az kulcs alapján egy táblába menteni az adatokat.
-
don_peter
senior tag
válasz
cidalain #17906 üzenetére
Igen én is tudom, hogy a copy a jó megoldás, de akkor is, kellene egy kényelmesebb.
A bejegyzés írása bejelétkezést igényel.
PHP-be kérdeztem, hátha, de persze mehet egy kis ajax-al is a dolog, de nyilván itt kellene a szerver, na de mi van ha nincs NET?COOKIE lehet járható út?
Ott lehet szöveget menteni?A COOKIE-k feltöltését én PHP-ben csinálom, de eddig csak számokat mentettem, lehet nagyobb szöveget is?
Nincs ennek valami korlátja? -
cidalain
veterán
válasz
don_peter #17905 üzenetére
Ez szerintem nem php jellegu kerdes.
Hacsaknem bejelentkezeshez kotott az iras, mert akkor lehetne a profiljanak adattablajaba valahova elmentegetni a cuccost.Egyeb esetben nem jarhato a szerverre mentes (ip azonositas nem jo, mert ugye ahogy irod valtozhat. Munkamenet azonositas szinten kiesik)
Lokalis mentes sutiben jarhato lehet, de az meg javascript szerintem.
Mindenkepp fajl alapon mentenem, memoria nem jo pc restart eseten (pl aramszunet)Egyebkent minden ertelmes ember kopizgatja ha hosszut ir. Sot a blog.hu megtanitott arra is hogy elkuldes gomb megnyomasa elott is csinaljak egy ctrl+c nyomast.
-
don_peter
senior tag
Hölgyek, Urak!
Készített már valaki itt olyan kis kódot ami egy fórum mondjuk textarea szövegdobozba beírt szöveget kb félpercenként vagy percenkét elmenti egy valami külső fájlba vagy memóriába?
Vannak olyan esetek amikor egy bejegyzés bármilyen okból kifolyólag akár több 10percet is igénybe vehet míg a felhasználó végre elküldi.
Ha előfordul ez idő alatt egy IP cím frissítés vagy csak elmegy a NET, és eközben küldené el a felhasználó a bejegyzését, akkor a szöveg is elveszik.
Ennek kiküszöbölésere vagy is a szöveg mentésére keresek megoldást.
Előre is köszi az iránymutatásokat. -
Sk8erPeter
nagyúr
válasz
PowerBuldog #17903 üzenetére
Hát ez aztán rettentően értelmes feladat, ha tényleg azt kellett csinálni, hogy be kell olvasni egy XML-fájl tartalmát DOMDocumenttel, aztán úgy, hogy SEMMIT nem csináltál vele, csak simán kiíratni a tartalmat...
Remélem, csak Te értettél félre valamit, és nem ilyen retardált feladatot kaptál.
Mellesleg ez szinte semmiben nem különbözik a korábbitól, mi a frász értelme van ennek, hogy most csak annyit változtattál, hogy másképpen olvasod be, és beállítasz egy fejlécet is (mellesleg helyes, hogy beállítod)?Amúgy korábban nem véletlenül tanácsolta neked fordfairlane, hogy ellenőrizd már azt a nyomorult query stringet, hogy azonbelül az elvárt bemeneti paramétert megkapod-e egyáltalán...
-
PowerBuldog
veterán
Elég bután van megfogalmazva, nekem se teljesen világos.
De most ezzel elvileg szépen tudom kirakni az xml-t.<?php
header("Content-type: text/xml; charset=utf-8");
$filename = "order_id-";
$filename .= $_GET['order_id'];
$filename .= ".xml";
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->load($filename);
print $doc->saveXML();
?> -
cidalain
veterán
válasz
fordfairlane #17901 üzenetére
ja. szerintem is hiányzik valami infó.
Új hozzászólás Aktív témák
Hirdetés
- Bomba ár! Lenovo ThinkPad T495 - AMD Ryzen PRO 7 I 16GB I 256GB SSD I 14" FHD I Cam I W11 I Gari!
- Bomba ár! Lenovo X1 Yoga 3rd - i5-8GEN I 8GB I 256GB SSD I 14" FHD Touch I W11 I CAM I Garancia!
- Giant Talon 0 Sport - Hardtail Mountain Bike
- LG 40WP95XP-W - 40" NANO IPS - 5120x2160 5K - 72Hz 5ms - TB 4.0 - HDR - AMD FreeSync
- Lenovo IdeaPad 3 15IAU7 garancia 109990
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest