- D1Rect: Nagy "hülyétkapokazapróktól" topik
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- Gurulunk, WAZE?!
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- gban: Ingyen kellene, de tegnapra
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- Ndruu: Segíts kereshetővé tenni a PH-s arcképeket!
- Szoszo94: Xiaomi Mi Router 3G - Padavanra fel!
Új hozzászólás Aktív témák
-
Atos23
senior tag
válasz
miroon #21097 üzenetére
Köszi Nektek, ebédidőben kipróbálom!
Abban az esetben, ha a formokat gombnyomáshoz csoportosítom, és így több form csoport lesz, hogy lehet szépen megoldani? Így menni fog?
<input type="submit" name="button4"
class="button" value="Delete record" />
<label><span>Which record do you wnat to delete?</span></label>
<form name="form" action="" method="POST">
<input type='number' name="delteid" id="deleteid" value="">
</form><input type="submit" name="button3"
class="button" value="Add record"
<label><span>Please type the elements of new record</span>
<form name="form" action="" method="POST">
<input type="text" name="addid" id="addid" value="id">
<form name="form" action="" method="POST">
<input type='text' name="addlocation" id="addlocation" value="Location">
<form name="form" action="" method="POST">
<input type='text' name="addtype" id="addtype" value="Type">
</form>Az id tényleg auto increment lesz, így akartam véglegesíteni.
Egyébként az ronda megoldás, hogy a törlésnél id alapján törlök? -
miroon
aktív tag
válasz
Atos23 #21095 üzenetére
Amit Mike írt előttem, kb az a megoldás. Egy form-ba tedd az összes inputot, mert így csak a legelső formot küldi el.
<form name="form" action="" method="POST">
<input type="text" name="adid" id="adid" value="id">
<input type='text' name="adfajta" id="adfajta" value="Fajta">
<input type='text' name="adhelyszin" id="adhelyszin" value="Helyszin">
</form>
De biztos, hogy az id-t is a form-ról akarod bevinni? Nem lehet egy auto increment id?
-
Atos23
senior tag
Halihó!
Elég hülye voltam mindig is a webprogramozáshoz, és ez így is marad, de sajnos egy öregeknek szóló villamosmérnöki levelező képzésen kitalálták, hogy weblapot kell készítenünk.
Reggel óta próbálom megoldani ezt az elméletileg tök egyszerű feladatrészt a komplett weblapomhoz, de sajnos nem megy, pedig a stackoverflowt már rongyosra olvastam.
A feladat ezen részében egy php oldalon be kellene kérnem néhány text adatot, majd ezzel machinálnom MySQL-ben.
Sikerült is megoldanom, egészen addig tök jól működik, amíg egy darab adattal variálok, pl. az elsődleges kulcs alapján ki akarom törölni az egész rekordot.HTML:
<form name="form" action="" method="POST">
<input type='number' name="torlesid" id="torlesid" value="">
</form>PHP:
$torlesid = $_POST['torlesid'];
$sql = "DELETE FROM lista WHERE id = '$torlesid'";A feladat későbbi részében már több text adatot kellene bekérnem, és ezekkel az adatokkal feltölteni a rekordot. Na itt azt gondoltam, hogy okés, akkor legyen több input, és több változó, és már készen is vagyunk. Na ekkor dőlt össze minden, mert kizárólag az első változó működik, a többi már nem.
Hogyan tudom megoldani, hogy több HTML textboxból csináljak változókat, és azokat beadjam az SQL parancsnak? Stackoverflown csak olyan példát láttam, ahol egy textbox adatait adjuk át.Ez a nem működő próbálkozásom:
HTML:
<form name="form" action="" method="POST">
<input type="text" name="adid" id="adid" value="id">
</form><form name="form" action="" method="POST">
<input type='text' name="adhelyszin" id="adhelyszin" value="Helyszin">
</form><form name="form" action="" method="POST">
<input type='text' name="adfajta" id="adfajta" value="Fajta">
</form>PHP:
$adid = $_POST['adid'];
$adhelyszin = $_POST['adhelyszin'];
$adfafajta = $_POST['adfajta'];$sql = "INSERT INTO lista (id, helyszin, fajta) VALUES ('$adid', '$adhelyszin', '$adfajta'); ";
Előre is köszi minden ötletet, hogy mit ronthatok el a változók átadása terén!
-
válasz
polymorphin #21092 üzenetére
Értem, köszönöm.
-
Sziasztok!
Szeretném azzal kezdeni, hogy NEM vagyok jártas PHP-ben, csak annyit foglalkoztam vele, amennyi kellett az éppen aktuális projekthez.
Továbbá zéró tapasztalatom van a mySQL (vagy bárminemű SQL) adatbáziskezelésről PHP-n keresztül. Viszont most kelleni fog
Annyit kitapasztaltam már, hogy ha egy gomb PHP kódot futtat (felveszi a kapcsolatot a szerverrel és módosítást hajt végre), akkor az adott oldal lefrissít (akkor is, ha nincs visszakapott érték). Ez így működik, elfogadom.
A kérdésem az lenne, hogy amennyiben egy adatbázist módosítok, avagy gombnyomásra onnan olvasok ki információt, akkor is lefrissül-e, vagy sem?Azért teszem fel a kérdést és nem lepróbálom, mert csak most kezdtem el olvasgatni a használatáról és nincs jelenleg időm próbafájlokat csinálni, viszont szeretném tudni, mire kell számítanom.
Köszönöm előre is!
-
kuyarashi
őstag
Sziasztok!
Kis segítség kellene. Egy tizenéves honlap üzenetküldő űrlapjához szeretnék hozzárendelni CAPTCHA-t.
1. lépésben bemásoltam a <title> alá a következő sorokat.
<script src="https://www.google.com/recaptcha/api.js"></script>
<script>
function onSubmit(token) {
document.getElementById("demo-form").submit();
}
</script>
A küldés gomb alapvetően így nézett ki.
<input class="sendButton" type="submit" value="Küldés">
Ezt kellene összefésülni az alábbival, de eddig nem jött össze.<button class="g-recaptcha"
data-sitekey="reCAPTCHA_site_key"
data-callback='onSubmit'
data-action='submit'>Submit</button>
Vagy megjelenik a captcha, de nem működik a küldés gomb, vagy fordítva.
Előre is köszönöm a segítséget. -
Mike
veterán
válasz
laracroft #21084 üzenetére
ha már midnenáron keverni akarod, akkor írd stringbe a html-t, a php-n belül
tehat $kiir_html = '<p>Blabala</p>';
de még jobb ha helyörzőket használsztehat $html = '<p style="{{p_style}}">Blablabla</p>';
$p_style = 'color:red';
ki_html = str_replace("{{p_style}}", $p_style, $html);aztán ezt még lehet fokozni regex-szel, ami megkeresi az összes "{{}}" előfordulást, és a tömbben/objeltumtömbben kapott értékekkel lecseréli, stb
ezzel azt is meg tudod csinálni, hogy külső html templateket hívsz be, amikben a helyörzőket kicseréled aztán php-ban -
laracroft
senior tag
Sziasztok
Noob vagyok, úgyhogy nézzétek el nekem
Vscode-ot használok php fájlhoz. Hogy valahogy kinézzen Prettier-Code Formatter-t használok hozzá.
Ha keveredik a html kód php kóddal, akkor nagyon érdekes formátumot kezd használni.
Előtte
Utána
Erre tudtok valami megoldást, hogy ne így tegye?
Vagy mást használtok?
Előre is köszi -
RedHarlow
aktív tag
Sziasztok, folyamatábrákat kellene készítenem (7db-ot) egy weboldalra, változó adatokkal. Ki hogy oldaná meg ezt? Én alapjáraton táblázatokban gondolkodtam de gondoltam megkérdezem, hogy nincs-e esetleg valami plugin erre vagy jobb megoldás?
Előre is köszönöm a segítséget!
-
bzolika10
aktív tag
Sziasztok!
Olyan probléma merült fel az adatbázisba való felvitel során, hogy ha input formból viszem fel a szöveget, akkor az adatbázisban mindenféle más karakterek jelennek meg az ékezetes karakterek helyén. Viszont teljesen jól működik, csak az adatbázisban látszik, hogy baj van. Ha csv-ből viszek fel adatot azt ékezethelyesen viszi fel. a php.iniben és a html-ben is utf-8-ra van állítva a kódolás, az adatbázisban utf8mb4. Mi lehet a baj?Szerk.: Ha kiszedem a htmlentitiest, akkor jól működik. Csak hát anélkül meg...
-
Mike
veterán
válasz
hellsing71 #21074 üzenetére
nem kell külön deklarálni php-ban változót
egyszerűen elkezded használni -
nevemfel
senior tag
válasz
hellsing71 #21074 üzenetére
Valami konkrét példa nem ártana, mert ez
$var = "valami";
nem produkál semmiféle notice-t vagy warningot egyik php verzió alatt sem. -
hellsing71
tag
Bocs, biztos rövid az agyam: hogyan definiálok (procedurális) php-ban egy változót? Eddig mindig csak azt csináltam, hogy $var = "valami", de erre jön a Warning. Van a define-nak változókra vonatkozó párja (amiről sose hallottam)? OOP-ben tudom: "public int $var....", de proc-ban? Ez az egész anyag procedurális, nem állhatok neki átírtni OO-ba.
-
Taci
addikt
válasz
hellsing71 #21072 üzenetére
Szia!
Ha olyan változót akarsz használni, ami nincs definiálva, és emiatt szól a PHP, akkor a megoldás az, hogy definiálod a változót.
Vagy eleve úgy építed a kódot, hogy
if (isset($valtozo) {
//...
}És akkor ha nincs is definiálva, hibára sem fog futni (ill. warningot sem fog adni), mivel az érintett kódrész se fog lefutni.
-
hellsing71
tag
Üdv,
Hobbiból néha programozok, és előre sejtem, hogy mit fogok kapni a fejemre, de lécci segítsetek. Hogy kellene php 8.1.x procedurális kódban elkerülnöm a "Warning: Undefined variable..." hibaüzeneteket? Egy 5.x alatt írt régi weboldalt frissítek, és akkoriban ez még egy Notice volt, amit kikacsoltam, de a Warningokat nem akarom. Néztem a Google-t és a php doksit, de nem igazán segítettek. Nincs is erre php utasítás, mint az állandóknál a define, nem? Vagy a frissítés után simán kapcsoljam ki az E-ALL-t és kész?
-
Taci
addikt
Sziasztok!
.htaccess
-hez ért valaki esetleg közületek?Már egy ideje elakadtam vele, de eddig volt más amit csinálni kellett - most viszont már hátráltat, hogy nem megy.
Azt szeretném elérni, hogy
- awww.pelda.hu/site1, .../site2, .../site30
és awww.pelda.hu/category1, .../category2, .../category50
URL-ekre a szerveren lévő tartalmat hozza be, tehát simán nyissa meg az oldalakat,
(ezzel ugye nincs teendő a fájlban, de a "feladat" talán így jobban érthető)- viszont amikor van site és category is (ebben a sorrendben), pl.:
www.pelda.hu/site1/category1, .../site1/category50, .../site30/category50
stb.
akkor az irányítson át a főoldalra (index.html).(Minden mást ami nem valid, futtasson 404-re.)
Csak egy olyan megoldásig sikerült eljutni, ami a
.../site
, illetve a.../site/category
válozatokat (úgy ahogy) jól kezeli (de nem tökéletesen azokat sem - pl. ha/
van az url végén (pl.www.pelda.hu/site1/
), akkor azt hibásnak veszi, és 404-re dob).DirectoryIndex index.html
RewriteEngine On
# If the request is not of the form
# "/site" or "/site/category" then stop here
RewriteRule !^[^/.]+(/[^/.]+)?$ - [L]
# Validate "site" (first path segment)
RewriteCond $1 !=site1
RewriteCond $1 !=site2
RewriteCond $1 !=site3
# etc.
RewriteCond $1 !=site30
RewriteRule ^([^/.]+) - [R=404]
# Validate "category" (second path segment)
RewriteCond $1 !=category1
RewriteCond $1 !=category2
RewriteCond $1 !=category3
# etc.
RewriteCond $1 !=category50
RewriteRule ^[^/.]+/([^/.]+)$ - [R=404]
# Front-controller
RewriteRule . index.html [L]
Ért valaki közületek annyira ehhez, hogy tudna ebben segíteni?
Köszönöm.----------
Esetleg egy ilyen egyszerű megoldás? Még csak most leltem rá:RewriteRule ^/?(site1|site2|site3)/(category1|category2|category3)/?$ index.html [L]
-
Taci
addikt
Jellemzően kihagyja a dinamikus rész előállításához szükséges JS betöltését a Google, így nincs tartalom sem az általa indexelt verzióban. (Néha viszont behúzza, és szépen összerakja, de jellemzően inkább nem. Van, hogy egyik nap azt látom a Search Console-ban, hogy ott a tartalom is (nem csak a keret), másnap meg azt, hogy írja, a JS-t kihagyta, így tartalom sincs.)
Ezért kell statikus tartalom a szerver oldalra is, hogy nehezebb napjain is legyen mit indexelnie. -
Taci
addikt
JS-alapon tartalmat generáló az oldal, így a tényleges tartalom csak a kliensen látható, a szerveren az index.html csak egy üres váz. A Google pedig ezt nem szereti (nem akarja indexelni), ezért kell szerverre is kvázi statikus tartalmat generálnom. És ezt valamennyire frissen tartani, ezért az 5 percenkénti ismétlődés.
\site1\category1
..
\site1\category50
..
\site30\category1
..
\site30\category50A 30 x 50 = 1500 html oldal viszont sok, már változtattam a koncepción, "csak" 30 + 50 = 80 oldal van. És talán azt is elég csak óránként. Szóval az meg főleg nem nagy feladat már a szervernek. (És nekem is egyszerűbb.)
De érzésre a problémát rosszul közelíted meg.
Én sajnos tudom is, csak nem találok jobbat (a funkciók csorbítása nélkül), és valamit viszont csinálnom kell. -
Taci
addikt
Nem programozás, egyelőre ott még nem tartok a témában, viszont a vége az lesz, ezért ez a topik.
Ha (legrosszabb esetben) le kell mondjuk 5 percenként generálnom 30 x 50 .html oldalt szerver oldalon (ahol 1 .html 100kB méretű), ez mennyire erőforrásigényes?
Lehet "bajom" belőle (rám szól a szolgáltató, hogy ez túlságosan lehúzza szervert), vagy csak egy kis task egy átlag szervernek?
150 MB-nyi adat, azért ez nem a világ vége, viszont minden 5 percben, és mindegyik generálása külön-külön adatbázis-lekérdezésekkel is jár.
Még nem kezdtem hozzá, mert ha vakvágány, akkor keresek más utat.
Köszönöm. -
Taci
addikt
Sziasztok!
Iránymutatást szeretnék kérni a következő témában:
Adott a weblapom, ami egy HTML keret (felső és oldalsó panelek, menük), amihez a szerverről érkezik az adat a content részhez, amit a kliens rak össze és jelenít meg JS segítségével. Tehát client side rendering (CSR).
Az elmúlt 2 hónap tapasztalata alapján úgy néz ki, hogy a Google ezt a fajta megoldást nagyon nem szereti, össze-vissza indexel kb. random részeket belőle, így a SEO is ugrik, nagyon rossz az egész. Valószínűleg ez a dinamikus tartalomhozzáadás az üres vázhoz nem a kedvence.
Azt a tanácsot kaptam, hogy próbálkozzak meg server side renderinggel (SSR).
Dinamikus az oldal, görgetek, jön az újabb tartalom, a lap alja közelébe érek, tölti a többit stb. Ezért azt a tanácsot kaptam, csináljam úgy, hogy legenerálom 1-2 percenként szerver oldalon az első pár megjelenítendő elemre a teljes oldalt, ami pedig görgetés után jönne, azt ezután is rakhatom dinamikusan JS-tel. Így a Google is nagyjából fix tartalmat kapna (legalábbis a content részt így már JS-töltés nélkül is láthatja és indexelheti), és megmaradna az oldal dinamikus mivolta is.A kérdésem az lenne, hogy ez kb. hogyan néz ki működés közben?
- 1-2 percenként legenerálom szerver oldalon azt a teljes index.html-t, ami a jelen változatban a keretből, és a JS-által összerakott elemekből áll?
- És eddig csak a megjelenítendő első pár elem adatait adta vissza a szerver, ezután pedig a teljes, tartalommal feltöltött index.html kódját?Tehát ha jól értem, a cél az kellene hogy legyen, hogy az első HTML kód ami a kliensre érkezik, abban már legyen tartalom is (a mostani üres keret + azután JS-en keresztül behúzott tartalom helyett). Jól értem?
Azért ebbe a topikba írtam, mert gondolom, a mostani index.html-t cserélnem kell index.php-ra. (De ebben nem vagyok biztos. Csak félek attól, ha ugyanígy .html-en hagyom, amiben lesz egy szkripthívás, amivel a szerver oldalon generált html tartalmat áthúzom, akkor a Google szemében az nem lesz más, mint a mostani. Hisz' igazából ugyanazt csinálja: van egy keret, és szerverről tölti fel a hiányzó részt. Csak a mostani változatban kevesebbet, az újban meg kb. mindent. Szóval ha úgy nézem, akkor még kevesebb tartalomból tudna indexelni a Google... Nem tudom... Nagyon össze vagyok most ezzel kapcsolatban zavarodva.)
De ez a .html --> .pho amúgy a Wordpress jutott az eszembe, ami szintén ha jól tudom, szerver oldalon renderel, és az is index.php-vel operál.Nem örülök neki, hogy az eddig felépített szerkezetet kb. teljesen át kell írnom, de a Google nagyon mostohán bánik a jelenlegi szerkezettel, szóval muszáj vagyok lépni.
De amit már megcsináltam eddig, azt szeretném megtartani, tehát magát az oldalt nem szeretném új alapokra helyezni, az már készen van - csak másképp eljuttatni a kliensekre.Ebben kérnék iránymutatást, mert nagyon nem látom, merre van az előre.
Köszönöm. -
lanszelot
addikt
válasz
sztanozs #21061 üzenetére
Bocsánat, félre értettél.
Azt próbáltam elmagyarázni miért nem jó a #21059 -es.
Azt tudom hogy lehet html form -ot változókban tárolni.
A #21059 -eshez próbáltam rámutatni, hogy az "oldal" nem kapja meg az inputot sehonnan. A "kep" nem tartalmazhat karaktert, sem a "link" mert inputból kapja.
A linket azért dobtam hogy mit értek html form/input alatt.
Amiket meg tudok találni oktató anyagokban azzal nincs gondom, mert meg keresem.
De vannak dolgok amiket sehol se találok, ha találok azok nem működnek.Azért próbáltam leírni részletesen mit is akarok.
Tehat van egy json file. Abból php beolvassa az $array változóba az adatokat. -erre találtam oktató anyagot.
Majd html form/input ból az adatok php változókba kerülnek. - ez is tiszta.
Ezekkel a változókkal /ami jelen esetben $oldal , $kep, $link/ az $array tömbbe hozzá adja az adatokat - na erre sehol se találtam semmit. /Tömbbe, objektumot változókkal nem létrehozni, hanem hozzáadni/
Létrehozni létre tudom hozni, azzal nincs gond. Hozzá írni nem tudok, mindig felül írja azt ami $array -ben van.
Tehát se a megfelelő /tömbbe objektum változókkal/ kód -ot nem találtam sehol.
Se a tömb-höz hozzá adni, nem felülírni.
Egyiket se találtam sehol.---nem tanultam sehol php t, nincs vele célom, nem akarok ebben dolgozni, csak szórakozás nekem. Megtanultam az alapokat, és kitalálok honlapokat, hogy így fejlődjek. Ezért nem értem, ha nem értek valamit, mert nagyon kezdő vagyok.
van aki horgol, vagy fest, én tanulgatok ---
-
sztanozs
veterán
válasz
lanszelot #21060 üzenetére
Oké, megpróbáltam összedobni W3-ban, de nem jó ott a callback, viszont ez alapján látnod kellene mit kell csinálni:
<!DOCTYPE HTML>
<html>
<head>
<style>
.error {color: #FF0000;}
</style>
</head>
<body>
<?php
// betöltés szimulálása
$array = array();
$array["google"] = ['kep' => "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", 'link' => "www.google.com"];
$array["startlap"] = ['kep' => "https://lap.hu/images/startlap-logo.png", 'link' => "www.lap.hu"];
// betöltés vége
// define variables and set to empty values
$nameErr = $kepErr = $linkErr = "";
$name = $kep = $link = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
if (empty($_POST["name"])) {
$nameErr = "Name is required";
} else {
$name = test_input($_POST["name"]);
// check if name only contains letters and whitespace
if (!preg_match("/^[a-zA-Z_]*$/",$name)) {
$nameErr = "Only letters and underscore allowed";
}
}
if (empty($_POST["kep"])) {
$kepErr = "Email is required";
} else {
$kep = test_input($_POST["email"]);
// check if e-mail address is well-formed
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$kep)){
$kepErr = "Invalid URL format";
$kep = "";
}
}
if (empty($_POST["link"])) {
$link = "";
} else {
$link = test_input($_POST["link"]);
// check if URL address syntax is valid (this regular expression also allows dashes in the URL)
if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$link)) {
$linkErr = "Invalid URL";
$link = "";
}
}
if ($name > "" && $kep > "" && $link > "") {
$array[$name] = ['kep' => $kep, 'link' => $link];
}
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h2>PHP Form Validation Example</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name" value="">
<br><br>
Kep: <input type="text" name="kep" value="">
<br><br>
Link: <input type="text" name="link" value="">
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
<span class="error"><?php echo $nameErr;?></span>
<br><br>
<span class="error"><?php echo $kepErr;?></span>
<br><br>
<span class="error"><?php echo $linkErr;?></span>
<br><br>
<textarea>
<?php
var_dump($array);
?>
</textarea>
</body>
</html> -
lanszelot
addikt
válasz
sztanozs #21059 üzenetére
a for ciklus nem jó.
Nem is értem miért kell, és mit csinál a $xFor ciklusban lévő kód nem jó.
html form/input -ból kapja az adatokat. tehát "oldal" önmagában honnan tudná, hogy az "oldal" input micsoda.
"kep" -nél és "link" -nél sem lehet link, hisz az inputból kapja meg.
$array nem üres, azt a legelején a json -ból olvasssa ki, és ahhoz kellene hozzá fűznie, nem felülírni.Gondolom, hogy én magyarázom bénán, csak codepen nem tud php-t.
-
sztanozs
veterán
válasz
lanszelot #21058 üzenetére
Ez csak egy példa kód, ráadásul amit becsatoltál példa-json-t az nem is felel meg annak, amit szeretnél (nem azonosak az asszociatív nevek)...
Nem tudom, hogy és honnan állítódnak elő ezek a változók, szóval csak összedobtam pár sort, hogy ugyanolyan kimenetű JSON-t kap, mint ami a példában volt.
---
De bocs, én néztem el, neked ez kéne:{
"google" => {'kep' => "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", 'link' => "www.google.com"},
"LapHu" => {'kep' => "https://lap.hu/images/startlap-logo.png", 'link' => "www.lap.hu"}
}Akkor itt a módosított kód:
$array = array();
$array["google"] = ['kep' => "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", 'link' => "www.google.com"];
$array["mail"] = ['kep' => "https://lap.hu/images/startlap-logo.png", 'link' => "www.lap.hu"];
for ($x = 0; $x <= 10; $x++) {
$array["oldal$x"] = ['kep' => "www.oldal.hu/kep/linkje/$x.png", 'link' => "www.oldal.hu"];
}
var_dump($array);Mivel a külső tömb is asszociatív, így ha ugyanazzal a névvel akarsz felvinni egy új oldalt akkor a régit felülírja - és 13 helyett csak három tömbelem lesz:
$array = array();
$array["google"] = ['kep' => "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png", 'link' => "www.google.com"];
$array["mail"] = ['kep' => "https://lap.hu/images/startlap-logo.png", 'link' => "www.lap.hu"];
for ($x = 0; $x <= 10; $x++) {
$array["oldal"] = ['kep' => "www.oldal.hu/kep/linkje/$x.png", 'link' => "www.oldal.hu"];
}
var_dump($array); -
lanszelot
addikt
válasz
sztanozs #21057 üzenetére
Először is köszönöm szépen.
Nem nagyon értem.
Nem éretem mit csinál a $x
Html form -al viszem be mind, input mezővel. oldal a: google, kep a: google.jpg, link a: www.google.com /oldal, kep, link/
illetve ez a formátum biztosan nem jó "www.site$x.com" hiszen nem minden oldal www , pláne nem com, és a login.xbox sem csak xbox.
Illetve a google, és a mail az jsonból van beolvasva, nem így hozom létre. És az a json lesz feülírva. -
sztanozs
veterán
válasz
lanszelot #21056 üzenetére
Gyorsan kipróbáltam, ez adni fogja a megadott struktúrát:
$array = array();
$array[] = ["google" => ['name' => "Google", 'link' => "www.google.com"]];
$array[] = ["mail" => ['name' => "Mail", 'link' => "www.mail.com"]];
for ($x = 0; $x <= 10; $x++) {
$array[] = [ "link$x" => ['name' => "Site$x", 'link' => "www.site$x.com"]];
}
var_dump($array); -
lanszelot
addikt
Hello,
Amit szeretnék: json file-ba adatokat bevinni.
Adott egy json file, ami így néz ki:
azaz tömben object.
ha html form -al hozzá szeretnék adni még pl youtube-ot, akkor nem hozzá adja, hanem felül írja.
Már az alapoknál gondom van, azaz üres tömbnél hozzá adnám a fenti formának megfelelőt, de 2 hiba is adódik. Google bevitel után a mail felül írja a google-t, illetve kerül bele egy "0" de nem tudom honnan. Fontos, hogy html form -al adom hozzá egyesével az üres tömbhöz /adnám, ha sikerülne/
oldal a: google, kep a: google.jpg, link a: www.google.com
oldal után keletkezik egy "0" valahonnan
/tudom, hogy JS nél push lenne, az hozzá adja nem felül írja, de php-ben nem találtam a megfelelőjét.
kód:$array = array(); $array[] = (object) ['oldal' => $oldal, ['kep' => $kep, 'link' => $link]];
-
laracroft
senior tag
Sziasztok,
Nem éretek valamit.select * from NAPLO where ACCOUNT='3827' and LINE='1' order by IDO DESC;
select * from NAPLO where ACCOUNT='3827' and LINE='1' order by IDO;
Az első lekérdezésnél nincsenek rekordok, a másodiknál vannak.Itt meg mi lehet?
IDO: Datetime, ACCOUNT: INT, LINE: INTKöszi
-
laracroft
senior tag
Sziasztok
MySQL-ből kérek le magyar nyelvű szövegeket.
Azt szeretném elérni, hogy bizonyos szavakat lekérdezés után már angolul írja ki.
Szerintetek hogyan tudnám azt elérni, hogy pl. egy dictionary fájlban felsorolnék angol-magyar szópárokat és azoknál talált egyezés esetén kicserélné a megjelenített szövegben a szavakat.Ötleteket szeretnék kapni tőletek, hogy hogyan tudnám ezt megoldani.
Előre is köszi -
don_peter
senior tag
Kedves fórumozó kollégák!
Olyan kérdésem lenne, amely a speciális (ékezetes) karaktereket érinti.
Van egy API, amellyel tanulásként vacakolok, egy adatbázis lekérdezés van benne, amelyet szeretnék json struktúraként átadni egy alkalmazásnak.
A gond az, hogy ha valamilyen speciális karaktert tartalmaz (pl. ékezetes betűk) egy-egy mező, akkor annak a mezőnek a struktúrában NULL lesz az értéke és az alkalmazás, amellyel fel akarom dolgozni az adatokat keresztbe áll.
Adatbázis lekérdezés elégé egyszerű:SELECT nev, leiras FROM emberek LIMIT 10
Aztán jöhet a json struktúra:
json_encode($records);Arra rájöttem, hogy még mielőtt json-ak átadom a $records tömböt, kellene bejárni és minden hol, ahol van speciális karakter (ékezetes karakter) azt kicserélni a megfelelő utf kódra, de akár hogy próbáltam eddig, valamiért nem változott meg, nem írta felül az értéket. Nem szedtem külön a recordot, magában akartam megoldani.
Aztán eszembe jutott, hogy ezt esetleg lekérdezésnél is meg lehet oldani, de az meg nem volt szép és valamiért SQL felületen működött, de szerveren futtatva már nem.SQL REPLACE(mezo, mit, mire)
Aztán ha több karaktert kell cserélni, akkor ennek ismétlése annyiszor, ahány karakter érintettSQL REPLACE(REPLACE(REPLACE(mezo, mit, mire), mit2, mire2), mit3, mire3)
Kérném a segítségeteket, hátha van valakinek egy kitapasztalt és jól működő megoldása erre a problémára.
Köszi előre is. -
sztanozs
veterán
válasz
Winner_hun #21043 üzenetére
Igen, kliens oldali javascripttel:
https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Interact_with_the_clipboardKonkrét megvalósítások:
https://stackoverflow.com/a/30810322/8154543 -
pelyib
tag
válasz
Winner_hun #21039 üzenetére
Jó ötlet, sok sikert.
Kérdés is van vagy csak megosztottad az ötletet? -
Winner_hun
félisten
Nem értek hozzá. Ami szeretnék:
Weboldalra képeket kitenni, akár úgy is, hogy egy mappába csak beteszem a képeket, azok meg egymás után megjelennek, ömlesztve az oldalon. A képekre való kattintáskor a kép URL címe kerüljön vágólapra.
-
Taci
addikt
Sziasztok!
A php error logban sok ilyen bejegyzést találok:
PHP Warning: Error while sending STMT_PREPARE packet. PID=123456Van, amikor a szkript teljesen elején lévő legelső lekérdezésre mutat, van, amikor a közepére, változó.
Kerestem, mi lehet, de egyértelmű választ nem találtam. A megoldási javaslatokból viszont úgy tűnik (és ebben erősítsetek vagy cáfoljatok meg, kérlek), hogy nálam esetleg az a baj, hogy minden cron job-ot (kb. 20 db) egyszerre hívok meg, így kvázi egyszerre terhelik le a szervert, és néha egyszerűen ez talán túl sok neki.
Jó a sejtésem, vagy tévúton járok?
Ha jó, megoldás lehet erre, hogy a cron jobokat (amik amúgy most 5 percenként futnak) eltolom valahogy? Tehát most mindegyik lefut egyszerre minden 5 percben. De mondjuk minden másodikat eltolnék, hogy ugyanúgy 5 percenként fusson, de ne 00-kor kezdje, hanem 01-kor, és akkor a következő 06-kor stb. Aztán minden harmadikat 02-es kezdettel stb.
Így valamelyest tehermentesebb lenne a szerver, még ha csak 1-1 perccel is eltolva a szkriptek indulását. (Vagy akár inkább másfél perccel, mert úgyis 90mp a futási limit.)Vagy más lehet az oka ennek?
Kódot azért sem írtam, mert változó, hogy melyikkel van épp "baja", de már a legegyszerűbb 2 paraméteresre is írja ki néha, szóval nem a "bonyolultságán" múlik szerintem.Köszi!
-
Taci
addikt
Sziasztok!
Tanácsot szeretnék kérni adatbázis backupolással kapcsolatban.
Amíg az itthoni tesztkörnyezetben dolgoztam (fejlesztettem),
mysqldump
-pal ésmysqladmin
-nal (flush-logs
) csináltam egy nagyon jól működő inkrementálisan backupoló rendszert.
Aztán átköltöztem a szolgáltatóhoz, ahol kiderült, hogy sajnos se abinary log
nincs engedélyezve, sereload
jog nem elérhető, így ez a módszerem ott nem működőképes.
Azóta csak kézzel tudok (cPanelen keresztül) backupolni, nyilván azt is csak akkor, amikor épp odaérek. Ez pedig így nem jó.Tudnátok tanácsot adni, hogy az elérhető tool-okkal milyen automatizált backupoló megoldást tudnék létrehozni?
Ezeket tudom használni:
Köszönöm.
-
supercow
őstag
válasz
bookfan #21035 üzenetére
Nem tudom mivel konvertálod, de mivel nem formátum-specifikus meta adatot tárolsz (kvázi hibás fájlokat írsz?) kétlem hogy megtartaná bármelyik olvasó vagy konverter. Ha valamiféle kezdetleges másolásvédelmet próbálsz építeni akkor azt sürgősen felejtsd el. Egyébként ha nagyon kell akkor nézz utána, hogy az adott fájlformátumban hogyan kell/lehet "rendesen" betenni extra adatot.
UI: ez a fread($h, filesize($filename)) memóriába olvassa a teljes fájlt, egy nagyobb állományt feltöltve simán eléred a php memória limitet és összef*ssa magát a PHP. Inkább valami más, biztonságosabb módszert keress. -
bookfan
újonc
Sziasztok!
Van egy ilyen kódom:
<?php
function pushfile(&$file) {
header_remove();
if (isset($file["type"])) header('Content-Type: '.$file["type"]);
if (isset($file["name"])) header('Content-Disposition: attachment; filename="'.$file["name"].'"');
print $file["name"];
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Pragma: ");
echo $file["content"];
exit;
}
$h=fopen($filename,"r");
$tartalom = fread($h, filesize($filename));
fclose($h)
$file["name"] = $real_filename;
$file["content"] = $tartalom."*".$context['user'][id'];
pushfile($file);Nagyon jól belerakja az adott fájlba az userid-t (pdf,epub), de ha átkonvertálják eltűnik belőle. Hogy lehetne megoldani,hogy benne maradjon az id konvertálás után is?
Köszönöm előre is a segítséget
-
liksoft
nagyúr
Most kerestem rá, és igen! Egy ilyen kinézet tökéletes, ha van feltölt, átnevez/töröl, könyvtár létrehoz/töröl/átnevez. A .. és könyvtárnév a navigációhoz már tökéletes.
Ahhoz, hogy szervizesként el lehessen távolról is érni szükség esetén a "szerszámos ládát", untig elég.
Igen, igazad van, egy nap elég. Pascalban nekem is az lenne, de a C-t pont azért nem szeretem mint a php-t. Tömör, időnként olvashatatlan. Valamint annyi utasítás van benne, hogy ha nem naponta használom, kimegy a fejemből. (Nem véletlen, hogy sok helyen a RISC procik magasan verik az "intelligenseket"
)
-
liksoft
nagyúr
Szép Estét!
Keresnék egy mini filemanagert. Amiket találtam, azok fullosak, vagy nem mennek.
Igény:
1. Ahonnan indul, az a root számára, vagy megadható mi legyen (jobb lenne).
2. Login+password. (Azonosítás nélkül ne indulhasson.)
3. File feltőlt, letölt, fent töröl, átnevez.
4. Könyvtárba belép vagy visszalép, létrehoz, töröl.
5. Persze egymás alatti sorokban láthatóak az elemek. (mint itt ezek a pontok)
Az nem érdekel, hogy van-e baloldalt tree vagy nincs. Ha egy txt file-ban kell megadni a név+password+root adatokat, az sem gond. Nem kell grafika, ikonok, csicsa (kiráz a hideg tőlük mint a hiénát az oroszlánkirályban....).
Vagyis FAPADOST keresek. Egy kritérium fontos, php 5.2 vagy előtte verzión menjen. Olyan érzés, mint régen DOS 3.0 alatt.Ha nem sort-olt a kiírás, még az sem érdekes!
Ilyen tökéletes lenne. Tud valaki ilyent? -
-
-
-
-
válasz
sztanozs #21021 üzenetére
Értem, ez így tiszta. A forráskódban a PHP kódot valóban nem lehet elérni kliens számára láthatóan, de a JS-t igen. Namost, az első PHP kódom mikor lefuttatja a lekérdezést, az hívja be a JS-t is. Tehát: Ameddig nincs bejelentkezés a megfelelő adatokkal, addig nem látszanak a JS kódok sem. Számomra ez volt a fő lényeg.
De mindattól függetlenül amit írtál, az alap probléma fent áll és magyarázat nem született rá: Miért frissíti le magát az oldal, miután lefut a JS kód? Hiszen, mint magad is írtad, a JS kliens oldalon fut, szerver felé lekérdezés nem történik.
-
sztanozs
veterán
-
sztanozs
veterán
ÁÁÁ, a forráskódot senki nem fogja látni, az a szerver oldalon "átalakul" HTML-lé és a kliens csak azt látja, amit a PHP létrehoz. Szerintem tényleg olvass utána a kliens-szerver architektúrának és session kezelésnek.
Ezek a dologok egyáltalán nem úgy történnek, ahogy te azt elképzeled (a válaszod alapján).Egyszerűen a folyamat:
1) Kliens lekéri az oldalt (URL, COOKIE-k, GET paraméterek, POST tartalom)
2) szerverhez megérkezik a kérés, az URL alapján meghívja a megfelelő oldalt (PHP kód a te esetedben)
3) a COOKIE, GET és POST tartalom vezérli a PHP kódot a teljes lefutásig, miközben legyártja a kliensnek visszaadandó tartalmat (HTTP HEADER + HTML + beágyazott JS + beágyazott CSS - vagy egyéb tartalom, pl bináris fájl)
4) kliens feldolgozza a választ, megjeleníti a tartalmat és futtatja a JS kódokat
5) felhasználói tevékenységre vagy JS akciókra újabb oldallekérések -> 1) pont -
Nem kliens oldalon használom. Van először is egy admin felület, ahová be kell jelentkezni. Ez az első PHP. Ha a bejelentkezési adatok megfelelőek, akkor tölti be PHP az oldal többi részét. Ezt részben azért csináltam így, hogy belépés nélkül ne tudja senki megnézni a forráskódot, hiszen abból nekem károm is származhat.
Ezt követné pár JS művelet, melyek közül az egyikkel gond van.
Megnéztem egyébként egy friss rendszerre telepített Chrome-on (MacOS), hogy mit csinál. Ott szintén ugyan ez volt a jelenség, de valamivel lassabban futott, így telibe láttam, hogy amint lefutott a JS és visszatért az őt meghívő PHP fájlban lévő button-hoz, akkor frissíti le az oldalt az alap, bejelentkezés előtti állapotra. -
válasz
disy68 #21016 üzenetére
Oké, akkor érthetőbben:
Mikor elindul az első PHP kód, akkor a szerverről lekérdez, pontosabban include-al behív egy külső HTML fájlt, ami tartalmazza a form-ot a továbbiakhoz. Ha ebben az állapotban megpróbálom lefrissíteni az oldalt, azonnal tájékoztat, hogy elveszhetnek az eddigi adatok. Ez eddig tiszta sor. Nálam a böngésző úgy van beállítva, hogy bezárás utáni nyitáskor minden visszajöjjjön. Amennyiben viszont el volt indítva ez a PHP, akkor nem tölt be, csak manuális újratöltésre, de ekkor a már meghívott információkkal együtt.
Namost, a behívott form tartalmaz egy submit-et, ami egy fájlt módosít a szerveren. Mivel ebben a kódban nincsen benne ismételten a külső HTML meghívása, így a kód lefutása után, mikor frissül az oldal, az eredeti állapot jelenik meg. Ez történik most, a JS lefutását követően is, holott a másik JS kód után nem csinál ilyet.
Tehát de, van egy elindított folyamat (egy adott betöltött oldal, ami nem egyezik az URL-en találhatóval). És azt nem értem, hogy ha a JS csak annyit is tartalmaz, hogy
alert("kód");
, miért frissül le lefutást követően az oldal, amikor ezt csak a különálló submit gomb tehetné meg?! -
disy68
aktív tag
Nyilván, mert nincs közük hozzá.Szinte biztos vagyok benne, hogy a form submitnél a js nem akadályozza meg a default működést, ami az, hogy küld a böngésző egy post/get/akármi requestet a form alapján.
Azt meg felejtsd el, hogy "bezárja a futó php-t". Amikor a böngészőben javascript garázdálkodik, akkor nem fut semmilyen php. A php szerver oldal, a javscript meg kliens oldal.
-
-
Taci
addikt
Ha inkognitó módban (vagy Edge-ben) próbálod, akkor is előjön ez a hiba (és a 2 fájl)?
Mert fura ez az extension-ös rész, ha feltelepíted, ugye engedélyt is adsz neki (arra amire kér). Szóval nézd meg egy másik böngészőben (vagy tiltsd le a Chrome-beépülőt), hátha úgy már rendben lesz. -
-
Sziasztok!
Nem tudom biztosan, hogy ide kéne ezt írjam, vagy a JS csoportba esetleg, mert mindkettőt érinti, de nem tudom, mi okozza a problémámat.
Adott egy lefutó, de félbeszakított PHP kódsor. Ez a kód, amennyiben megfelelőek a feltételek, a szerverről lekérdez adatokat, létrehozva belőlük egy form-on belüli további feltételrendszert. Ezen feltételrendszerben van egy gomb, mely szintén egy PHP kódot indít el. Az a kód a szerveren végez módosítást, majd pedig egyéb utasítás hiányában újratölti az oldalt. Mindezt azért írom le, hogy érthető legyen: Az első PHP megindítása szükséges a második futtathatóságához. És ez remekül működik.
Azonban. Van nekem ebben a létrehozott form-ban egy select menü, mely JS háttérrel rendelkezik, vagyis minden option kiválasztáskor lefut egy hozzá kötött function, ami szintén remekül működik, semmi baj vele.
És ezért nem értem azt, hogy miért csinálja a következőt:Van a form-on belül egy olyan button, mely JS háttérrel rendelkezik. Futtatásakor azonban azt vettem észre, hogy bezárja a futó PHP kódot, vagyis esetemben lefrissíti az oldalt. Ekkor rámentem manuális kijelölésre és soronkénti futtatásra, hogy láttam, mi lehet a gond.
Na így szembesültem a következővel:A háttér JS kód lefut hibátlanul. Ezt követően megnyit egy logic.js nevű fájlt, melyet az én kódom nem tartalmaz, majd azon belül lefuttat egy parancssorozatot. Annak végeztével megtörténik a PHP kód bezárása, ezzel együtt az oldal lefrissítése.
Ezt követően pedig behív egy content.js nevű fájlt, melyet a kódom szintén nem tartalmaz. Ebben is lefuttat egy kódsorozatot, majd ismételten meghívja logic.js-t, ahol ismét lefut egy kód, majd kilép.Itt hozzátenném, hogy az általam futtatni kívánt JS kód egy mezei matematika, de rakhatok be csak egy
alert();
-et is, ugyan ez a végeredmény.Mik ezek a behívott JS fájlok és miért cseszik szét a kódomat? Illetve miért csak az egyik futtatandó JS-em után jön, a másik után miért nem?
Előre is köszönöm a megfejtést!
-
Mike
veterán
totál off lesz, elnézést, de nem találtam megfelelő topikot erre
a következő a problémám: a vps-ünkön mongodb-t használunk, napi mentés mongodumppal történik, az a jelenség, hogy mongodump idő múlva beszorul (jam), egyre kevesebb adatot ment és a végén áll az egész szerver (nem fagy le, az admin felület szerint online) de konkrétan SSH-n keresztül sem tudok fellépni rá). azt olvastam, hogy a mongodump kicsi adatbázisokra alakalmas, de nagyobbakra, amikor több gigás bson fileokat generál, hajlamos erre ha megtellik a memória (bár 16 giga memória van és a legnagyobb kollekció mérete sem több 3,5 gigánál). mi lehet a megoldás? a --quiet pl? vagy milyen alternetív megoldás létezik a mongodump helyett, de olyan amivel nem kell leállítanom a mongodb futását.
(mongoban annyira nem vagyok otthon sem szerver üzemeltetésben, szóval bocs ha idióta volt a kérdés) -
Köszönöm szépen, így már működik
-
nevemfel
senior tag
Ha egy változót simán csak szögletes zárójelbe teszel
$likes = [$_POST['likesinput']]
, akkor a PHP egy egyelemű tömböt csinál a stringből.
Ha a string tartalmát fel akarod dolgozni, pl. hogy a megadott stringet bontsa szét tömbelemekre a vesszők mentén, akkor az explode-ot kell használni.$likesArray = explode(",", $_POST['likesinput']);
-
válasz
nevemfel #21003 üzenetére
Oké, így már működik, de mégsem.
Az adott szavakat egy input mezőben adom meg. Így a teljes kód:$likes = $_POST['likesinput'];
Namost, ezt hiába teszem be így:
$likes = [$_POST['likesinput']];
vagy így:$transformer = $_POST['likesinput'];
$likes = [$transformer];
nem működik.Értem a problémát, hogy tömbként kéne megadni string helyett, de erre nem találok opciót így, ebben a formában. Alapvetően így adom meg: sport cars, football, tennis, women
és ebből egy JS csinál ilyet: "sport cars", "football", "tennis", "women"
Így lesz ez likesinput értéke. Ezt kellene valahogy betenni úgy, hogy tömb legyen belőle.Vagy egyáltalán... lehetséges az, amit szeretnék?
-
-
nevemfel
senior tag
Illetve a konkrét példában a negyedik sort is át kell írni, mert az eredeti kódban, a negyedik sorban a
'likes'=>[$likes]
egy tömböt kreál a $likes stringből, és így végülis tömb lesz belőle, de csak egyetlen elemű. PHP 5.4-től az array() helyett használhatsz []-t, mindkettő tömb létrehozására való.$name = 'Philip';
$age = 18;
$likes = ["Sport cars", "Football", "Tennis", "Women"];
$jsonfile[] = [
'name'=>$name,
'age'=>$age,
'likes'=>$likes
];
-
Új hozzászólás Aktív témák
Hirdetés
- Melyik tápegységet vegyem?
- Tőzsde és gazdaság
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Milyen okostelefont vegyek?
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- BMW topik
- Építő/felújító topik
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- Futás, futópályák
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Apple iPhone 13Pro 128GB Kártyafüggetlen 1Év Garanciával
- Garmin Fenix 8 Amoled 51mm Sapphire Carbon Gray DLC - Használt, karcmentes
- Nitro ANV15-51 15.6" FHD IPS i5-13420H RTX 4050 16GB 512GB NVMe magyar vbill ujjlolv gar
- Apple iPhone SE 2020 64GB Kártyafüggetlen 1Év Garanciával
- iPad Pro 11 gen 2 + magic keyboard magyar makulátlan új állapot
- Csere-Beszámítás! Asztali számítógép játékra! I5 14400F / RX 6900 XT 16GB / 32GB DDR5 / 1TB SSD
- BESZÁMÍTÁS! Sony PlayStation4 PRO 1TB fekete konzol extra játékokkal garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Apple Watch Series 6/Apple Watch Series 7/Apple Watch Series 8
- Így lesz a Logitech MX Keys magyar billentyűzetes
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged