- Szívós, szép és kitartó az új OnePlus óra
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Amazfit Active 2 NFC - jó kör
- Samsung Galaxy A56 - megbízható középszerűség
- Magyarított Android alkalmazások
- Telekom mobilszolgáltatások
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Samsung Galaxy S25 - végre van kicsi!
Új hozzászólás Aktív témák
-
bucihost
senior tag
Sziasztok!
Hátha tudtok segíteni. Nem tudom milyen úton induljak el, és nem is igazán tudom mi lenne ennek a "sávnak" a neve. Szeretnék a weboldalba beépíteni egy JS vagy egyéb alapú sávot, amely a weboldalon "kívülre", kerül. Így a weblapon böngészve, a sáv tartalma nem változik, nem frissül, sbt. Egy zene lejátszó lenne a sávban.
Milyen néven keressek erre megoldást?
Köszi előre is.
-
pelyib
tag
válasz
adika4444 #19397 üzenetére
"le tudom kérni a fenntebbi select-tel együtt az adott alkalmazás platformlistáját"
Igen meg lehet oldani, én két megoldást mondanék:
- Join + group_concat nem szép, illetve ha még plusz adat kell a platform táblából akkor nem működik.
- Lekéred az app listát, kigyűjtőd az ID-t (
WHERE application_id IN (1, 2, 3)
) és a második SELECT queryvel lekéred a hozzájuk tartozó platformokat. Ezek után csak be kell frissíteni a application listád elemeit a megfelelő platformokkal. -
adika4444
addikt
válasz
pelyib #19392 üzenetére
Köszi, enum elvetve, marad a platformok + kapcsolótábla.
Itt viszont egy alkalmazás multiplatformos lehet. Így minden alkalmazást le kell kérnem egyszer listázásnál ( select *from `apps` limit 0,25; )
Na de itt még nincsenek meg a platformok, mert azt úgy tudom elképzelni, hogy platform táblába:
egy auto-increment-es ID, mellette egy platformid, platformnameA kapcsolóban pedig külön bejegyzések, pl. ha Firefox elérhető Windows, Linux, Android és iOS-ra, akkor 4 sor a kapcsolótáblába, az 1-es ID-jű Firefox-ot összekötöm vele a platform 1-gyel, 2-vel, 3-mal és 4-gyel.
A problémám pedig itt jön, amikor listázom a letöltések főoldalán, minden letöltésnél le kell kérnem külön a platformlistát úgy hogy a kapcsolótábla adott letöltésre vonatkozó id-jét joinolom a platformok táblával.
Tehát ha egy oldalon 25 letöltést mutatok, az 25 ilyen lekérdezés, +1 ami a 25 letöltést lekéri.
A kérdésem az az lenne, hogy valahogy le tudom kérni a fenntebbi select-tel együtt az adott alkalmazás platformlistáját, hogy ne legyen ilyen sok lekérés?
Valami ugyanis azt súgja hogy 25-nél is több lekérés nem a legszerencsésebb...Köszi!
-
pumatom
aktív tag
Sziasztok!
Nem biztos, hogy jó helyen járok, de hátha tud nekem valaki segíteni.
A következő oldalról szeretnék egy olyan linket kapni, ahol egy adószám keresésének az eredményét tudnám megkapni.
https://www.nyilvantarto.hu/evny-lekerdezo/
Pl.: az Adószám első 8 számjegye- mezőben 12345678-es adószámra rákeresve, az eredményt lehessen linkelni.
Van erre mód valahogy?
-
pelyib
tag
válasz
adika4444 #19373 üzenetére
Enum field legyen ha nem akarsz másik táblát + kapcsoló táblát.
Igaz ha bővül akkor ennél is alter-ni kell a táblát, de legalább a keresés gyors lesz és kevesebb helyet is foglal (mint egy text mező).
Illetve én személy szerint erre az esetre pont nem használnék több flag mezőt inkább a dedikált táblákat tiszta mint a hó. -
adika4444
addikt
válasz
sztanozs #19376 üzenetére
Köszi, így már naggyából körvonalazódik a dolog.
De platformnál ugye több lehet, tehát nem elég úgy mint kategóriánál hogy mondjuk a cat egy integer, kategóriánál meg a join-nal mellérakom az adott kategória nevét, leírását...
Multiplatform esetében tehát továbbra se teljesen értem miként oldjam meg join-nal -
pelyib
tag
válasz
radi8tor #19383 üzenetére
Tippre erről a fájlról van szó: Github fájl
Ha composerrel van használva akkor töröld a ./vendor mappát és CLI-ből
composer install
, ha nem akkor csak kopipészt oszt jónapot -
#68216320
törölt tag
válasz
#57018880 #19388 üzenetére
Úgy tűnik tényleg elég csak a run.php-ban megcsinálni az autoloader-t.
Az alábbi működőnek tűnik:
file path - képrun.php
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
use DAO\TestDAO;
$test = new TestDAO();
$test->testMethod();
?>TestDAO.php
<?php
namespace DAO;
use Model\TestModel;
class TestDAO {
public function testMethod() {
$testModel = new TestModel ();
$testModel->testMethod ();
}
}
?>TestModel.php
<?php
namespace Model;
class TestModel {
public function testMethod() {
echo "hello";
}
}
?> -
#68216320
törölt tag
válasz
#68216320 #19385 üzenetére
Ez így működik, de akkor minden fájl elejére kelleni fog behívni az autoloader-t? Valahogy nem lehet automatikusan használtatni vele, ha use-t lát?
<?php
spl_autoload_register(function ($class_name) {
include $class_name . '.php';
});
use Model\TestModel;
$test = new TestModel();
$test->testMethod();
?> -
radi8tor
MODERÁTOR
Kis segítség jól jönne, hogy akkor ezt mire módosítsam?
public function send() {
$this->_sendPhpMailer();
}
public function _send() {
$this->_sendPhpMailer();
if ($this->emailtemplate) {
$data = get_object_vars($this);
$this->emailtemplate->sent($data);
}
}
private function _send() {
if (!$this->to) {
throw new \Exception('Error: E-Mail to required!');
}
if (!$this->from) {
throw new \Exception('Error: E-Mail from required!');
}
if (!$this->sender) {
throw new \Exception('Error: E-Mail sender required!');
}
if (!$this->subject) {
throw new \Exception('Error: E-Mail subject required!');
}
if ((!$this->text) && (!$this->html)) {
throw new \Exception('Error: E-Mail message required!');
}
foreach (get_object_vars($this) as $key => $value) {
$this->adaptor->$key = $value;
}
$this->adaptor->send();
} -
#68216320
törölt tag
-
#68216320
törölt tag
Ha egy class egy alkönyvtárban van és a gyökérben példányosítanám, akkor az alábbi megoldás miért nem jó? Nem látja az osztályt. (php7)
<?php
use Model\TestModel;
$test = new TestModel();
?> -
radi8tor
MODERÁTOR
Nektek mond valamit ez a hibaüzenet? Amikor emailt kellene küldenie akkor dobja.
SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data
OK
Fatal error: Cannot redeclare Mail::_send() in /system/library/mail.php on line 275
Ez az érintett file: https://pastebin.com/8exXF0bF
-
sztanozs
veterán
-
sztanozs
veterán
válasz
adika4444 #19373 üzenetére
Kérdés, hogy változhat-e a jövőben platformok száma. Ha igen, akkor célszerű inkább linkelt táblában tartani, hogy mihet elérhető. Ha nem akkor lehet külön mező platformonként.
Az utóbbi eset azért lehet problémásabb, mivel ennek a módosítása csak a tábla sémájának változtatásával lehetséges.Esetleg lehet még bit típusú mezőben tárolni, mint flag, de ennek feldolgozása nehezebb (szvsz) mint egy linkelt tábláé.
-
adika4444
addikt
Hali!
Kérnék egy kis segítséget
Adott egy letöltő oldal, ahol az adott alkalmazáshoz a platformokat kéne beállítani úgy, hogy később szűrni lehessen.
Például ha felrakom a Firefox böngészőt, akkor az jelenjen meg alapjáraton, de ha valaki szűr iOS-ra, Androidra vagy épp Windows-ra, akkor is jelenjen meg mint találat.
Ezt az egészet egy MYSQL táblában tartanám.
Első körben jött az ötlet, hogy legyen egy platform oszlop, text típussal. Ide mehetnének vesszővel a platformok, de mivel ember tévedhet, ezért jobb lenne a checkbox.
Tehát jelenlegi ötletem, hogy csinálok inteket: Android, iOS, Windows és Linux, aztán adott letöltésnél checkbox állítja hogy 0 vagy 1, attól függően, hogy adott platformra elérhető-e az adott program.
Milyen ötlet ez az utóbbi?
Gondoltam még arra is, hogy checkboxokkal megoldani, és azok írnák bele egy textbe felvesszőzve, de későbbi szűrésnél ez nem tudom mennyire bonyolítaná a dolgokat.
Mi lenne itt a legjobb megoldás?
Köszi előre is! -
coco2
őstag
Sziasztok!
Tanácsot szeretnék kérni valamilyen előregyártott ingyenes libre, amit használhatok az alábbi feladatra.
Van egyetlen darab, viszonylag termetes tábla mysql alatt. Kb 35 oszlop, és vagy 50 ezer sor. Abból a táblából lekérdezéseket kell csinálni, a kapott sorokat kilistázni. Formokat kellene gyártanom, célzott mező / szűrési érték. Valami olyan lenne jó, ami bővülő lista, hogy tetszés szerinti mennyiségben lehessen szűrési adatokat megadni. Megjelenítéshez valami oldalra görgethető lista ablak, mert nagyon sok oszlop van.
Megírom én nyersen is, ha más nincs, de ha megspórolhatok egy rakás munkát, vajon miért ne? Milyen kulcsszavaknak nézzek utána, ami viszonylag hatékony segítség?
-
supercow
őstag
válasz
rootkiller #19370 üzenetére
A route definiciodban vedd külön a get és post metódusokat. A post dolgozza fel a form adatait és szükség szerint irányít vissza a form oldalára vagy máshova.
Ilyen logikára gondolj:
Get /oldalam: mutasd a formot, amiben action=sajátmagam és method=post
Post /oldalam: validál, feldolgoz, átiányít -
rootkiller
őstag
Hello! Van egy Codeigniterben készülő egyetemi feladatom.
Következő a probléma. Van egy form, ami meghív egy függvényt a controllerben, az csinál valamit, és a végén ugyanabban a viewben kéne megjeleníteni azt, ami a controllerben megtörténik logika. Addig megvan, hogy saját magát kéne megadni a form actionnak, de akkor hol kell meghívni a controller függvényét?
Köszi!
-
supercow
őstag
szerintem meg egy ) kevesebb van. Kettőt nyit, egyet zár..
if(!empty($kapott) {
vsif( !empty($kapott) ) {
-
norbiv8
tag
válasz
don_peter #19362 üzenetére
A változót ellenőrzöm, így
$kapott = $_GET['strdata'];
if(!empty($kapott) {lehet, hogy így jobb lenne
if(!empty($_GET['strdata']) {
$kapott = $_GET['strdata'];A kódot sokszor átnéztem, kipróbáltam máshogy is, de ahogy írod, egyre gyanúsabb, hogy nem kód, hanem valami jogosultsági probléma van. Természetesen googléztam az 500-as hibára, de amit találtam az nem segített. A szerver nem az enyém, hanem egy szolgáltató szervere, remélhetőleg munkaidőben kapok választ tőlük, hogy mit nézzek meg/állítsak be (nem használtam még náluk saját PHP-ből adatbázist, de pl az opencart az megy, szóval elvileg nem kellene problémának lennie). A kódra visszatérve ez csak egy eszköz de nem a cél (szabadon idézve nem tudom kitől), szóval senki ne kövesse ezt a megoldást, ha nincs tisztában a GET hátrányaival, nehogy megismétlődjön a BKV-s jegybotrány.
-
don_peter
senior tag
válasz
norbiv8 #19361 üzenetére
Esetleg hasonítsd össze ezzel a példával:
[link]
És PHP esetében is figyelj oda az esetleges üres változókra, mert az is hozhat hibás eredményt.
Pl: a $_GET változódat nem vizsgálod sehol.Amúgy szerintem az általad említett hiba nem a kóddal van elsősorban, hanem inkább a szerverbeállításoddal.
Nem találja a fájlt vagy a beállítások nem jók.
Amúgy a google több ezer találatot hoz rá: pl: [link] -
don_peter
senior tag
válasz
norbiv8 #19359 üzenetére
Erre a részre figyelj oda:
$sql = "INSERT INTO "tablename" (happened, datarec)
VALUES (date("Y-m-d H:i:s"), $kapott)";
Helyette inkább:$sql = "INSERT INTO tablename (happened, datarec)
VALUES (".date("Y-m-d H:i:s").", ".$kapott.")";Illetve szerintem ez az SQL csatlakozásod már eléggé elavult.
-
norbiv8
tag
Sziasztok!
URL-ben érkező adatot szeretnék lementeni adatbázisba. A következő kód semmit nem ad vissza, valamiért nem fut le, még a weboldal title sem lesz az amit megadok. Hol van a hiba?<html>
<head>
<title>weboldal title</title>
</head>
<body>
<?php
$servername = "localhost";
$username = "*";
$password = "*";
$dbname = "*";
$kapott = $_GET['strdata'];
if(!empty($kapott) {
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
$sql = "INSERT INTO "tablename" (happened, datarec)
VALUES (date("Y-m-d H:i:s"), $kapott)";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
#mssql_free_result($query);
mysqli_close($conn);
}
else {
echo "Ures keres!";
}
?>
</body>
</html>Ez a kód lefut:
<html>
<head>
<title>weboldal title</title>
</head>
<body>
<?php
$kapott = $_GET['strdata'];
echo $kapott;
?>
</body>
</html>Így hívom böngészőből:
ezaza.php?strdata=123ttt -
lorcsi
veterán
ha a php fájlokat notepaddal megnyitom és átmásolom netbeans-be, akkor sérülni fog ?
az eredeti netbeans-el jó..így átmásolva meg teljesen széthullik -
don_peter
senior tag
Srácok van egy 2018-04-26. dátummal felvett sor az adatbázisban és ezt szeretném 14 nappal később csak is kizárólag SQL-el törölni. PHP-ban adom meg az utasítást, de jó lenne egy lekérdezésen belül megvalósítani.
Tehát a szerkezet:
created (a mező neve amire keresni kell) = (tartalma) 2018-04-27 (formátuma date)
Ezt szeretném törölni, 2018-05-10-én.PHP-ben meg tudom oldani hogy összerakjak egy megfelelő lekérdezést, de én most valami újat szeretnék tanulni, egy gyorsabb megoldást.
Előre is köszi a segítséget. -
spiritex
veterán
Ebben tudna valaki segíteni, hogy hogy lehetne ezt megoldani vagy kihez/hova forduljak segítségért? Előre is köszönöm!
-
Fundiego
tag
hali
A set @rank-ot h tudnám betenni php-ba? a jelenlegi kódomnál mindig hibát dob ki a rendszer
$servername = '*';
$username = '*';
$password = '*';
$dbname = '*';// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
mysqli_set_charset($conn,'utf8');$sql = "SET @rank=0;
select @rank:=@rank+1 AS rank, s.* FROM
(
SELECT gyumolcs, sum(mennyiseg)
FROM gyumolcs Where ev='2016'
group by gyumolcs
ORDER BY sum(mennyiseg) DESC
) s";$result = mysqli_query($conn, $sql) or die("Bad Query: $sql");
-
Doink
aktív tag
Ez egy html editor, nem képszerkesztő.
Kérdésedre a válasz úgy nagyon durván, általában van egy canvas amibe betöltöd a képet és ott a böngészőben hegesztgeted a képet szervertől függetlenül (rajzolsz rá, átméretezed, forgatod stb). A betöltött képek jöhetnek a user gépéről vagy a szeverről is ha mondjuk akarsz neki pár példa képet adni. Szerverhez max akkor nyúlsz ha el szeretnéd menteni a végső képet a szerverre vagy valami példa képet szeretnéla usernek adni. Ha multiplayer rajzolóprogramot akarsz (Béla látja ahogy Árpi rajzol) akkor a valós idejű frissítést websockettel szokták megoldani.Szóval ahhoz hogy
- manipuláld egy canvas tartalmát (rajzolsz rá, átméretezed, forgatod stb)
- saját gépre letöltsd az eredményt
- saját gépről feltölts egy képet a canvasra
ahhoz nem kell http request. -
coco2
őstag
Köszönöm a tippet. Nézelődtem tovább a témában, és találtam egy ilyet is: WYSIWYG
Bármelyik oldalon editálok, mindkét oldalon módosítani tud, és sebességgel. Viszont ha letöltöm a weblapot (chrome, teljes weblap lementés), lekapcsolom az internet elérést, visszatöltöm a lapot, akkor a teljes funkcionalitása meghal. Ha valami kliens oldalra letöltődött javascript működtetné, működne offline is, ha meg szerver oldali az alkalmazás, akkor a lapnak kellene újratöltenie. Ha aszinkron http requestekkel működne, az meg szerverből enne öngyilkosan sokat, mert egy neten kint lévő ingyen-játékot nem kevesen gyűrnek. Szóval egyenlőre azon a kérdésen vakarom a buksit, milyen technológiai alapon működik az a cucc?
-
coco2
őstag
Sziasztok!
Létezik php komponens olyan esetre, ha képszerkesztőt akarok weblapba építeni? Valami igényesebb kellene, ami tud nagy rajzlapot részletesre kinagyítani / visszakicsinyíteni, szerver oldalon lévő png-ket belepakolni a teljes képbe, azokat áthelyezni a rajzlapon, és egyéb alapműveletek. Fizetős komponens is érdekelne, ha normálisan van megírva / dokumentálva. Bárki találkozott bármi hasonlóval, minden tippnek örülnék.
-
Doink
aktív tag
válasz
spiritex #19341 üzenetére
Ezzel csak 2 probléma van. Így kétszer is bekerülhet egy idézet, a másik, hogy nem fognak szeretni ha késleltetés nélkül egy while ciklusban pörgeted az oldalt. Az oldalt le tudod tölteni curl-al vagy file_get_contents-el, azt fel tudod parse-olni xpath-al (hogy könnyen tudj benne keresni) de írhatsz rá regexpet is.
-
spiritex
veterán
Abban tudnátok segíteni, hogy hogy lehetne file-ba íratni egy végtelen ciklussal az alábbi parancsnak az eredményét (azaz egy véletlen idézetet), amit mondjuk leállítanék 5-10 perc múlva? A célom az lenne, hogy meglegyen file-ban több ezer idézet, ne pedig így mindössze pár db ([link]), mert oldalakra, kategóriákra van bontva.
https://citatum.hu/random.php
-
spiritex
veterán
Ebben tudna nekem valaki segíteni?
Előre is köszi! -
topjoyy
tag
válasz
cidalain #19338 üzenetére
Feltettem a wordpresst és minden működik, de amikor a Allin One WP Migrációs bővítménnyel felül írom az oldalt akkor már nem tudok belépni. Mindent jól adtam meg hiszen betudom konfigurálni elsőre, de mondom ez a bővítmény felül írta az általam megadott felhasználót és jelszót.
Itt is voltam és semmi.
A kérdésedre válaszolva jól adtam meg hiszen az első körben, amikor megadtam az adatbázist, localt, akkor működött, de most hogy ezt a plugint feltettem már nem. Maga az oldal szépen át lett hozva, csak belépni nem tudok.
-
topjoyy
tag
Hali!
Wampserverrel akarok WP-zni és sikerül is, de amikor át migráltam az oldalt, akkor nem enged belépni,mert a wp-loginnál hibás jelszót ír pedig azt a jelszót gépelem be ami a phpmyadmin wp-users-nél van. Tud valaki segíteni?
Köszönöm!
-
Doink
aktív tag
válasz
radi8tor #19333 üzenetére
<div class="tab-pane product-spec product-section" id="tab-specification">
{% for attribute_group in attribute_groups %}
<table class="table table-bordered">
<thead>
<tr>
<th><strong>{{attribute_group['name']}}</strong></th>
</tr>
</thead>
<tbody>
{% for attribute in attribute_group['attribute'] %}
<tr>
<td>
<span>{{attribute['name'] ~ ':'}}</span><span>{{attribute['text']}}</span>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% endfor %}
</div> -
radi8tor
MODERÁTOR
Nem kifejezetten PHP, de hátha tudtok segíteni benne.
Ezt kellene átírni úgy, hogy ne két oszlopban mutassa az értékeket hanem csak 1 oszlopban egymás alatt:
<div class="tab-pane product-spec product-section" id="tab-specification">
<table class="table table-bordered">
{% for attribute_group in attribute_groups %}
<thead>
<tr>
<th colspan="2"><strong>{{attribute_group['name']}}</strong></th>
</tr>
</thead>
<tbody>
{% set i = 2 %} {% set k = 0 %} {% for attribute in attribute_group['attribute'] %}
{% if ( i%2 == 0 ) %} <tr> {% endif %}
<td><span>{{attribute['name'] ~ ':'}}</span><span>{{attribute['text']}}</span></td>
{% if ( i%3 == 0 ) %} </tr> {% endif %} {% set i = i + 1 %} {% set k = k + 1 %}
{% endfor %}
{% if ( k%2 != 0 ) %} </tr> {% endif %}
</tbody>
{% endfor %}
</table>
</div> -
válasz
supercow #19331 üzenetére
Ha CGI engedett lenne, akkor nem kérdés, hogy abban lenne egy tail
Amúgy elvileg a CGI elfogadott, (pont nem értem, az is biztonsági lyuk lehet), de nem szívesen használnék azt sem, mert nem egyértelmű a policy nekem; elvileg semmilyen külső scriptet ne futtassunk, ami a szolgáltatáshoz nem kell, gyakorlatilag meg egy másik doksiban pont le van írva, hogy miknek kell megfelelnie a CGI-nek -> az viszont csúnya lenne, ha egy ilyenen audit találat lenne :S
-
-
Lacc
aktív tag
Hát ha már portot nyitsz, akkor ja stream. Akkor már használhatod a PHP-s stream_socket_server-t.
Ekkor már használhatod a PHP-t, és nem kell Shell-el manöverezned.
De akkor már inkább NodeJS, ha van rá lehetőséged használni.
Tele von Zsinór megoldása sem rossz, de security issue miatt nem javaslom.
-
válasz
Tele von Zsinór #19327 üzenetére
Na ott fogna meg a szeku, hogy nyitva a 1234-es port (amúgy lehet meg lehet oldani, hogy ne tegye... egy próbát megér, tudom ellenőrizni, hogy beriaszt-e a scanjük)
Pedig de nem lenne hülyeség
Elvileg ez a stream, nem?
-
Tele von Zsinór
őstag
Tákolás, de olyat tudsz, hogy a szerveren fut egy tail -f | nc -l 1234, a php-s gépeden meg van szerverenként egy folyamatosan futó script, ami az 1234-es portjára kapcsolódik és folyamatosan olvassa, ami jön. Aztán ezt teheted dbbe, redisbe, akármibe, ahonnan tudod olvasni és a régi bejegyzéseket automatikusan takarítani.
-
válasz
Tele von Zsinór #19325 üzenetére
OK
Annyira viszont nem fontos a dolog, hogy bármi ilyesmit indokolna. Részben saját tanulásra csinálnám, és itt amúgy sem szabad igazából semmit (ez nem zavarja azt a policyt, hogy igyekezz dologkat automatizálni, éljen a logika) , másrészt ágyúval verébre lenne. Mindegy, meg tudom oldani, csak egyszerűbb lett volna, ha tudom a cucc végét olvasni.
-
Tele von Zsinór
őstag
Ez már az a téma, amire nem php-t használnék. Nálunk éles gépek simán file-ba írnak, azt filebeat olvassa fel és tolja logstash fele, az meg tovább elasticsearchbe, ami előtt van egy kibana (kb. ez ismert ELK stack néven is).
Kibanában éles hozzáférés nélkül, realtime, kereshetőek a logok. Elastic fölé akár te is tudsz felületet gyártani.
-
PHP-ból shell script futtatást sem nagyon szeretik errefelé, de ki fogom próbálni, mivel az éles gépeken ez sem igényel módosítást (Linux amúgy, és van SSH kulcs, szóval jelszavas macera sincs)
Köszi
Winen max. Cygwin-nel menne, de ott is megoldható lenne a SSH szerintem. -
Lacc
aktív tag
Talán, lehet ha linux szerverről van szó - talán még Windows alatt is, már nem használok ilyet - szerintem egyszerűbb egy weboldal-t a logoknak fenntartani, ahol real-time menne az adatfolyam, amit távolról bárki elérhet belépés után, vagy rest-api funkcióval kibővíteni stb.
Bár nem tudom, hogy a PHP mennyire tudja ezt a parancsot lefutattni. (lehet kell valami külön könyvtár)
ssh server "tail -f /var/log/server.log | grep test"
Ezt kell egyexec
vagyshell_exec
-ben futattni.
Nem tudom, hogy manapság mennyire macerás futattni ssh parancsot PHP alól, látok pár szép megoldást a neten, de a legtöbb bejegyzés régi. -
válasz
cidalain #19321 üzenetére
Hozzáférhető, de ez mind a kettő melóhely, és további macera lenne php-t tenni az éles szerverekre is. Adott sok szerverünk, gondoltam csinálok realtime monitorozást. A szervereken van webszerver, de PHP és egyebek nincsenek, és nem is lesz (adminisztratív okok, egy nagy cégnél nem csinálhatsz akármit, mert megvágnak auditon bármiért). (A PHP a management szerveren van, az nem ennyire szigorúan vett dolog.)
Marad az, hogy akkor rövid logot csinálok, vagy két logot, és mondjuk az egyiket naponta archiválom. -
cidalain
veterán
A tavoli szerver hozzaferheto szamodra?
Csinalj oda egy masik php fajlt, ami ott megnyitja a logodat, es visszaadja az utolso x bejegyzest. Es otthonrol ezt a php fajlt nyitod meg, igy a neten keresztul csak mar a keves info jon.
Bar mintha biker is igy ertette volna az adatkozlo scriptet. -
-
biker
nagyúr
szerintem nem, mivel a php a te szervereden fut, innen mindegy hogy akarsz olvasni, az, hogy a végéről olvass, a teljes file beolvasása után értelmezhető.
A másik szerverre kellene egy adatközlő script (ez már lehetne php is) amit meghívva az adott filet ott beolvassa, és az utolsó X sort dobja válaszként -
Hello,
Van arra valami egyszerű megoldás, hogy PHP-ból olvassak egy távoli webszerveren levő file végéről?
Lenne egy logom, ami folyamatosan íródik, és realtime akarnám megjeleníteni. Pár megabyte méretű fileokat meg nem szívesen rángatnék át a hálón ~10-20mp gyakorisággal.
Ha mindig csak a végét rántom át, az viszont nincs 1K sem. -
-
spiritex
veterán
válasz
spiritex #19313 üzenetére
Ne fáradjatok vele, megvan a jó kód:
add_filter('woocommerce_loop_add_to_cart_link','change_simple_shop_add_to_cart',10,2);
function change_simple_shop_add_to_cart( $html, $product ){
if( $product->is_type('simple')) {$html = sprintf( '<a rel="nofollow" href="%s" data-product_id="%s" class="button">%s</a>',
esc_url( get_the_permalink() ),
esc_attr( $product->get_id() ),
esc_html( __( 'Bővebben', 'woocommerce' ) )
);
}
return $html;
}Érdekes ez a php, hogy ugyanazt a dolgot ennyire különböző módokon is meg lehet csinálni...
-
spiritex
veterán
válasz
spiritex #19311 üzenetére
A php-hez nem értve feltúrtam a netet és találtam egy majdnem jó kódrészletet, ami jó funkciókat ad a gomboknak, csak az istenért nem a Bővebben szöveget adja a gomnak, hanem a Read more-t...
Nem tudja valaki hogy honnan veszi ezt a Read more-t és hogy tudnám rávenni hogy Bővebben-t írjon?(Mondjuk érdekes, hogy a gombnak piros színűnek kellene lennie, de az szürke, tehát nem tökéletes a gomb... valószínűleg ezért nem akarja elfogadni a Bővebben feliratot sem... csak okoskodok laikusként.)
/*STEP 1 - REMOVE ADD TO CART BUTTON ON PRODUCT ARCHIVE (SHOP) */
function remove_loop_button(){
remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 );
}
add_action('init','remove_loop_button');/*STEP 2 -ADD NEW BUTTON THAT LINKS TO PRODUCT PAGE FOR EACH PRODUCT */ add_action('woocommerce_after_shop_loop_item','replace_add_to_cart');
function replace_add_to_cart() {
global $product;
$link = $product->get_permalink();
echo do_shortcode('[button link="' . esc_attr($link) . '"]Bővebben[/button]');
} -
don_peter
senior tag
Srácok biztosan a téma lerágott csont, de én még csak most kezdtem el vele foglalkozni.
"Keresőbarát", szép olvasható URL-t akarok az oldalamra készíteni, de sajna nem tudok dűlőre jutni egy problémával.
.htaccess-t létrehoztam meg is írtam amit kellett, de valamiért az URL egy + index/ mappával mélyebben van mint szeretném.Ilyen most a link: oldal.hu/index.php?id=lista
Erre szeretném: oldal.hu/listaÉs valamiért ilyenre hozza: oldal.hu/index/oldal
Van arra lehetőség, hogy az inden/ kikerüljön az URL.ből?
Előre is köszi..htaccess fájl tartama:
<IfModule mod_rewrite.c>
# Átírómotor aktiválása:
RewriteEngine On
# Alkönyvtár, pl. több domain esetén:
RewriteBase /
# A valós fájlok (pl. valami.jpg) kiszolgálásának biztosítása:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Maga az átírás (index.php esetén):
RewriteRule ^lista/ index.php?id=$1 [QSA,L]
# RewriteRule ^index.php$ - [L]
# RewriteRule ^(.+)/?$ index.php?id=$1 [L]
# RewriteRule ^index/(.*) index.php?id=$1 [QSA,L]
# RewriteRule ^index/(.*)/(.*) index.php?id=$1&oldal1=$2 [QSA,L]
# RewriteRule ^index/(.*)/(.*)/(.*) index.php?id=$1&oldal1=$2&oldal2=$3 [QSA,L]
</IfModule>
Pár változatot próbáltam, de sehogy nem kerül ki az index/. -
spiritex
veterán
Sziasztok!
Tudna valaki segíteni ezzel kapcsolatban?Hogy ez a kód:
remove_action('woocommerce_after_shop_loop_item','woocommerce_template_loop_add_to_cart');
add_action('woocommerce_after_shop_loop_item','woocommerce_template_loop_go_to_cart');
function woocommerce_template_loop_go_to_cart() {
global $product;
?>
<a class="button add_to_cart_button" href="<?php echo get_the_permalink($product->id); ?>"><?php _e('Bővebben'); ?></a>
<?php
}miért hatott ki a konkrét terméknél található Kosárba rakom gombra is és tette működésképtelenné?
A cél az volt, hogy a WordPress WooCommerce termékösszesítő oldalán ne lehessen kosárba tenni a termékeket a részletek megnézése nélkül és a Kosárba teszem gomb helyett egy Bővebben gomb legyen, ami elvisz a termék részleteihez. Ez meg is valósult, csak ugye lett egy fent leírt kellemetlen mellékhatása.
Előre is köszi!
-
Boryszka
tag
Sikerült a következőképpen:
mysqli_query($con, "INSERT INTO shoutbox(name, message, date) VALUES ('".$_POST['name']."', '".$_POST['message']."', now())") or die(mysqli_error());
Így már működik, köszi a segítséget!
Üdv!
-
Boryszka
tag
Illetve ezt dobja egészen pontosan, csak rosszul írtam be a mysqli_error-t:
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\shoutbox.php on line 28
Warning: mysqli_error() expects exactly 1 parameter, 0 given in C:\xampp\htdocs\shoutbox.php on line 28
-
Boryszka
tag
Az alábbi hibákat írja ki:
Warning: mysqli_query() expects parameter 1 to be mysqli, boolean given in C:\xampp\htdocs\shoutbox.php on line 28
Warning: Use of undefined constant mysqli_error - assumed 'mysqli_error' (this will throw an Error in a future version of PHP) in C:\xampp\htdocs\shoutbox.php on line 28
mysqli_error -
Joci93
senior tag
válasz
Boryszka #19305 üzenetére
Szia,
Az
$insert_sql =
szerintem nem kellene, ennyi elég lennemysqli_query($db, "INSERT INTO 'shoutbox' ('name', 'message', 'date') VALUES ('".$_POST['name']."', '".$_POST['message']."', now())");
Egyébként a pdo ajánlott mysqli helyett. (pluszpont, hogy nem mysql-t használsz.
)
-
Boryszka
tag
Sziasztok!
Segítséget szeretnék kérni, mert nem működik az adatbázisba való beszúrás. Lefut meg minden, de az adatbázisba nem teszi be az új rekordot.
<?php
$con = mysqli_connect("localhost","","") or die(mysqli_error);
$db = mysqli_select_db($con, 'test') or die(mysqli_error);
if (empty($_POST)){
echo '
<html>
<head>
<title>Üzenőfal</title>
</head>
<body>';
$query = mysqli_query($con, "SELECT * FROM shoutbox ORDER by date ASC");
while($a=mysqli_fetch_assoc($query)){
echo '
<hr>Név:'.$a['name'].'<br>Dátum:'.$a['date'].'<br>Üzenet:'.$a['message'].'';
}
echo '
<hr>
<form method="post">
Név: <input type="text" name="name"><br>
Üzenet: <input type="text" name="message"><br>
<input type="submit" value="Küldés">
</form>
</body>
</html>';
}else{
if($_POST['name'] !=="" && $_POST['message'] !== ""){
$insert_sql = mysqli_query($db, "INSERT INTO 'shoutbox' ('name', 'message', 'date') VALUES ('".$_POST['name']."', '".$_POST['message']."', now())");
header("Location:".$_SERVER['PHP_SELF']);
}
}
?>Nem értem, mi lehet a hiba... Köszi a segítséget előre!
-
radi8tor
MODERÁTOR
Sziasztok!
Még mindig webshop-téma.
PHP Warning: Division by zero in /home/www/clients/client1649/web5653/web/system/library/template/Twig/Environment.php(402) : eval()'d code on line 92
Environment.php:
/**
* Loads a template by name.
*
* @param string $name The template name
* @param int $index The index if it is an embedded template
*
* @return Twig_TemplateInterface A template instance representing the given template name
*
* @throws Twig_Error_Loader When the template cannot be found
* @throws Twig_Error_Syntax When an error occurred during compilation
*/public function loadTemplate($name, $index = null)
{
$cls = $this->getTemplateClass($name, $index);
if (isset($this->loadedTemplates[$cls])) {
return $this->loadedTemplates[$cls];
}
if (!class_exists($cls, false)) {
if ($this->bcGetCacheFilename) {
$key = $this->getCacheFilename($name);
} else {
$key = $this->cache->generateKey($name, $cls);
}
if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
$this->cache->load($key);
}
if (!class_exists($cls, false)) {
$content = $this->compileSource($this->getLoader()->getSource($name), $name);
if ($this->bcWriteCacheFile) {
$this->writeCacheFile($key, $content);
} else {
$this->cache->write($key, $content);
}
eval('?>'.$content);
}
}
if (!$this->runtimeInitialized) {
$this->initRuntime();
}
return $this->loadedTemplates[$cls] = new $cls($this);
}Végén található eval-ra panaszkodik.
De ez pontosan mit jelent? eval()'d code on line 92 -
zmb668
újonc
Na ja, igazad van. Kicsit máshogy értelmeztem a dolgot.
Új hozzászólás Aktív témák
Hirdetés
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- OLED TV topic
- sziku69: Fűzzük össze a szavakat :)
- Szívós, szép és kitartó az új OnePlus óra
- Azonnali fotós kérdések órája
- Elektromos cigaretta 🔞
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- HiFi műszaki szemmel - sztereó hangrendszerek
- Posta, csomagküldés
- PlayStation 5
- További aktív témák...
- T14s Gen4 14" FHD+ IPS i7-1365U 16GB 512GB NVMe magyar bill IR kam gar
- Gopro hero 7 black
- ThinkBook 16p Gen3 16" QHD+ IPS Ryzen 5 6600H RTX 3060 16GB 512GB NVMe ujjlolv gar
- ThinkBook 16p Gen3 16" QHD+ IPS Ryzen 5 6600H RTX 3060 16GB 512GB NVMe ujjlolv gar
- HP Probook 640 G2 (14FHD/i3-G6/8GB/256SSD/Magyar/Win11) - Szép!
- Apple iPhone 11 64GB, Kártyafüggetlen, 1 Év Garanciával
- Telefon felvásárlás!! iPhone X/iPhone Xs/iPhone XR/iPhone Xs Max
- Azonnali A320 B350 X370 B450 X470 A520 B550 X570 chipset alaplap felvásárlás személyes/csomagküldés
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! MSI B365M i5 8600 16GB DDR4 512GB SSD RX 5700XT 8GB CM MASTERBOX Q300L Zalman 600W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged