- Megvan, milyen chipet használ a Pura 80 Ultra
- Bemutatkozott a Poco X7 és X7 Pro
- Nem várt platformon a OnePlus Nord 5
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen okostelefont vegyek?
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Honor 400 Pro - gép a képben
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- One mobilszolgáltatások
- Milyen GPS-t vegyek?
Új hozzászólás Aktív témák
-
-
Belebotlottam még egy problémába.
Az egyik json fájlom így néz ki:
[
{
"name": "Philip",
"age": 18,
"likes": ["sport cars", "football", "tennis", "women"]
}
]A gond ott van, hogy mikor ezt írom és adom hozzá az adatokat PHP-ben, akkor a következő lesz a végeredmény:
[
{
"name": "Philip",
"age": 18,
"likes": ["\"sport cars\", \"football\", \"tennis\", \"women\""]
}
]Érdekes, hogy nem jelzi hibásnak a kapott eredmény a fejlesztői környezet, azonban hibás. Ugyanis az első esetében működik az alábbi lekérdezés:
data[0].likes[2]
= tennis, de a másodiknál már nem.Meg lehet oldani, hogy az első példában szereplő eredményt dobja vissza?
-
-
Sziasztok!
Ezen forrás szerint írtam meg egy rutint, mely json fájlt képes szerkeszteni. A baj csak a végeredménnyel van.
Az nem érdekel, hogy kiveszi a sortöréseket, nincs enter opció és a többi.
Az viszont igen, hogy nem hajlandó UTF-8 kódolásra, így minden ékezetes karakter helyett egy kódsor lesz, másfelől az összes "/" jelet átalakítja "\/"-re.Létezik erre megoldás?
Előre is köszönöm
-
Fundiego
tag
Sziasztok,
Munkát szeretnék ajánlani egy programozónak.
Wordpressben kéne belenyúlni egy pluginba
2 lehetőség közül kellene megcsinálni az egyiket:
- 1-es opció: wpdiscuz pluginban beleintegrálni a quote comment plugint
- 2-es opció: wpdiscuz pluginba azt kéne megoldani, hogy a reply comment ne nested elrendezés során kerüljön ki, hanem újként mintha valaki csak új kommentet írt volna.
Ha valakit érdekelne a munka, kérem írjon rám pm-ben.
Köszönöm -
-
sztanozs
veterán
Minden egyes kattintás külön lekérés az oldalra külön adatokkal. A HTTP alapból állapotmentes, tehát a szerver nem tudja, hogy ez hányadik lekérés, és hogy az oldalnak (vagy a szervernek) mi volt az előző állapota. Alapból még azt sem tuja, hogy te ugyanaz a kliens volt, mint akit az előző kéréssel kiszolgált. Ezeket neked minden alkalommal a szerver tudtára kell adni, pl:
- a korábbi állapotot hidden mezőbe belerakva, amit mindenden lekérésnél ellenőrzöl
- session azonosítót átadva (cookie vagy hidden field), és a szerver kliensenként tárolja az előző álapotot és az alapján szolgálja ki a következőt -
válasz
sztanozs #20988 üzenetére
Az tiszta sor, hogy nem fogja látni és éppen ez a lényeg.
A művelet vége az lenne, hogy ha minden adat bekerült (text & num input-ok), be van pipálva a megfelelő bepipálandó és ki van választva legördülőről a kívánt, akkor az összes beviteli eredmény szerinti kód fut le. Az a kód pedig egy (vagy több), a szerveren lévő fájlt szerkeszt. Többnyire JSON-t. Ezért is választottam a PHP-t, mint kódot.Szóval, hogy rövidre zárjuk a dolgokat: A kliens azt látja a második PHP lefutása után a Submit-et követően, hogy lefrissül az oldal. Azonban, a beküldött kódjaimat tekintve szerver oldalon végrehajtódik a művelet, igaz?
Ha igen, akkor nincs további kérdésem. Ha nem, akkor miért nem?(A végrehajtott művelet alatt értsd: Az echo helyett pl egy txt fájl szerkesztése van)
Ui.: Jelenleg nem tudom letesztelni, ezért kérdezem, hogy ha mégsem jó, akkor mire a tesztig eljutnék, legyen egy konkrétum. Köszönöm!
-
válasz
disy68 #20983 üzenetére
Értem, köszönöm a tájékoztatást. És azt hogyan tudom megcsinálni, hogy a másodiknál ne indítson a szerver felé semmit, ameddig nem fut le az adott kód?
Pl ha az első PHP kódban használok egy echo-t, akkor az megjelenik az include-olt form-al együtt. De ha a másodikba, akkor nem tudom, hogy lefut-e, mert ugye újratölti. Ha ott is működik jelenleg az echo (mint a beküldött példában), azt hol tudom így leellenőrizni? -
disy68
aktív tag
a form submit tölti újra az oldalt
1. van egy login formod, aminél a submit indít egy post http request-et a szerver felé, amire az válaszol => page reload
2. betölt egy újabb form, aminél a submit megintcsak indít egy post http request-et a szerver felé, amit az feldolgoz és megint válaszol => page reload
3. betölt a válasz -
-
Mike
veterán
válasz
Prog-Szerv #20975 üzenetére
mondanám hogy kevés a memória, de a var_dump esetén is? hm
milyen eredményt ad a rowCount? -
Hogy példával éljek:
Alap HTML kód:
<form method ='post'>
<input placeholder='Felhasználónév' name='user'>
<input placeholder='Jelszó' name='password' type='password'>
<input type='submit' name='signin' value='Bejelentkezés'>
</form>Első PHP:
<?php
if(isset($_POST['signin']))
{
$user = $_POST['user'];
$password = $_POST['password'];
$trueuser = "user";
$truepassword = "password";
if ($user == $trueuser && $password == $truepassword)
{
include 'code.php';
}
}
?>Code.php:
<form method="post" class="phaseone">
<select name="category" class="categoryselect">
<option <?php isset($_POST['category']) && $_POST['category'] == 0 ?> value="0">0</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 1 ?> value="1">1</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 2 ?> value="2">2</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 3 ?> value="3">3</option>
</select>
<input type="checkbox" id="phase113" name="phase113" disabled <?php isset($_POST['phase113']) && $_POST['phase113'] ?>>
<button id="phase114" name="phase114" disabled>Közzététel</button>
</form>Második PHP:
<?php
if(isset($_POST['phase113']) && isset($_POST['phase114'])){
switch($_POST['category'])
{
case '3':
echo '3';
break;
case '2':
echo '2';
break;
case '1':
echo '1';
break;
case '0':
echo '0';
}
}
?> -
válasz
sztanozs #20977 üzenetére
Éppen ezaz. Én nem töltök vissza semmit.
Az első PHP kódnak kell behívnia és megjelenitenie azt a tartalmat, amely tartalmazza a többi gombot.
Ám a többi gomb programja lehetne annyi is, hogy console.log-ban küld egy üzenetet, de nem ez történik, hanem újratölti az oldalt.
Ha manuálisan külön veszem a két kódot, akkor az utóbbi működik. De ha előtte van az, aminek előtte kell lennie, akkor már nem. És ezt nem értem.Szerk: Az első verzióban még DIV tartalom módosítás volt, de úgy sem működött, alapból próbaként csináltam include-ot belőle.
-
sztanozs
veterán
Gondolom az eredeti fájlt töltöd vissza és nem állítos be azokat az opciókat, ami alapján az első php a másodikat beinclude-olná, a harmadik meghívásra.
Szvsz egyébként ez nem egy szép módszer, inkább XHR-rel kellene csinálni és az oldal részét dinamikusan változtatni (pl egy DIV tartalmát). -
Sziasztok!
Újabb kérdésem lenne, nem lelem a megfejtést.
Adott egy inputmező, ahol ha minden adat frankó, akkor egy submit gomb lefuttat POST method-al egy PHP kódot, amely behív (include) egy külső fájlt és megjeleníti. Eddig működik minden.
A behívott fájl azonban tartalmaz további opciókat és gombokat, melyek szintén egy-egy PHP kódot futtatnának. Igen ám, csak ha ott rányomok bármely gombra, akkor gyakorlatilag újratölti az oldalt kitörölve a behívott tartalmat és visszaállítva a kezdeti felületet.Ezt mi okozza?
-
Prog-Szerv
csendes tag
Sziasztok!
Olyan kérdésem lenne, hogy PHP PDO-t használok egy oldalon. phpspreadsheet segítségével generálok PDF file-okat és XLS file-okat is az adatbázisban található adatokból. sima select-el kiszűröm az adott projekthez tartozó kellékeket és nincs is gond, pontosabban nem is volt mindeddig. Most bekerült egy olyan projekt amihez 181 sor tartozik és teljesen mindegy, hogy csak simán ki akarom íratni ezeket a sorokat (var_dump) vagy XLS-be akarom tölteni vagy PDF-ba, 140 sornál többet nem hajlandó betölteni. Mintha lenne valahol egy rowlimit beállítva de a programkódon belül biztosan nincs....van valakinek valami ötlete? Lehetséges esetleg hogy a szolgáltató maga (webhosting cég) állított be egy ilyen limitet?
-
Köszönöm mindkettőtöknek. Kis kiegészítés: A disabled csak benne maradt, azt ha úgy van, egy JS feloldja.
Mégegyszer köszönöm -
Voy15
tag
Ha az inputokat a form elemen kívülre teszed akkor az olyan mintha be sem küldenéd.
Ezenkívül a disabled attribútumok szintén megakadályozzák a feldolgozást.
Neked szerintem valami ilyesmi kell:HTML:
<form id="phase119" method="post">
<input type="checkbox" id="phase113" name="phase113" <?php isset($_POST['phase113']) && $_POST['phase113'] ? print 'checked' : '' ?>>
<select name="category" class="categoryselect">
<option <?php isset($_POST['category']) && $_POST['category'] == 0 ? print 'selected' : '' ?> value="0">Nulla</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 1 ? print 'selected' : '' ?> value="1">Egy</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 2 ? print 'selected' : '' ?> value="2">Kettő</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 3 ? print 'selected' : '' ?> value="3">Három</option>
<option <?php isset($_POST['category']) && $_POST['category'] == 4 ? print 'selected' : '' ?> value="4">Négy</option>
</select>
<button id="phase114" name="phase114">Gomb</button>
</form>PHP:
<?php
if(isset($_POST['phase113']) && isset($_POST['phase114'])){
switch($_POST['category']){
case '3':
echo '3';
break;
case '2':
echo '2';
break;
case '1':
echo '1';
break;
case '0':
echo '0';
}
}
?> -
Sziasztok!
Segítséget szeretnék kérni, nem jön össze a dolog.
Lenne az alábbi kódom:<input type="checkbox" id="phase113" name="phase113" checked disabled>
<form id="phase119">
<select name="category" class="categoryselect">
<option value="0">Nulla</option>
<option value="1">Egy</option>
<option value="2">Kettő</option>
<option value="3">Három</option>
<option value="4">Négy</option>
</select>
</form>
<button id="phase114" name="phase114" disabled>Gomb</button>PHP-ban szeretnék egy feltételes kódot futtatni. Az lenne a cél, hogy ha a Checkbox be van pipálva és ki van választva a lenyíló menüből pl a 3-as és rányomunk a gombra, akkor fusson le a kód. Ha más van kiválasztva, akkor más fusson
Az alábbival próbáltam, de nem megy:
if(isset($_POST['phase114'])){
switch($_POST['category']){
case '3':
if(filter_has_var(INPUT_POST,'phase113')) {}
break;
case '2':
break;
case '1':
break;
case '0':
}
}Tud valaki helyes útmutatást nekem?
Előre is köszönöm -
Taci
addikt
válasz
pelyib #20965 üzenetére
The __DIR__ can be used to obtain the current code working directory.
Ezzel az a "baj", hogy más mappákba is be kell "látnom" (hozzáférni fájlokhoz), így nem indulhatok ki mindig az éppen aktuális mappából. Ezért is volt jó a Document_Root, amíg (lokálban) működött.
nem lehet h a script meghiv egy http szervizt es az hasal el?
Van a require_once előtt 3 db direkt változó értékadás, és ennyi az egész szkript, tényleg nincs benne semmi más.
Aztán az azon belül meghívott szkript már millió dolgot csinál, viszont amíg addig eljut, rengeteg kellene logolnia is, de semmi. Ebből gondolom, hogy a belső szkripthez el sem jut, és hogy ezért csak azzal az egy sorral lehet a gond:require_once $_SERVER['DOCUMENT_ROOT'] . "/almappa/php/main.php";
-
Taci
addikt
Segítségre lenne szükségem.
Szolgáltatónál vagyok végre, de szenvedek a cron jobok beállításával. Folyamatosan ezt a hibát kapom:
Status: 500 Internal Server Error
Content-type: text/html; charset=UTF-8A php fájl amit meghívok, tartalmaz egy hívást egy másik php fájlra. És ahogy utánanéztem, talán itt hibázhat, mert amíg ez lokál szerveren tökéletesen működött, a szolgáltatónál ez talán már máshova mutat, vagy eleve nincs értéke a $_SERVER-nek sem:
require_once $_SERVER['DOCUMENT_ROOT'] . "/almappa/php/main.php";
Próbáltam visszakövetni, itt mi a document root, és kicseréltem rá, erre:
require_once "/home/sitename/public_html/almappa/php/main.php";
De így is ugyanazt a hibát kapom.
Ez lehet a hiba egyáltalán? Mert meghívni így hívom amúgy cron-ból:
php /home/sitename/public_html/almappa/php/elso.php
(az időt érintő részeket nem másoltam be, nem releváns, kattintgatva van amúgy is cPanelben).Hogyan lehet ezt működésre bírni? Sajnos nem jutok előrébb.
Hogyan tudom belinkelni a szükséges fájlokat? (már ha ez a baja egyáltalán)
Köszi. -
Üdvözlet!
Kérnék egy kis segítséget, biztonságtechnikailag.
Készítettem egy egyedi beléptetőrendszert, szigorúan PHP és JS alkalmazásával. Megadom a tesztoldal linkjét, az lenne a kérésem a hozzá értőkhöz, hogy próbálják ki, feltörhető-e. Ha sikerül, akkor egy Sikeres belejentkezés alert jelenik meg.Előre is köszönöm a visszajelzéseket!
-
-
Taci
addikt
A PHP szerver oldalon fut, nem tud kliens oldalon csinálni semmit. A kliens oldalról kell adatot "várni" a szerver oldal felől. Tehát a PHP kód, amit a Submit aktivál, annak a visszatérési értékét kell, hogy kiértékelje a kliens a JS segítségével, és annak függvényében tudod a HTML tartalmát változtatni.
A Submit-tel triggerel valamit az oldalad a szerver (PHP) irányába. A PHP kód lefut, és visszaad egy általad megadott értéket, amivel kliens oldalon a JS-tel dolgozni tudsz tovább.
Én erre az Axios-t használom:axios.get("sajat_kodod.php?v=" + js_oldalrol_atadott_valtozo)
.then(function (response) {
// handle success
console.log(response);
})
.catch(function (error) {
// handle error
console.log(error);
})
.then(function () {
// always executed
});
})
És itt a response-ban lesz a PHP kód által visszaadott érték.
-
-
Sziasztok!
Nem nagyon vagyok jártas a PHP kódokban, csak annyit tudok, mint amire szükségem van
Azonban keresem a választ egy kérdésre. Ha használunk pl egy ECHO parancsot, akkor az abban a (pl) DIV-ben hajtódik végre, ahol a kód tartózkodik. Azonban, ez hozzáadás. Van-e arra mód, hogy törölje a tartalmat?
JS-ben egyszerű, elég egy valami.innerHTML = ""; parancsot alkalmazni, de ez kivitelezhető PHP-val is?Előre is köszönöm!
-
-
Taci
addikt
Abban tudnátok esetleg segíteni, hogy ha a
get_headers
és agetimagesize
sem ad visszacontent-length
-et, akkor a "maradék" adatból hogyan lehet kiszámítani hozzávetőlegesen pontosan a fájl (kép) méretét?Pl. ezekből:
[0] => 800
[1] => 600
[2] => 2 (IMAGETYPE_GIF, IMAGETYPE_JPEG, IMAGETYPE_PNG or IMAGETYPE_BMP)
[3] => width="800" height="600"
[bits] => 8
[channels] => 3 (3 for RGB or 4 for CMYK)
[mime] => image/jpegEnnek a képnek a mérete 114077 bájt a valóságban.
Úgy indultam neki, hogy (szélesség * magasság * bitmélység) / 8. De ez 480000.
Eloszthatnám 4-gyel, akkor nagyon közel lennék (a többi képfájnál is), de egyrészt sehol nincs 4, másrészt miért is osztanék vakon akármennyivel is?Nyilván ebbe beleszól a tömörítés típusa is, a színtartomány is, de azokat sem tudom alkalmazni.
Arra gondoltam még, hogy letöltöm a fájlt ideiglenesen, aztán a
filesize
-zal lekérdezem a méretét, és törlöm. De ez így eléggé nyakatekert megoldás, főleg sok ezer képhez.Hátha van ötletetek.
Köszi!
-
TGWH
őstag
Hát úgy könnyű ha értesz hozzá
Sokadik nap, hogy körbejárom a témát, fél nap alatt eljutottam oda, hogy feltettem mindent amit eddig még soha, és van egy ronda alap, layout.blade kezdőlappal, meg a @yield részek meghívják az adott aloldal tartalmát. Persze a html részt, ami tavaly valamikor készült el, szintén ilyen pár napig ráérek időben, azt nem találtam. Valószínűleg nem lesz meg, a betonstabil Linux szerveren volt fent egyedül...mentettem volna win10-re, most meglenne...
Holnap remélem lesz időm, jönnek az adatbázisok.
És ez így még mindig nagyon szellős, át kéne olvasni mindent ami eddig felmerült, kellene egy éles honlap, fel kéne másolni az egész mappát, majd rá kéne engedni a validitort, mit szól hozzá, csak úgy kíváncsiságból. Meg megérdeklődni Google haverunknál, mit szólnak hozzá a kereső robotok... -
TGWH
őstag
Kössz.
Megnéztem a Laravel-t, eddig tetszik. Xampp szerver, új project cmd-ből, szerintem jó lesz nekem php-t tanulni.
Most ott vagyok, hogy 2014-es példa videót találtam youtube-on, szóval minden más mint ott, de használható.
Megnézném a honlapot mobilon, de elakad. Csak pc-n látom? Localhost/projectneve/public, aztán kapok egy ERR_CONNECTION_REFUSED üzenetet.
Hogy látom mobilon? -
Taci
addikt
Szeretnék tanácsot kérni ebben a témában is:
Adott egy link forrása, pl.: [link]
Melyik módszerrel gyorsabb, hatékonyabb a feldolgozása? (keresés benne, pozíciótól pozícióig kimásolás stb.)
1.file()
függvény, így minden sor egy tömbelem, és azon belül foreach, és így soronként (tömbelemenként) keresni, aztán a műveletek
2.file_get_contents()
függvény, ami sztringként menti a tartalmat, és abban simán elvégezni a műveleteket.Most direkt csináltam egy tesztet, és nekem ugyanannyi másodpercre jött ki mindkét függvénnyel / módszerrel. Szóval nem tudom, melyik lehet a jobb választás. (A file-lal dolgoztam eddig, csak lassúnak találom néha, ezért gondoltam, megnézem, mivel lehetne gyorsítani.)
Köszönöm.
-
TGWH
őstag
Ott lennék ha szóba jöhetne
először úgy voltam, hogy oktatási jelleggel PHP-mysql páros, aztán majd felkerül ha úgy áll. Vagyis előtte a Python felé húztam, elsősorban honlap, és Android mellékszállal.
Keretrendszer előbb vagy utóbb úgyis lesz, ma már arra halad a világ. Persze, így rosszabbul járok, de haladósabb. -
TGWH
őstag
Sziasztok.
Milyen keretrendszert ajánlanátok annak, aki most kezd újraismerkedni a honlapkészítéssel?
Html és CSS nem gond, sql sem, csak régen használtam. Régen egy honlap html, css, plussz phpbb fórumból megvolt.
Valami olyan kellene, amivel gyorsan lehet haladni, amibe könnyű beletanulni. Mysql adatbázison alapulna a dolog. Honlap, cikkek, blog szerű részek, hozzászólás lehetősége, bejelentkezés, több szerkesztő/cikkíró, szavazás, képfeltöltés, közösségi média, minden szirszar
Egyelőre saját gépen futna egy wamp szerver próbálkoznék, aztán majd kikerül a tárhelyre. -
Kérdezz ezért van a fórum.
Amit
php
-ból hívsz ha le tudod futtatnishell
-ből akkor elég azt a cronba pakolni. Az egyszerűség kedvéért csinálhatsz egy bash scriptet hozzá. PHP mint közvetítő réteg kihagyható.A másik kérdésem pedig ignoráld mert nincs rá szükséged csak menteni akarsz.
Ez valami CPanel host?
-
Taci
addikt
Ne haragudj, hogy 100+1-edjére is visszakérdezek
, de ez tényleg a legelső találkozásom szinte mindennel, amikről eddig beszéltünk, és nem szeretném "rosszul kezdeni", érteni szeretném a miérteket.
Ha csak mentesz akkor ne php-ból futtasd mert felesleges.
Cron job-ként fog futni a backup, viszont ott .php szkriptet hívok majd meg, és minden példában így is láttam. (Ezt is csak szolgáltatónál tudom majd élesben kipróbálni.) Mire érted azt, hogy ne php-ból futtassam? Php-ban írtam meg mindent hozzá, kapcsolódás az adatbázishoz, backup, tömörítés, felhőbe feltöltés stb. Ez van egy .php szkriptben, ezt fogom majd valamilyen időközönként futtatni:* * * * * /usr/bin/php /home/user/public_html/index.php > /dev/null 2>&1
(csak copy-paste egy sample linkről)Ha mentés előtt valamit csinálsz, pl. takarítasz
Takarítani? Bocs, tényleg olyan balféknek érzem magam, de nem értem, mire gondolsz. Az egész processzben, de még az egész életciklus alatt sem volt takarítás "betervezve". Milyen takarításra gondolsz?Én csak örülök és hálás vagyok, ha tippeket kapok, hogy hogyan kell ezt jól csinálni. Szóval ha előtte takarítani kell (vagy előtte-utána bármi mást), kérlek, terelj a helyes irányba.
Köszönöm.
-
Taci
addikt
Hogy érted, hogy mit csinálok?
Még semmit, de igazából nem is terveztem. Mármint (ha jól értem a kérdésed lényegét) a singe-transaction (és a skip-lock-tables) miatt az adatbázis továbbra is elérhető lesz, így nem kell az oldalt maintenance módba raknom. Az új bejegyzések (SQL Insert) pedig sorban állnak addig, amíg a mysqldump nem végez.
Kihagytam valamit? Vagy mit tanácsolsz?
-
php
-ból hívsz egy alkalmazást. Nem vagyok a kontextusba benne de ezt cronbólphp
nélkül szebb megoldani ha mást csinálsz.Ha valahol hostolva van akkor crontab segítséével.
Szerk.: ja, most olvasom. Akkor ez direkt van így.
Ebben az esetben minden bizonnyal ez a helyes irány.
Csak érdeklődés szintjén, mit csinálsz dump előtt?
-
Taci
addikt
bár exec helyett a backupot php-ból oldanám meg.
Ez mit jelent? Mármint most is php kódban van az egész (hisz' sok más mindent is csinálok még előtte-közben-utána vele), és a mysqldump az exec()-en keresztül van meghívva (így találtam példakódokban).$cmd = "mysqldump" . " --skip-extended-insert --complete-insert
--single-transaction --skip-lock-tables --user=" . $username .
" --password=" . $password . " " . $dbname . " > " .
$backup_folder . $backup_filename_sql;
exec($cmd, $return_array, $return_code);
Ezen kívül még shell_exec()-et láttam használva, illetve passthru()-t, de az böngészőnek adja át elvileg csak.
Hogyan máshogy lehet/érdemes használni?
-
Taci
addikt
válasz
nevemfel #20931 üzenetére
az viszont a fizetős mysql enterprise csomagban van
Ez az infó nem került a szemem elé, így akkor nem is forszírozom. Köszönöm.
Amúgy azt a doksit már végignéztem, már kezdtem is összerakni a parancsot, amikor észrevettem, hogy nem dump a vége, hanem backup.(Öregszem, plusz már a betűk is összemosódnak ilyenkor.)
Neked is köszönöm, mobal.
Akkor marad így, backup, tömörítés, feltöltés, régiek törlése (egy idő után).--------------------
Még esetleg abban adjatok tanácsot, kérlek, hogy mire készítsem fel a szkriptet. Mikor mondhatom azt, hogy "baj van" az adatbázissal, és a "hibás" adatbázisról ne csináljon backup-ot.
if ($return_code == 0){}
Ha sikeresen lefutott, akkor jön a tömörítés, és ha az is sikeres, akkor a feltöltés.
Nem tudom, állhat-e elő olyan helyzet, hogy 0-ás return code-dal tér vissza az exec() annak ellenére, hogy baj van az adatbázissal.Eredetileg arra gondoltam, hogy mivel nagyon max 3-6 óránkénti (vagy ritkábbi) backupolásra állítanám be, ezért ha még kézzel valamiért pár rekordot törölnöm is kellene, nyugodtan beállíthatok egy olyan feltételt, hogy egy új backup fájl csak akkor valid, ha nagyobb, mint az előző. (5 percenként futnak cron jobok, amik tartalmat húznak be kb. 30 forrásból, így esélytelen, hogy abban a 3-6-akármennyi órás periódusban ne legyen új rekord.)
Ha pedig valamiért mégsem kerülne be egy új rekord sem, akkor sem bántja az előző backupot, hiszen csak akkor valid az új backup, ha nagyobb, mint az előző - tehát egyenlőnél invalid.Jó ez a gondolatmenet?
Mire készítsem még fel, mi "romolhat el"? Nyilván ha a szolgáltatónál valami kiesik, akkor a cron jobok, így a backup sem fog futni. Vagy ha az adatbázissal van baj, akkor a mysqldump az exec-ben nem 0-ás return code-dal tér vissza. Másra a saját tapasztalataimből (ami ebben a témában a nullához konvergál alulról) nem tudok gondolni.
Köszi.
-
Taci
addikt
Kerestem megoldást az incremental backup-ra, de
mysqldump
nem támogatja, csakmysqlbackup
, ez utóbbi viszont nem elérhető (a tesztszerveren, a szolgáltatónál nem tudom, de abból kell kiindulnom, hogy ott sem).Sokkal jobb lenne így csinálni, egy kezdeti full backup hetente, ahogy te is írtad, aztán bizonyos időközönként mondjuk 1-1 cumulative.
Te mivel, hogyan csináltad? Van esetleg egy "best guide"-od hozzá? (Egy jól összeszedett oldal, példákkal, hogy értsem is, mi-mit-miért csinál, hogy testre tudjam szabni.) -
Taci
addikt
$data = file_get_contents($backup_folder . $backup_filename_sql);
$gzdata = gzencode($data, 9);
file_put_contents($backup_folder . $backup_filename_sql_gz, $gzdata);
A
gzencode
pontosan ugyanazt a fájlméretet eredményezi, mint aZipArchive
, 1 kB-nyi különbség se nagyon van.Ha ugyanazt az sql fájlt 7-zip-pel Ultra tömörítéssel .gz-be tömörítem (Windows alatt), akkor 260 kB-tal kisebb fájl lesz csak. Ha ugyanígy Ultrával, de .7z-be, akkor lesz egyedül a 8,9 MB-ból 5,1 MB, ami már azért jelentős különbség.
Szóval max még azt tudom valahogy elérni, bár nem tudom, hogyan, egyelőre nem találok rá semmit. Nem hiszem, hogy ebben több lenne. Szerintetek? -
Taci
addikt
Köszönöm, a tippet is az inkrementális backuppal, utánakeresek, hogyan kell.
Meg akkor megnézem még, mit tudok kezdeni a tömörítéssel. Így gyorsan (munka mellett egy percre félre nézve) ezt találtam, ami beépített, és talán pont ide való: [link] De majd ha lesz időm, alaposabban utánajárok.Köszi.
-
Taci
addikt
Már csak pár apróbb simítás kell (köztük az RClone is, ami azért nem lesz olyan hamar meg), aztán költözök szolgáltatóhoz. Ott lesz cron is majd.
Köszönöm a megerősítést, hogy a backup rész így akkor rendben lesz.
Az alatt mit értettek, hogy sok a 8 MB? 54 MB-ról tömörítette a ZipArchive (ezt találtam, ami egyből működött). Biztos van kapcsolója is, hogy hatékonyabb legyen a tömörítés, de éjfél környékén fejeztem be, első változat, nem tudom, mi lenne a "jó fájlméret".
Vagy más miatt mondjátok?Azt tervezem, hogy napi pár alkalommal futtatom ezt a backup szkriptet, ami backupol, tömörít, aztán feltölt (felhőbe). És mivel így tömörítéssel csak ilyen minimális méretekkel kell számolnom, nyugodtan megcsinálhatom úgy, hogy meghagyok akár 1 hétnyi backupot is, és mindig csak a legrégebbit törlöm (a megfelelő ellenőrzések után).
Ha mondjuk 2 óránként fut (csak példa), akkor az napi 12 backup, heti 84 fájlt kell tárolnom - persze egyre nagyobbakat, de bőven van helyem.
Vagy mi az ajánlásotok ezzel kapcsolatban?Köszi.
-
Taci
addikt
válasz
supercow #20876 üzenetére
A
mysqldump
-hoz lenne pár kérdésem:Az adatbázis mostani felépítése szerint a backuphoz (mysqldump) generált user Select és Lock Tables jogokat kapott. (Előbbivel kezdtem, de hibára futott, és a logban írta, hogy az utóbbi is kell neki.)
Kellhet esetleg még más jog is a "későbbiekben"? Ahogy néztem, Show View és Trigger van még említve, de az előbbit nem használom, utóbbit pedig még soha nem használtam, szóval így gondolom, egyik sem kell.Ezt a parancsot futtatom (
exec()
):$cmd = "mysqldump" . " --skip-extended-insert --complete-insert
--single-transaction --skip-lock-tables
--user=" . $username . " --password=" . $password . " " . $dbname .
" > " . $backup_folder . $backup_filename_sql;
Amit megértettem ezekből:
- InnoDB adatbázis, ezért a single-transaction, így elvileg nem lock-olja a táblákat.
- Viszont van néhány kapcsoló (bár itt nincs használva most), ami aktiválhatja a lock-tables-t, ezért biztos ami biztos, ott van benne a skip-lock-tables, hogy ezt kiüsse mindenképp.
- skip-extended-insert: Ilyenkor minden műveletet külön sorba tesz, szétszed. Ha kiszedem belőle, akkor viszont pl. egy sorban, 1 db Insert-ben ott van egy teljes tábla tartalma. És tapasztalatom szerint így a gyorsabb (sokkal). Szóval lehet, ezt ki kell inkább szednem.
- complete-insert: a mezőnevek is szerepelnek, enélkül kihagyja őket.Van még esetleg más, amit megérne használnom?
Még tömörítem a végén, így a jelenleg 54 MB-ba backup-olt adatbázist kb. 8 MB-ra tömöríti össze a ZipArchive. (Aztán majd ezután nézem az RClone-t, hogy feltöltsem felhőbe tárhelyre.)
Köszönöm.
-
Mike
veterán
az update mindig lassú. éppen emiatt szoktam át az insertre
pl. email megnyitását beteheted a queue-ba is mezőként amit aztán updattel beírsz, de ennél lényegesen gyorsabb ha berakod egy insert-tel egy megnyitás táblába a kapott uuid-kat aztán ezt majd összefűzöd lekérdezéskor. -
laracroft
senior tag
Sziasztok
Van egy form-om, amelynek alján van 2db submit.
Azt szeretném elérni, hogy az egyik gomb megnyomásakor - pár db kötelező mező kitöltése mellett - mentse el a form-ot (piszkozat), míg a másik gomb hatására szükséges legyen kitölteni minden szükséges mezőt (végleges).
Ezt hogyan oldanátok meg egy form-on belül?
Vagy ezt mindenképp külön form-ban kell megtennem?Előre is köszi
-
Taci
addikt
Köszönöm a tanácsot és a segítő szándékot, de sztanozs "unszolására" (jó értelemben véve persze
) átnéztem újra, és meglett, hogy az SQL-es Update miatt volt lassú, amúgy nagyon gyors a logikai/ellenörzős rész.
A lassúság oka az volt, hogy egyesével futtattam rekordonként az Update-et... - de most már átírtam arra, hogy csak egyszer a végén, az összeset bind_param-mal átadva, egy lépésben futassa, és így már repül.
(Érdekes volt így kilogoltatni, hogy hogyan is néz ki egy darab, 23e rekord adataiból összerakott lekérdezés.)
Köszönöm azért így is a tanácsot!
-
Mike
veterán
a kulcsszavak külön táblában tárolnám, az egyes címeket is, és ezek azonosítóját egy harmadikban. a kulcsszavak unique-olva lennének, így egy sima insert elég arra hogy betegyem ami még nincs benne. azt, hogy ne lehessen elütésekkel mindig ugyanolyan kulcsszavakat megadni a felszínen oldanám meg.
a rendezgetés részt nem értem, a szoftvered mi alapján rendezgetni? vagy írtál hozzá egy AI-t? de úgy is tudod csinálni, hogy a felszin eleve feladja a backnek, az id-kat. ha nem akarsz belső id-kat megadni, használd az uuid-t van SQL alatt UUUID(), de a rövidített változat is eléggé unique, tehát LEFT(UUID,8)de úgy látom az adatbázist ajánlotta már más is.
-
Taci
addikt
válasz
sztanozs #20912 üzenetére
Nagyon szépen köszönöm a felajánlásodat, de nem foglak privátban zaklatni ezzel. Az egy dolog, hogy beírom ide, aztán ha valaki épp rálát és rá is ér, ad 1-2 tanácsot - de amíg van mit átéznem saját kútfőből is, semmiképp nem fogok mást piszkálni ezzel.
Kb. 1100 rekord / 80 mp-ről indultam optimalizálni, kb. 18e / 80 mp körül van most, de ha azt mondod, ez még mindig nem az igazi, átnézem a többi részt is. (Igazából élvezem, persze sok időt elvisz egy olyan területre, amiről azt hittem, már készen van, de attól még élvezem.
)
Köszönöm még egyszer a felajánlást!
-
Köszönöm válaszaitokat!
-
Sziasztok!
Alkalmazok egy egyszerű PHP kódot, ami megnyit egy, a szerverre feltöltött txt fájlt és módosítja. Működik, hibátlan.
Csakhogy. Ha olyan url-re mutat rá, ami nem létezik (pl bent van egy mappában, de a PHP kód egy másik mappát hív be), akkor létrehozza. Az én kódom így néz ki:<?php $file=fopen("file.txt", "r");
$db2=fread($file,"1024");
fclose($file);$db2=$db2 + 1;
$fp=fopen("szamlalo.txt", "w");
fwrite($fp, $db2);fclose($fp);Ezt lehet módosítani úgy, hogy csak akkor írjon bele a fájlba, ha az létezik? Vagyis hogy ne hozzon létre újat, ha nem találja?
Előre is köszönöm!
-
#45252096
törölt tag
Erre [link] van ennel jobb megoldas ? (Gyakorlatilag dupla 1-N kotes, mert egy csapatnak ki szeretnem iratni a meccseit ha otthon vagy idegeben jatszik.
class Team extends Eloquent
{
public function allMatches() {
return $this->hasMany('Match', 'visitant_id')->orWhere('local_id', $this->id);
}
}
-
Taci
addikt
foreach ($rekord_kategoriai as $rekord_kategoriai_value){
if (array_key_exists($rekord_kategoriai_value, $kulcsok){
//
}
}
A $kulcsok tömbben kb. 3000 elem (kulcsszó - kategória páros) van.
A $rekord_kategoriai-ban átlagban 5-10 elem.Itt mi lenne az elérendő cél sebességben? Tényleg még csak viszonyítási alapom sincs.
Ahogy írtam, most kb. 6500 elem 80 mp alatt.Ez tehát 1 mp alatt 80 elem. 80 elemnél elemenként mondjuk 10 kulcsszó, ezeket egyesével 3000 kulcsszó-kategória párossal összehasonlítani. (bár ugye az array_key_exists-tel ez elvileg gyors)
Bocs, hogy ezzel nyaggatlak titeket, de tényleg nem tudom, meddig is lehet ezt javítani. Lehet, már elértem ezzel egy ideális sebességet? Lehet, a 1/100-át sem.
-
Taci
addikt
Átírtam, most már a megadott 80 mp alatt kb. 6500 elemmel végez (az eddigi 1100-hoz képest). Igazából nagyobb ugrásra számítottam, mert egy 1 milliós táblát nézve ezt bizony elég sokszor kell hívogatnom.
Megpróbálok "lekapcsolni" részeket belőle, hogy lássam, mi fogja vissza ennyire. -
Taci
addikt
válasz
sztanozs #20898 üzenetére
Tehát ha jól értem, akkor ebből
$kategoriak = array(
'szorakozas' => ['elozetes', 'film', 'sorozat', 'hbo', 'mozi'],
'kultura' => ['mozi', 'szinhaz', 'múzeum', 'koncert', 'film'],
'masszázs' => ['eufória']
);
ezt csináltad:
$kulcsok = array(
"elozetes" => "szorakozas",
"film" => "szorakozas",
"film" => "kultura",
"sorozat" => "szorakozas",
"hbo" => "szorakozas",
"mozi" => "szorakozas",
"mozi" => "kultura",
"szinhaz" => "kultura",
"múzeum" => "kultura",
"koncert" => "kultura",
"eufória" => "masszázs",
);
És akkor azt mondod, hogy így ezen belül az array_key_exists (key_exists) gyorsabban megtalálja az értéket, és egyből ott van hozzá a kategória neve is értékként.
Kipróbálom, köszi.Reggel amúgy rákerestem arra, hogy "php in_array slow performance", és volt egy válasz valahol, ahol azt ajánlotta, hogy a
$categories_szorakozas = array(
"elozetes",
"film",
"sorozat",
"hbo",
"mozi",
);
helyett legyen:
$categories_szorakozas = array(
"elozetes" => true,
"film" => true,
"sorozat" => true,
"hbo" => true,
"mozi" => true,
);
és így array_key_exists-tel ellenőrizni. Átírtam, futtattam egy tesztet (előzővel és ezzel is ugyanúgy 10 mp-re limitálva), és az in_array 10mp alatt 77 rekordot tudott feldolgozni, míg ez a másik fajt az array_key_exists-tel csak 38-at... Szóval vissza is írtam.
De a te változatodnak sokkal több értelme van, szóval teszek azzal is egy próbát.
Meg amúgy (bár nem hiszem, hogy túl sok időbe kerül az a kezdeti, "kulcsok" táblát feltöltő művelet, de) megcsinálhatom eleve úgy a "kategoriak" tömböt, hogy eleve abban a formában legyen.
Új hozzászólás Aktív témák
Hirdetés
- AMD Navi Radeon™ RX 9xxx sorozat
- CPU léghűtés kibeszélő
- Futás, futópályák
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Szeged és környéke adok-veszek-beszélgetek
- Kazy Computers - Fehérvár - Megbízható?
- Fujifilm X
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen routert?
- Asztalos klub
- További aktív témák...
- Fujitsu AKCIÓ!!! 14,1"-15,6"FullHD IPS,8.gen.i5,10.gen.i5
- HP Elitebook 840 G3 laptop (14FHD/I5-G6/8GB/256SSD/Matricázott) - Akku X
- Asus Rog Strix Gamer laptop makulátlan állapotban
- ThinkPad T14 Gen4 14" FHD+ IPS érintő Ryzen 5 PRO 7540U 16GB 256GB NVMe ujjlolv IR kam gar
- 16GB-os SODIMM (notebook) DDR4 RAM bazár - nézz be, lesz, ami kell neked!
- Országosan a legjobb BANKMENTES részletfizetési konstrukció! Vásárolj okosan, fizess kényelmesen!
- Samsung Galaxy A13 64GB, Kártyafüggetlen, 1 Év Garanciával
- Update 06.13. Bomba árak 2025-ben is! Üzleti - Consumer laptopok DELL FUJITSU HP LENOVO
- Ne hagyd ki ezt a lehetőséget: Vadiúj Ryzen 7 5800X! Kamatmentes rèszletre is!!
- Hibás! Dísznek, Porfogónak, tesztkártyának vagy böngészni! Asus Rog Strix RX 470 4GB Videokártya.
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged