- Honor 200 Pro - mobilportré
- iPhone topik
- Megérkezett a Google Pixel 7 és 7 Pro
- Samsung Galaxy Watch7 - kötelező kör
- Samsung Galaxy Watch6 Classic - tekerd!
- Mobil flották
- Milyen okostelefont vegyek?
- Redmi Note 13 Pro 5G - nem százas, kétszázas!
- Google Pixel 9 Pro XL - hét szűk esztendő
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
Új hozzászólás Aktív témák
-
randras
veterán
válasz
Sk8erPeter #10497 üzenetére
Excel-lel kimentettem HTML-be, kitakarítottam a kódból a mocskot, és végül úgy néz ki, mPDF-el generálom majd a PDF-et.
-
Soak
veterán
Sziasztok !
Az miért van, hogy a phpmyadmin ( 3.4.10.1 ) a saját gépemen nagyon lassú, mintha kb 128kbps-vel neteznék. A szerveren viszont működik rendesen, csak a net szab határt neki (de igazából az sem mert olyan mintha nem lenne késlekedés) . Ugyanaz az adatbázis, szinte üres, szóval nem az én gépem a gyenge. Nem a parancsok végrehajtásánál, hanem pl. egy oldal frissitésénél kb 6-7sec mire betölt. Kerestem a neten, többeknek volt ilyen hiba, de megoldást nem találtam.
-
randras
veterán
Helló,
jelenleg PHPExcel-lel manipulálok PHP alól XLS fájlokat probléma nélkül, a gondom viszont az, hogy az XLS-t utána PDF-ben kéne elmentenem. A PHPExcel tudja ezt is, viszont folyton kifut az időből/memóriából konvertálás közben, szóval kellene valami másik módszer erre.
Ha lenne valami ötletetek, megköszönném!
-
j0k3r!
őstag
válasz
Peter Kiss #10492 üzenetére
-
Peter Kiss
őstag
PHP-t tanulóknak, használóknak mutatnám az alábbi könyvet:
PHP Master: Write Cutting-Edge CodeSzerintem elég használható darab, és még ráadásul up-to-date is.
-
Soak
veterán
Köszönöm mind a hármótoknak a hozzáadott értéket.
Ezek alapján kicsit újragondolom az egészet és egy kicsit jobban összerakom. Remélem nem sokára összefoglalom az eredményt.
-
Cathfaern
nagyúr
válasz
Sk8erPeter #10487 üzenetére
Igen ezen gondolkoztam is, hogy beleírjam, nem szép megoldás, de azért nem is teljesen értelmetlen
De szerintem ez tipikusan olyan kód, amit jobb lenne elejétől kezdve (onnantól, hogy funckió szinten mit szeretne az ember, tényleges programozást teljesen elfelejtve) újragondolni. -
DeltaPower
addikt
Ha jól értem ezt, az IF első része arra vonatkozik, ha egy adott feladótól érkező üzeneteket akarsz listázni, a második része pedig a feladók listája.
Három foreach tényleg fölösleges, még ha max 2 fut is le, főleg hogy minddel végigmész az összes üzeneten.
Én ilyesmi megoldást ajánlok:
function list_messages()
{
if( $_GET['i'])
{
$messages = self::find_messages_by_sender_id($_GET['i']);
}
else
{
$messages = self::find_messages_by_users_id($_SESSION['user_id']);
$sender_list=getSenderListWithCount($_SESSION['user_id']);
}
foreach ($messages as $message) { ... }
}
function getSenderListWithCount($cimzett_id)
{
// SELECT COUNT(message_id), ... WHERE cimzett_id={$cimzett_id} GROUP BY sender_id
} -
Sk8erPeter
nagyúr
válasz
Cathfaern #10486 üzenetére
Na, most felraktam ide, hogy normálisan nézzen ki, így már legalább látható is, mi van a kódban...
Csak most látom át, így, hogy ki is lehet valamit belőle venni, hogy csak az else ágban van a másik kettő foreach...A $senders-re vonatkozó részt tényleg félreértettem... hát igen, nem árt, ha normálisan van indentálva a kód....
$senders = array();
foreach ($messages as $message) {
if (array_key_exists($message->sender_username, $senders)) {
$senders[$message->sender_username]++;
} else {
$senders[$message->sender_username] = 1;
}
}Tehát magyarul akkor ad hozzá a $senders adott kulcsánál lévő számhoz plusz egyet, ha már létezik az adott kulcs a felhasználó nevével, egyébként eggyel egyenlő...
Igazad van, ezt sem láttam át a korábbi ocsmány kód miatt (az is igaz, hogy eléggé átrohantam rajta).
Ettől függetlenül továbbra is fenntartom, hogy ezt nem így kéne, nemsokára írom, miért. Áll a többi dolog is, azzal a módosítással, hogy ezek szerint nem fut le mindhárom ciklus, mert külön vannak. A statikus függvényhívásokra, változókra, egyebekre (pl. truncate() külön függvény/metódus, stb.) vonatkozó dolgok is állnak."Amennyiben az első foreachen belül megváltoztatsz valamit a tömbön, akkor lehet értelme mégegyszer bejárni (elvileg ugyanazt a tömböt, gyakorlatilag nyilván akkor már nem ugyanazon mész végig). És ahogy láttam, itt pontosan erről van szó."
Nézd meg még egyszer, a $messages tömbön nem változtat semmit az első ciklusban. Csak kigyűjti a $senders tömbbe a megfelelő neveket, a hozzájuk tartozó üzenetek számát. Aztán ezt használja fel a második foreach-nél, és ennyi.
Az a baj, hogy feltételezem, a find_messages_by_users_id() metódusában eleve van már egy ciklus, ami bejárja az adatbázisból lekért eredményeket. Így tehát összesen 3 darab (!) ciklus lesz mégis, mert még ezt is be kell járni még egyszer. Úgy lehetne ezt redukálni mondjuk max. 2-re, hogy eleve egy normális query-t ír, ami felhasználók szerint csoportosítva kéri le az üzeneteket, aztán amikor ezt az eredményhalmazt bejárja PHP-vel, akkor eleve felhasználónként gyűjti egy tömbbe az üzeneteket. Akkor meg már lehetne használni ezeken a gyorsabb count() függvényt is, amivel egyből megkapná, hány darab üzenet tartozik a felhasználóhoz, meg csak a kiíratáshoz kellene bejárni.
Úgy már nem lenne gány. -
Cathfaern
nagyúr
válasz
Sk8erPeter #10485 üzenetére
"A foreach egy egyszerű bejáró algoritmus, semmi extra mutatvány nincs a dologban. De ha háromszor használsz foreach-et, akkor háromszor járod be. Ez felesleges."
Nem feltétlenül. Amennyiben az első foreachen belül megváltoztatsz valamit a tömbön, akkor lehet értelme mégegyszer bejárni (elvileg ugyanazt a tömböt, gyakorlatilag nyilván akkor már nem ugyanazon mész végig). És ahogy láttam, itt pontosan erről van szó."$senders = array();
if(array_key_exists($message->sender_username,$senders))
Elmagyarázva szavakkal, a kosaras példával:
$kosár = tök üres
ha a $kosárban van piros színű golyó, akkor csináld ezt:
Vágod?"
Az idézett kódban nem ez történik. Ha megnézed, akkor ahogy végigmegy a foreach-en, pakolgat bele a senders tömbbe. A kiürítés miatt először igen, üres lesz, de ha többször is szerepel ugyanaz a "sender_username" a messagesben, akkor utána a senders tömb adott kulcsánál már ott lesz valami (a korábban beállított 1, vagy az inkrementált érték) -
Sk8erPeter
nagyúr
"Az előző hsz.-edben az volt a problémád"
Ácsi, kicsit rosszul közelíted meg a kérdést. Nekem aztán nem probléma, ha gányolsz, de tanácsot kértél.$_GET: Akkor totál félreértetted, amit mondtam. Annyit javasoltam, hogy a $_GET, $_POST és hasonló tömbökhöz közvetlenül már ne nyúlj az objektumodban, hanem add át paraméterként a tartalmukat a metódusnak, állítsd be a konstruktorban, vagy fogalmam sincs, hogyan oldd meg, de a metóduson belül ne közvetlenül használd már ezeket a tömböket, mert szerintem nem szép. Komolyabb rendszerekben sem nagyon szoktam látni, hogy közvetlenül nyúlkálnak hozzá az osztályon belül. De ahogy érzed.
A foreach egy egyszerű bejáró algoritmus, semmi extra mutatvány nincs a dologban. De ha háromszor használsz foreach-et, akkor háromszor járod be. Ez felesleges.
Ez most a kosaras példánál maradva olyan, mintha lenne egy kosarad, ami tele van kék, fekete, piros golyókkal, és neked az lenne a feladatod, hogy ezeket külön kosarakba gyűjtsd színek szerint; te pedig úgy oldanád meg, hogy először átnéznéd a kosarat, és kiszednéd a pirosakat a saját kosarába, majd ha ezzel végeztél, akkor megint átnéznéd a kosarat, csak a kék golyókra koncentrálva, aztán harmadik alkalommal is átnéznéd, akkor már csak a fekete golyókat keresgélve, miközben ezt megoldhattad volna úgy is, hogy az épp kezed ügyébe kerülő golyót a megfelelő kosárba pakolod, szín szerint.$senders tömböd:
itt már részletesen leírtam, mi a probléma vele. Nem igazán vágom, mit nem értesz belőle, de megpróbálom még egyszer elmagyarázni, kiemelve a lényegi részt:$senders = array();
if(array_key_exists($message->sender_username,$senders))Elmagyarázva szavakkal, a kosaras példával:
$kosár = tök üres
ha a $kosárban van piros színű golyó, akkor csináld ezt:
Vágod? -
Soak
veterán
válasz
Sk8erPeter #10483 üzenetére
Az előző hsz.-edben az volt a problémád, hogy a function elött döntsük el, hogy if(isset($_GET['xyz'])) . Ami szerintem is jó, ezért van egy function ami akkor fut ha van, meg van egy ha nincs. De ezt irtam az elöbb is. Tehát az egyik esetben nincs probléma, mivel egy foreach van és kész. (abban a functionba) . A másiknál van az, hogy elötte kell egy foreach (nekem), hogy az arrayba szépen beírja kitől hány üzenet jött, mert nem tudtam úgy ezt megcsinálni, ha egy foreachel akartam megoldani. Amikor épp az adott elemet vizsgálom akkor honnan tudom, hogy van-e még több üzenet attól a feladótól időrendbe hátul? Lehet, hogy én nem értem amit te nem értesz és valamit benézek. Vagy csak egyszerűen a foreach mehanizmusát gondolom rosszul.
Miért találna bármit is egy üres tömbben?
Most gondolj már bele, ez olyan, mintha lenne egy tök üres kosárkád, és elkezdenél keresgélni benne izomból egy piros színű labdát, amikor tudod jól, hogy az a kosár tök üres.Értem, hogy mit mondasz, de épp ez a cél, hogy nem fog találni elsőre semmit, ha semmit nem talál akkor azt jelenti, hogy az adott usert sem. Most ha jól gondolom akkor arra gondolsz, hogy tegyem bele azt is, hogy ha az array üres akkor mivan? Mert akkor ugyan ott vagyok, nem?
-
Sk8erPeter
nagyúr
"Te hogy oldanád meg?"
Egyetlen ciklussal.
De őszintén szólva már a kérdést sem értem. Egymás alatt, azonos metódusban szerepel háromszor ez:
foreach($messages as $message)
Akkor ebből nyilvánvaló, hogy pontosan ugyanazt csinálják, tehát nem értem, miért nem pakolod egyszerűen egybe azt, amit számomra érthetetlen okból különválasztottál, és vizsgálgatod a feltételeket a cikluson belül.Leegyszerűsítem olyan példára, aminél egyszerűbbet már nem tudnék mondani az adott helyzetre:
foreach($messages as $message){
echo 'ELSŐ blablabla';
}
if($tokmindegy){
foreach($messages as $message){
echo 'MÁSODIK blablabla';
}
}
if($ezismindegy){
foreach($messages as $message){
echo 'HARMADIK blablabla';
}
}ehelyett miért ne lehetne így:
foreach($messages as $message){
echo 'ELSŐ blablabla';
if($tokmindegy){
echo 'MÁSODIK blablabla';
}
if($ezismindegy){
echo 'HARMADIK blablabla';
}
}Capisce?
"Az lett volna az értelme, hogy elösször biztosan le kell futnia, mivel az első vizsgálatnál még nem volt üzenet és fogalmam sincs ki a feladója az első üzenetnek. Ezért az elsőt beleírja és ha tőle jött még 3 akkor azokat már ignorálja és csak a következő legfrissebbet rakja ki, másik usertől."
Miért találna bármit is egy üres tömbben?
Most gondolj már bele, ez olyan, mintha lenne egy tök üres kosárkád, és elkezdenél keresgélni benne izomból egy piros színű labdát, amikor tudod jól, hogy az a kosár tök üres. -
Soak
veterán
válasz
Sk8erPeter #10481 üzenetére
Akkor sem értem a logikát, hogy miért kell különbontani, és három különálló, de teljes mértékben egyező ciklusban megoldani, amit meg szeretnél, ezzel háromszorosára növelve a ciklus futási idejét...
Te hogy oldanád meg? Van egy foreach akkor amikor van beállítva $_GET['id'] , van egy arra amikor nincs (akkor az összes üzenetet hozza ki, amikot van beállítva akkor csak egy usertől) , már külön functionba. A harmadik azért van akkor amikor nincs $_GET['id'] , mert végigmegy az arrayon, beírja mindenkihez, hogy hány üzenet van tőle és így ki tudom iratni userenként az üzenetszámot. Ha ezt berakom abba amikor az üzeneteket listázza akkor nem tudtam megoldani az üzenetszám kiratást.
Még mindig nem érthető, mit is akarsz üres tömbbel... array_key_exists-szel vizsgálgatsz egy nyilvánvalóan nem létező kulcsot, mivel üres a tömb? Mi értelme?
Az lett volna az értelme, hogy elösször biztosan le kell futnia, mivel az első vizsgálatnál még nem volt üzenet és fogalmam sincs ki a feladója az első üzenetnek. Ezért az elsőt beleírja és ha tőle jött még 3 akkor azokat már ignorálja és csak a következő legfrissebbet rakja ki, másik usertől.
-
Sk8erPeter
nagyúr
"A 3 foreach azért van, mert legrosszabb esetben 2 fut le, de nem tudtam jobban megoldani, hogy ki tudjam jelezni egy usertől hány üzenet van."
Akkor sem értem a logikát, hogy miért kell különbontani, és három különálló, de teljes mértékben egyező ciklusban megoldani, amit meg szeretnél, ezzel háromszorosára növelve a ciklus futási idejét..."Azért egyenlő egy üres tömbbel, mert különben hibaüzenetet dobál, hogy nincs definiálva..."
Még mindig nem érthető, mit is akarsz üres tömbbel... array_key_exists-szel vizsgálgatsz egy nyilvánvalóan nem létező kulcsot, mivel üres a tömb? Mi értelme? -
válasz
fordfairlane #10478 üzenetére
ugyanaz lenne.
-
Sziasztok.
Adott nekem egy Mikrotik router, ami úgy van belőve, egy helyi intranetes hálózaton, wake on lan segítségével indíthassam a gépemet.
Nos ez működik is, nincs semmi gond. Van a helyi tárhelyemen egy start.php amit ha elindítok akkor adja ki a parancsot, és indul el a gép. Így néz ki:<?php
$MT_CIME="ip cim";
$LOGIN="user";
$PW="pass";
require('class.php');
$API = new routeros_api();
$API->debug = false;
if ($API->connect($MT_CIME, $LOGIN, $PW)) {
$API->comm("/tool/wol", array(
"mac" => "MAC adress",
"interface" => "interface"));
print "tetszőleges szöveg amit kiír, miután lefutott a parancs és mindent rendben talált" ;
$API->disconnect();
}
?>Na most én azt szeretném, hogy ezen tetszőleges szöveg helyett mondjuk egy kép legyen.
Azt hogyan tudnám megoldani, egyáltalán lehetséges ez?Köszönöm előre is a válaszokat.
-
Soak
veterán
válasz
Sk8erPeter #10475 üzenetére
A $_GET['i'] a tesztelés miatt volt ilyen beszédes, plusz már nem szerepel a funkcióban , csak igy könnyebb nekem szarakodni, ha fejlesztem.
A staticot kijavítottam már. Rossz beidegződés volt. Mostmár sejtem az OOP-t és az elöttről maradt.
A 3 foreach azért van, mert legrosszabb esetben 2 fut le, de nem tudtam jobban megoldani, hogy ki tudjam jelezni egy usertől hány üzenet van. Végig fut, megcsinalja az array-t aztán kiiratom az arrayból, hogy mennyi van. Ezért irtam ide, mert kezdő vagyok, nyitott vagyok az ötletekre . Azért egyenlő egy üres tömbbel, mert különben hibaüzenetet dobál, hogy nincs definiálva...
if(strlen($message->body) > 140){$dots = "...";} else {$dots = "";}
Ez is több helyen szerepel, az már eleve gáz, de amúgy is: mi értelme van? Ennyiből kb. semmi.
Ha le kell vágni a törzsből valamennyit, mert adott karaktermennyiséget túllép, akkor azt egy tök különálló truncate() metódusban végezd el, ne ugyanebben a függvényben. A default karakterlimit pedig a függvény egyik paramétere lehet, default értékkel. Vagy tárold pl. osztályváltozóként a limitet, de inkább előbbi.Azt tényleg gáz, hogy így szerepel itt, de ezt a static hibával egyidejüleg javitottam
Nem sértődöm meg abszolút, miért tenném?
Folyamatosan tanulok, nem ez a szakmám, csak hobbi.
-
Sk8erPeter
nagyúr
Használd ezt a formázót, ha nem sikerül másként...:
http://beta.phpformatter.com/Szétb@szhatja azért is a formázást, mert public functionnel kezded kapásból, és nem adsz nevet az osztálynak. Nyilván most csak kivágtad a megfelelő részt, de akkor ne az ideone.com-ra rakd, hanem a pastebinre, ha előbbire, akkor legalább adj egy nevet az osztálynak, és tedd oda kommentbe a három pontot, ami jelöli, hogy ott amúgy van más is. (Hogy ne legyen itt ezen az oldalon syntax error.)
if(isset($_GET['i']))
Már eleve rossz kezdés szerintem. Itt már szerintem nem kellene $_GET, $_POST és hasonlókhoz nyúlni, hanem a megfelelő helyen be kellene ezeket állítani, legalábbis ez ebben a formában csúnya osztályon belül.
Ezenkívül mi az az "i"? Miért szopatod magad ilyen kulcsokkal? Miért nem használsz beszédesebb neveket, teljes szavakat?
Én kimegyek a fazonomból az ilyenektől, elég utálatos feladat, amikor más kódját kell kotorásznod, és ilyeneket látsz, egyből letépnéd a fejét annak, aki írta ezt a kódot, és még egy nyomorék kommentet sem rakott oda. Ha már agilis szoftverfejlesztés, akkor már a kód legyen beszédes.$messages = self::find_messages_by_sender_id($_GET['i']);
Miért static függvényhívás? Miért kevered a szezont a fazonnal? Egyáltalán minek ide static függvény?
Erről már korábban is volt szó, cucka is említette neked.foreach($messages as $message)
Összesen háromszor??Mi a francnak mész végig rajta külön-külön?!
Ugye tudod, hogy ez így háromszor annyi időbe is kerül (és egyébként totál értelmetlen)?if(strlen($message->body) > 140){$dots = "...";} else {$dots = "";}
Ez is több helyen szerepel, az már eleve gáz, de amúgy is: mi értelme van? Ennyiből kb. semmi.
Ha le kell vágni a törzsből valamennyit, mert adott karaktermennyiséget túllép, akkor azt egy tök különálló truncate() metódusban végezd el, ne ugyanebben a függvényben. A default karakterlimit pedig a függvény egyik paramétere lehet, default értékkel. Vagy tárold pl. osztályváltozóként a limitet, de inkább előbbi.Aztán egyszer a $message_username változót használod, egyszer a $message->sender_username-et. Abszolút semmi értelme. Egyébként sincs értelme itt átadni másik változónak.
$senders = array();
foreach($messages as $message){
if(array_key_exists($message->sender_username,$senders)){
$senders[$message->sender_username]++;
}
else{
$senders[$message->sender_username] = 1;
}
}Ennek magyarázd már el légyszi, mi értelme, mert szerintem kb. semmi.
Miért kotorászol a $senders-ben, amikor egy üres tömbbel tetted előtte egyenlővé?Tovább nem volt kedvem keresgélni a hibákat, ezek csak első blikkre tűntek fel, némi fájdalmat okozva.
Bocs, de ez így iszonyatosan gány. A kritikákon ne sértődj meg, mert Te kérted.
-
Soak
veterán
Sziasztok !
Írtam egy functiont arra, hogy kilistázzam userek szerint az üzeneteket. Örülnék, ha lenne kedve valakinek kritizálni meg véleményt alkotni. [link] . A formázás itt tényleg szar.
-
trisztan94
őstag
válasz
Sk8erPeter #10472 üzenetére
Köszönöm szépen !
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10468 üzenetére
"feltölti a képet csak az src-be nem tudom berakni"
A $stringData változód már a cikluson kívül van... magát a kiíratásra vonatkozó, konkatenált stringet is a cikluson belül kellene összeállítani (a foreach-en belül). Úgyis ott rakod össze a végleges elérési utat, ahova át kellene mozgatni, tehát akkor lehet az az src attribútum értéke.=======
(#10465) wolandino : ahogy elnézem, közben megtaláltad a megoldást.
-
Sk8erPeter
nagyúr
válasz
Fecogame #10467 üzenetére
Már magát az elgondolást sem értem, miért jó azonos domain alatt két különböző fórummotort működtetni... Nem tudod összeolvasztani?
Megoldhatod aldomainekkel és alkönyvtárakkal is: pl. a főoldalon van két választási lehetőség, Fórum 1 és Fórum 2 linkekkel, ha valaki ráklattyol egyikre, akkor átirányít a http://example.com/forum1 VAGY http://example.com/forum2 címre, ahol teljesen függetlenül működik a két motor. Az adatbázis lehet közös, prefixek alkalmazásával. -
Sk8erPeter
nagyúr
válasz
CSorBA #10466 üzenetére
Akkor már pakold fel phpclasses.org-ra vagy ehhez hasonló helyre, ha már ópenszósz lesz a kód.
-
daninet
veterán
Üdv!
Egy kis pénzkereseti lehetőséget ajánlok, mert az én képességeimet ez már meghaladta
Egy webshopba kellene beletákolni pár sort (árukereső trusted shop automatikus emailje), illetve a payU bankkártyás fizetéshez kell egy kimeneti fájl egy dokumentáció alapján.
Joomla 1.5, Virtuemart webshop. Pénzben megegyezünk, nem határidős csak legyen kész belátható időn belül. Privátban írjon akit érdekel a dolog
-
trisztan94
őstag
válasz
Sk8erPeter #10455 üzenetére
Na, és ezzel mi a baj?
feltölti a képet csak az src-be nem tudom berakni. És azt hogy a többi képet is listázza ha több van az hogy nézne ki?
if(isset($_FILES['files'])){
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){
move_uploaded_file($tmp_name, "ingatlan/kepek/ {$_FILES['files']['name'][$key]}") or die("asd");
}}
// Ha eddig eljön a scipt akkor a kép már a szerveren van
// beleírjuk a fileba a címet meg mindent
$datum = getdate();
$fh = fopen($uploadsDirectory . $cim . '.txt','w');
$stringData = "<br/>\n<article>\n<header class='ing_header'>" . $cim . "\n</header>" . "\n<div class='fokep_wrapper'><img class='fokep' src='". $uploadsDirectory2 . $_FILES['files']['name'][$key] . "' alt='".$cim."'</div><div class='tobbikep'></div><p>" . $leiras . "\n</p>\n<footer class='ar'>" . $ar . "\n</footer>\n</article>\n\n<br/>";[OT]Heti utolsó kérdés, I promise![/OT]
-
Erre tudtok valami okosat?
Le kellene cserélnem az SMF fórummotort egy Vbulletin-re. A konvertálás még okés is lesz, de hogyan tudom egyszerre mindkét fórummotort működtetni, ha ugyanazon domain név alatt működik mindkettő?
-
CSorBA
őstag
Korábban javasolták itt többen az IntlDateFormatter osztályt. Sajnos nem nagyon felelt meg mégsem, mivel (lehet én voltam figyelmetlen, de) nem nagyon tudtam beállítani a megjelenést, azaz kb kimerült 4 megjelenítési módban. Mivel nekem ez nem volt elég, így maradtam a saját fordító osztálynál, ami előre definiált patternek szerint jeleníti meg a dátumot. Sajnos nem vagyok benne biztos, hogy nyelvtanilag sikerült eltalálnom minden lehetőséget, de azért próbálkoztam. Ha valakit érdekel, megtekinthető [itt], ha valakinek kellene, az dobjon rám egy privit.
-
wolandino
tag
Sziasztok!
Van egy MS SQL adatbázisom, amit linux környezetben szeretnék használni és ugyancsak arról a linux szerverről elérni, amin nem mellesleg PHP fut.
Windows-os környezetben ugyanezt pofonegyszerűen elértem egy ilyen kóddal:$connection = odbc_connect("Driver={Microsoft Access Driver (*.mdb)};DBQ=". realpath("./teszt.mdb").";", "ADODB.Connection", "");
de linux alatt sehogy sem akar összejönni, pedig már végignyálaztam a netet vagy kétszer ezügyben
Ha tudna valaki segíteni, akkor nagyon hálás lennék.
Köszönettel,
W. -
Soak
veterán
válasz
Sk8erPeter #10462 üzenetére
Tudom, hogy mikent mukodik a foreach, egyszeruen lusta voltam mar szarakodni vele es mukodott, de legfokepp azert mert mar akkor tudtam, hogy szar az egesz, ezert nem figlalkoztam vele.
Dw nem formazza a phpt
-
Sk8erPeter
nagyúr
foreach($previous as $previous){
foreach($current as $current){
foreach($next as $next){
A lényeget cucka már leírta, de nekem a fentiektől nyílt ki legjobban az agyam.Nem is tudom, ez működik-e így egyáltalán, bár valószínűnek tartom, hogy inkább nem, és felmerül, hogy felül is írja a változót...
De ezek szerint a foreach használatának logikája sem jött át, vagy nem vágom, ilyet miért toltál be a kódodba.Példa jó használatra:
foreach($ezatömböd as $ezazaktuáliskulcs => $ezazaktuálisérték){
}
vagy csak
foreach($ezatömböd as $ezazaktuálisérték){
}
De ne legyen már ugyanaz a neve a tömbnek és az aktuális értéknek...(#10461) Soak : annyira rondán van indentálva a kódod, hogy őszintén szólva nem sok kedvem van a végignézésére.
Mit használsz PHP-fejlesztésre? Csomó IDE-ben van automatikus formázás, pl. NetBeans-ben Alt+Shift+F.
DW: [link].=========
(#10458) cucka :
"Az empty() nyelvi elemet (figyelem, ez nem függvény) érdemes elkerülni"
Szerintem nem kell kerülni, tudni kell, hol indokolt a használata.
Akár debuggolásra is jól jöhet.
És/vagy ha az ember számíthat NULL, 0 vagy false értékekre is valamilyen oknál fogva.
Persze mielőtt mondanád, azzal egyetértek, hogy jobb szigorú szabályokhoz kötni, adott függvények/metódusok mivel térhetnek vissza, de előfordulhat olyan eset, hogy nem vagy biztos benne, milyen jellegű típus várható az empty()-nek megfelelőek közül, és nincs kedved típusonként ellenőrizni.
Persze a konkrét esetben valóban nem indokolt, de általános értelemben szerintem nem feltétlenül igaz, hogy kerülni kell. -
Soak
veterán
ver. 0.2
public function find_previous($id=0, $users_id) {
$result_array = self::find_by_sql(" SELECT * FROM `photographs` WHERE id < ".$id." AND users_id = ".$users_id." ORDER BY id DESC LIMIT 1 ");
return !empty($result_array) ? array_shift($result_array) : false;
}
public function find_current($id=0) {
$result_array = self::find_by_sql(" SELECT * FROM `photographs` WHERE id = ".$id." LIMIT 1 ");
return !empty($result_array) ? array_shift($result_array) : false;
}
public function find_next($id=0, $users_id) {
$result_array = self::find_by_sql(" SELECT * FROM `photographs` WHERE id > ".$id." AND users_id = ".$users_id." ORDER BY id ASC LIMIT 1 ");
return !empty($result_array) ? array_shift($result_array) : false;
}
if(isset($_GET['user']) AND (isset($_GET['id']) AND isset($_GET['pic'])))
{
global $database;
$_GET['user'] = $database->escape_value($_GET['user']);
$_GET['pic'] = $database->escape_value($_GET['pic']);
$users = User::find_by_id($_GET['id']);
$users_id = $users->id;
$previous_photo = Photograph::find_previous($_GET['pic'], $_GET['id']);
$current_photo = Photograph::find_current($_GET['pic']);
$next_photo = Photograph::find_next($_GET['pic'], $_GET['id']);
$path = Photograph::photosphp_image_path($current_photo->filename);
}
else
{
redirect_to("browse.php");
}
if($previous_photo)
{
echo "<a href=\"photos.php?user=$users->username&id=$users->id&pic=$previous_photo->id\" >previous</a>";
}
if($next_photo)
{
echo "<a href=\"photos.php?user=$users->username&id=$users->id&pic=$next_photo->id\" >next</a>";
}Most kicsit többet gondolkoztam rajta. Biztos nem hibátlan, de szerintem egy fokkal jobb.
-
Speeedfire
félisten
Nincs valami egyszerű megoldás az ingyenes domain-ek szűrésére? Most fel van sorolva pár, de nem a legjobb megoldás szerintem így.
Meg az összeset nem is ismerem.elseif (preg_match("/(uw.hu)|(atw.hu)|(extra.hu)|(blogspot.com)|(blogger.com)|(blog.hu)/", $_POST['url'])) {
-
cucka
addikt
Elnézést, ha belepofázok, de jól láthatóan nem értetted meg az OOP lényegét:
- Az osztályod statikus függvényeket tartalmaz, ami azt jelenti, hogy nem csináltál mást, mint egy névteret globális függvényeknek.
- A függvényeid globális változókat változtatnak, ahelyett, hogy rendes (matematikai) függvényként működnének: a függvény kap n darab bemeneti paramétert, ami alaján kiszámolja az eredményt. Ennyit csinál, nem többet. Nem módosítja a paramétereit. Nem nyúl ki a globális névtérbe. Sőt, igyekezni kell mellékhatás-mentesre csinálni (nyilván sokszor elkerülhetetlen).A fentiek miatt elkerülheted a rengeteg global deklarációt.
Továbbá itt van ez a kódrészlet:
$previous = self::find_previous($id, $users_id);
...
foreach($previous as $previous){
global $previous_pic_id;
$previous_pic_id = $previous->id;
}
- Ciklusban deklarálod a globál változót, biztos ami biztos?
- A foreach-ben érdemes kerülni a névütközést.
- A ciklusod annyit csinál, hogy végigmegy a previous tömbön, majd az utolsó elemnek eltárolja az id-ját egy globális változóba. Minek ehhez végigmenni a previous tömbön?
- Ha a previous tömb utolsó elemére van csak szükséged, miért nem azt adja vissza a függvényed?
- Mi van, ha az első képen állsz és nincs previous? Nem kezeled le az esetet, kiírsz egy üres stringet bele a html-be.
- Ugyanez a foreach megismétlődik a $current változónál, ami viszont nyilvánvalóan nem egy tömb, mert egy aktuális elem van. Ott mi szükség rá? (Vagy mégis tömb? A kódból nem derül ki, és ez nagy baj)Még:
- A $_GET['p'] értékét háromszor escape-eled ki, amíg bekerül az adatbázisba. Ha valóban van az értékben egy olyan karakter, amit ki kell escape-elni, akkor a kódod nem fog működni.
- Az empty() nyelvi elemet (figyelem, ez nem függvény) érdemes elkerülni, jól meg tudod sz*patni magad vele.
- Mivel a php-ban nem látod, hogy melyik változó milyen típusú, érdemes beszédesebb neveket adni - például ami tömb, az többes szám, vagy a függvény paramétereknél $id helyett $pic_id - így nem kell nyomozni, ha fél év múlva tovább akarod fejleszteni a kódodat, akkor el is fogod tudni olvasni -
Soak
veterán
Sziasztok !
A pár oldalon keresztül való beszélgetés után, nekiálltam megcsinálni. Sikerült is, viszont egy valamiben nem vagyok biztos, de elöbb itt a kód . Figyelem! Még fejlesztési fázisban van, szóval a külalak és egyéb most még nem az igazi, van más amin fent lehet akadni
.
Tehát :
Egyelőre ez van a Class-ban
public static function find_relevant_3($id=0, $users_id=0) {
global $database;
global $previous;
global $current;
global $next;
$users_id = $database->escape_value($users_id);
$id = $database->escape_value($id);
$previous = self::find_previous($id, $users_id);
$current = self::find_current($id, $users_id);
$next = self::find_next($id, $users_id);
foreach($previous as $previous){
global $previous_pic_id;
$previous_pic_id = $previous->id;
}
foreach($current as $current){
global $current_pic_id;
global $photo_users_id;
global $photo_filename;
$current_pic_id = $current->id;
$photo_users_id = $current->users_id;
$photo_filename = $current->filename;
}
foreach($next as $next){
global $next_pic_id;
$next_pic_id = $next->id;
}
}
public static function find_previous($id=0, $users_id) {
global $database;
$users_id = $database->escape_value($users_id);
$id = $database->escape_value($id);
return self::find_by_sql(" SELECT * FROM `photographs` WHERE id < ".$database->escape_value($id)." AND users_id = ".$users_id." ORDER BY id DESC LIMIT 1 ");
}
public static function find_current($id=0, $users_id=0) {
global $database;
$users_id = $database->escape_value($users_id);
$id = $database->escape_value($id);
$users_id = $database->escape_value($users_id);
return self::find_by_sql(" SELECT * FROM `photographs` WHERE id = ".$database->escape_value($id)." AND users_id = ".$users_id." LIMIT 1 ");
}
public static function find_next($id=0, $users_id) {
global $database;
$users_id = $database->escape_value($users_id);
$id = $database->escape_value($id);
return self::find_by_sql(" SELECT * FROM `photographs` WHERE id > ".$database->escape_value($id)." AND users_id = ".$users_id." ORDER BY id ASC LIMIT 1 ");
}Ez pedig magán a pagen:
Photograph::find_relevant_3($_GET['p'], $users_id);
if(empty($previous_pic_id))
{
$previous_pic_id = "";
$previous_pic_link = "";
}
else
{
$previous_pic_link = "<a href=\"photos.php?user=$users->username&id=$users->id&p=$previous_pic_id\" >previous</a>";
}
if(empty($next_pic_id))
{
$next_pic_id = "";
$next_pic_link = "";
}
else
{
$next_pic_link = "<a href=\"photos.php?user=$users->username&id=$users->id&p=$next_pic_id\" >next</a>";
}
if($_SESSION['user_id'] == $photo_users_id )
{
$delete = "Delete";
}
else
{
$delete = "";
}
$path = Photograph::photosphp_image_path($photo_filename);
echo "<div class=\"photos_pics\" ><a href=\"../$path\" ><img src=\"../$path\" alt=\"\" name=\"start_pic\" class=\"photos_pic\"></a><a href=\"../delete_photo.php?id=$current_pic_id\">$delete</a>";
?>
</div>
<div id="pagination"><?php
echo $previous_pic_link;
echo $next_pic_link;
?>
</div>Szóval az elsődleges problémám, mint látszik is, 3 funkcióbol jön össze a dolog, magyarul 3szor kell elmenni az adatbázishoz. Saját kútfőből ilyenre sikerült, amit Sk8erPeter irt, nekem nem működik, betettem phpmyadminba magában is, mindig csak az első eredményt adja vissza.
Bármiféle építő kritikát szívesen veszek.
-
Soak
veterán
Keresgettem so-n , és linkelték ott ezt a siteot http://ideone.com/ , ha mindenki ismeri akkor tekintsétek semmisnek a hsz-t, de hasonló a jsFiddle-hez, csak tud php-t is. Megmutatja egy kód eredményét.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10454 üzenetére
Ha jól értettem, az eredeti problémád az volt, hogy a képeket NEM TÖLTI FEL, nem a kiíratással volt a para.
Tehát a move_uploaded_file() is valami ciklusban kéne, hogy lefusson. -
trisztan94
őstag
válasz
Sk8erPeter #10446 üzenetére
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $entry != "..") {
$filecontent = file_get_contents($dir . $file);
$length = strlen($filecontent);
$dataArray[$i++] = array(substr($filecontent, 0, $num), substr($filecontent, $num, $length ));
}
}
closedir($handle);
}
$totfiles = $i;
$page = isset($_GET['page']) ? $_GET['page']-1 : 0;
echo "<br/>";
for($x=$page*6; $x < $totfiles && $x < ($page+1)*6; $x++) {
$data = $dataArray[$x];
?>
<div class="visible">
<?php echo '<p class="ingatlan">' . $data[0] . $data[1] . '</p>'; ?>
</div>
<?php
}Itt a 2 ciklus
érdekes, a képes oldaoon működött. JA, most ilyen 10k+ ismeretlen karaktereket dob be.
-
Soak
veterán
válasz
CSorBA #10448 üzenetére
Szóval van 1 képed, beolvasáskor nem csak kirakod, hanem feldarabolod, majd a darabokot 3*3as rácsban kirakod divek háttereként, és még fölé mehet egy egész div átlátszó png-s bg-vel. Ha le akarja menteni valaki, az max kifényképezi.
Akkor már inkább php-vel megcsinalnam azt, hogy classnak rárakja, hogy a div háttere a kép, ha meg nincs bekapcsolva a funkció akkor meg simán.
A direkt elérést nem akarom tiltani, csak "szorgalmazni" nem akarom.
-
CSorBA
őstag
Most elnézést kérek, mert nem követtem az elejétől fogva.
Te gyakorlatilag akarsz egy képnézegetőt, vagyis albumot. Ahol látszik az akutális kép, meg kicsiben mondjuk a körülötte lévő pár. Az lenne a fontos neked, hogy közvetlen ne linkelhessék a képet, azaz más oldalra ne ágyazzák be, vagy közvetlen jobb gombbal ne mentsék le. Ha ezt akarod akkor nekem az lenne az ötletem, hogy:
1, Apachal tiltom a képek közvetlen elérését.
2, A képeket csak a galériában lehet megnézni, amit a fentebb említve így töltesz be pl: galeria.php?kepid=id&egyebamitakarsz
3, megjelenik mellette jobbra balra a kövi, előző kép.
4, ha a user meg akarja mutatni a képet, akkor fogja az urlt bemásolja, ami erre az OLDALRA (azaz nem közvetlen a képre) mutat.
5, nah hogy a képet ne mentsék le, én feldarabolnám, és erre írnék valamit, szvsz ez a nehezebb része.
Pl ha nem is pixelenként, de mondjuk 9 felé, on the fly (lehet ez terheli meg kicsit.)
Szóval van 1 képed, beolvasáskor nem csak kirakod, hanem feldarabolod, majd a darabokot 3*3as rácsban kirakod divek háttereként, és még fölé mehet egy egész div átlátszó png-s bg-vel. Ha le akarja menteni valaki, az max kifényképezi.Bocsi, tényleg nem volt erőm visszaolvasni az előzményeket, de úgy érzem már elég régóta tárgyaljátok
-
Soak
veterán
válasz
Sk8erPeter #10445 üzenetére
Egyértelmű, hogy adott div-re lenne mondjuk korlátozva, az engem is földhöz vág, ha globálisan le van tiltva a jobb klikk. Nyilván ki lehet kapcsolni, ezért mondtam én is, hogy a legvégén úgyis leszedi aki akarja(illetve tudja), de pl egy átlag user azt se tudja mi az a JS .
Pont ilyesmire gondoltam amit irtál, köszi (mármint a kód) . Nem is baj, ha nem középen van, mert ugye ha a végére érsz akkor nincs tovább.
Mostmár lassan eljutok oda, hogy csak ezt kell megoldani, hogy a következő nagyobb lépést megtehessem, szóval elszorakozok vele aztán majd leírom mit alkottam.
-
Sk8erPeter
nagyúr
válasz
trisztan94 #10441 üzenetére
Nem látom, hogy itt lenne bármilyen ciklus is a több fájlmezőn való bejárásra, szóval az lesz a gond így első ránézésre.
-
Sk8erPeter
nagyúr
"JS jobb klikk védelmet"
Na ezt inkább ne. Legalábbis ne globálisan (úgy értem, max. csak akkor legyen érvényes, ha ténylegesen a képre kattintasz jobb gombbal). Vagy akkor már valahogy flash-sel jelenítsd meg a képet, az is nehezíti a dolgot (ehhez képest a jobbklikkes tiltás tényleg nem sokat ér). De ez a jobbklikk-tiltás engem legalábbis megőrjít, utálom, hogy egy oldal még a böngészőmnél is okosabb akar lenni, a felhasználók nagy része számára szintén rendkívül frusztráló lehet. Meg a JS-t akkor kapcsolod ki, amikor akarod."Ez lenne a cél végsősoron amit mondasz, csak egy léptethető, értelmes galériában. Olyan linkel ami nem évül el (kivéve nyilván ha törölve lett a fotó)."
Én is erről írtam korábban, hogy a photo_id-s $_GET-paraméter sem évül el... Hacsak nem törölték a képet, ekkor pedig megjeleníted a komplett galériát, és kész. De őszintén szólva még mindig nem világos számomra, ez miért is nem jó neked. Ha oldalakat akarsz megjeleníteni a képekből dátumra szűrve, az megint más. Ettől még én azt mondanám, inkább többféle megjelenítési módra is kellene gondolni: ahol összegyűjtve, galériaszerűen, albumba rendezve akarod megjeleníteni a képet, ahol dátum szerint rendezel (és nem feltétlenül albumba rendezve, hanem mindent megjelenítesz, ami adott időperiódusban készült), ahol user szerint rendezel, aztán tagek szerint, stb., és van egy, ahol csak egy képet jelenítesz meg nagyban, meg thumbnaileket (kisképeket) a nagyobb kép alatt, amire kattintva tovább tudsz menni a többi képre, meg van előző-következő nyíl.Ha az a gond, hogy több query kellene a lekérdezéshez, meg lehet oldani egy query-vel is, biztos van egyszerűbb is, de most hirtelen ez jutott eszembe, egész gyorsan lefut:
SELECT *, 'previous' FROM `photographs`
WHERE fid < 34
LIMIT 2
UNION
(SELECT *, 'current' FROM `photographs`
WHERE fid = 34)
UNION
(SELECT *, 'next' FROM `photographs`
WHERE fid > 34
LIMIT 2)Így összesen 5 kép jelenik meg, a "középső" az aktuális kép. (Persze nem "középső" lesz a 'current', ha az adott id előtt vagy után nincsenek képek.)
Most ezt csak példaként írtam, ahogy hirtelen eszembe jutott, nem feltétlenül ez az optimális megoldás.Egyébként lehet, hogy érdemes lenne keresni egy open source galériamodult PHP-hoz, és azt felhasználni, ahol már a legtöbb ilyen problémát kezelték.
-
Soak
veterán
válasz
Sk8erPeter #10439 üzenetére
Itt a "direkt link" alatt nem azt értettem korábban, hogy megnyitod a képet külön fülön mondjuk (bár jogos, tulajdonképpen általában erre vonatkozik), hanem arra, hogy közvetlenül a kép id-ja szerint tudod belinkelni, és ezt a felhasználó is el tudja menteni kedvencek közé, elküldheti, stb...
Ez lenne a cél végsősoron amit mondasz, csak egy léptethető, értelmes galériában. Olyan linkel ami nem évül el (kivéve nyilván ha törölve lett a fotó).
Egyébként ha meg szerzői jogokra hivatkozva nem akarod, hogy megjeleníthető legyen külön, akkor már eleve buktad a dolgot, ami az internetre felkerül, az már csak úgy védhető le, ha föléraksz egy vízjelet, vagy legalább nehezíted a dolgát a júzernek. Viszont az nem megoldás, hogy ne tudjon közvetlenül hivatkozni egy képre, ha az mondjuk tetszett neki, és később is meg akarja nézni, az oldalad keretével együtt; mert ahogy most szeretnéd, úgy első ránézésre nem fogja tudni csak azt a képet megnézni.
Már közeledünk, de egyikünk még mindig a holdon áll
. Tisztában vagyok vele, hogy ami egyszer kikerül a netre az szabad préda, de ahogy tudom megnehezítem azoknak a dolgát akik az egyik "userem" képét szó nélkül akarják vinni, amennyiben ő ezt nem akarja. Az első lépés az, ha kerettel linkelnek, mert ott már akinek esetleg tetszik tudja, hogy kié volt a kép és kérhet engedélyt a felhasználásra, lementésre. Plusz, ott akkor már egy JS jobb klikk védelmet is beállíthat magának a user(tulaj),bár ez kicsit olyan mint a légzsák... sok esetben megvéd, de azért nem 100%-os ... meg még pár ilyen dolog.
Amúgy az ötlött fel bennem, így hsz írás közben, hogy simán beteszek egy photoid-t GET-be (de parasztul hangzik ez így
) , lekérem az összes photot, megjelenitem az aktuális photoid-t, ugy, hogy melléteszek még két kis thumbnailt valahova (amik maguk léptető linkek), ez által ugye a következő photoid már ott lesz mivel a thumbnail az eredetinek csak egy kisebb keretbefoglalása. 3-ra limitálom ezzel az oldalon lévő fotókat (érdemben csak egy, mivel az elfoglal szinte mindent) . Ezzel csak az a baj, hogy miként oldom meg azt , hogy a két kis thumbnail képet nem úgy kérem, le hogy photoid = x, hanem úgy, hogy a táblában a következő. Mivel így nem évül el soha.
Plusz lehet, hogy hülyén hangzik, de szerintem egy link minnél egyszerűbb annál jobban szeretik a userek. Őket nem érdekli mi történik a háttérben, csak a végeredmény.
-
trisztan94
őstag
Sziasztok!
Van egy kép upload formom, van egy link amire ha kattintasz bejön még egy file input, de a php script a feltöltésre nem tölti fel az összes képet (pl 4 képet akarsz, akkor van ugye egy input, és lesz még 3. És csak az elsőt rakja fel.
itt a script
<?php
session_start();
if (!isset($_SESSION['user']))
{
session_destroy();
header('location:ingatlan.php');
}
// Deklaráljunk változókat
// lementjük a mostani könyvtárat
$directory_self = str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);
// hova tölti fel a képeket
$uploadsDirectory = $_SERVER['DOCUMENT_ROOT'] . $directory_self . 'ingatlan/';
// upload form helye
$uploadForm = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'ingatlanfeltoltes.php';
// sikeres feltöltés oldala
$uploadSuccess = 'http://' . $_SERVER['HTTP_HOST'] . $directory_self . 'upload_success.php';
// mivel töltünk fel
$fieldname = 'file';
// Feltöltés kezdete
// Lehetséges feltöltési hibák
$errors = array(1 => 'php.ini max file méret túlhaladva',
2 => 'html form max file méret túllépve',
3 => 'file csak részben töltött fel',
4 => 'nincs file');
// biztonsági cucc, megnézi, hogy nem e máshonnan küldtél-e a formot (igazából ide felesleges, de azért na.)
isset($_POST['submit'])
or error('Az oldalon kell feltöltened a képet!', $uploadForm);
// feltöltési hibakeresés
($_FILES[$fieldname]['error'] == 0)
or error($errors[$_FILES[$fieldname]['error']], $uploadForm);
// megnézzük, hogy http upload vót' é
@is_uploaded_file($_FILES[$fieldname]['tmp_name'])
or error('Nem az oldalról töltötted fel a képet', $uploadForm);
// ellenőrzés.. mivel ez egy képfeltöltés, megnézzük,
// hogy valóban csak képeket töltöttek-e fel
@getimagesize($_FILES[$fieldname]['tmp_name'])
or error('Csak képeket tölthetsz fel!', $uploadForm);
// egyedi név a filenak és ellenőrizzük, hogy
// nem e létezik. addig megy ez amíg nem találunk neki egy nevet
$now = time();
while(file_exists($uploadFilename = $uploadsDirectory.$now.'-'.$_FILES[$fieldname]['name']))
{
$now++;
}
// file megy a végső fázisba, hozzárendeljük a files változóhoz
move_uploaded_file($_FILES[$fieldname]['tmp_name'], $uploadFilename)
or error('A feltöltőmappának nincs elég jogosultsága!', $uploadForm);
// Ha eddig eljön a scipt akkor a kép már a szerveren van
// Elirányítjuk a user-t a sikeres feltöltés képernyőre.
header('Location: ' . $uploadSuccess);
// hibatároló, ha van vmi hiba
function error($error, $location, $seconds = 5)
{
header("Refresh: $seconds; URL=\"$location\"");
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"'."\n".
'"http://www.w3.org/TR/html4/strict.dtd">'."\n\n".
'<html lang="hu">'."\n".
' <head>'."\n".
' <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">'."\n\n".
' <link rel="stylesheet" type="text/css" href="stylesheet.css">'."\n\n".
' <title>Feltöltési Hiba</title>'."\n\n".
' </head>'."\n\n".
' <body>'."\n\n".
' <div id="Upload">'."\n\n".
' <h1>Feltöltési Hiba</h1>'."\n\n".
' <p>Egy Hiba történt: '."\n\n".
' <span class="red">' . $error . '...</span>'."\n\n".
' </p>'."\n\n".
' </div>'."\n\n".
'</html>';
exit;
} // hibaüzenet vége
?>Köszi!
-
Soak
veterán
válasz
Sk8erPeter #10439 üzenetére
Inkább úgy mondom ,hogy nem hasznosat generál.
Közben összeraktam, hogy wis mit mond, elösször félreértettem. Most kicsit visszamegyek a rajz asztalhoz, megprobálok összedobni valami értelmeset. Köszönöm az eddigi eszmefuttatást.
wis : Köszönöm szépen, valami hasonlót összedobok.
-
Sk8erPeter
nagyúr
Nem értem, a direkt link miért generálna felesleges forgalmat, ezt még nem fejtetted ki. A hotlinkelés generálhat felesleges forgalmat, ezt esetleg lehet szűrni .htaccess-szel.
Meg lehet írni úgy is a query-t, hogy az előző és utána lévő pár képet is behozza.
Viszont a wis által javasolt dátum szerinti rendezés tényleg jó ötlet, egy áthidaló megoldás a problémádra. A query-nél egyszerűen dátum szerint rendezve kéred le a képeket, az adott dátumnál kisebb vagy épp nagyobb sorrendbe rendezve; így az sem gond, ha közben törölték a képet, mert akkor egyszerűen nem fog szerepelni a találatok között, és kész.
A (#10437)-ben írt kérdésed viszont megint nem világos, hogy miért ne lehetne ugyanezt a címsorból linkelni. Egy újabb $_GET paraméterként a dátumot is megadhatod, aminél előbb vagy később feltöltött képeket szeretnél megjeleníteni.(#10437) szerk. utáni rész:
Itt a "direkt link" alatt nem azt értettem korábban, hogy megnyitod a képet külön fülön mondjuk (bár jogos, tulajdonképpen általában erre vonatkozik), hanem arra, hogy közvetlenül a kép id-ja szerint tudod belinkelni, és ezt a felhasználó is el tudja menteni kedvencek közé, elküldheti, stb... Míg ha ilyen nincs, akkor konkrét képre nem tud hivatkozni, csak dátumokra, az meg gáz. Engem legalábbis idegesítene.
Egyébként ha meg szerzői jogokra hivatkozva nem akarod, hogy megjeleníthető legyen külön, akkor már eleve buktad a dolgot, ami az internetre felkerül, az már csak úgy védhető le, ha föléraksz egy vízjelet, vagy legalább nehezíted a dolgát a júzernek. Viszont az nem megoldás, hogy ne tudjon közvetlenül hivatkozni egy képre, ha az mondjuk tetszett neki, és később is meg akarja nézni, az oldalad keretével együtt; mert ahogy most szeretnéd, úgy első ránézésre nem fogja tudni csak azt a képet megnézni.Remélem azért már kezdünk kevésbé elbeszélni egymás mellett.
-
Megnéztem a kepfeltoltes.hu-t, de nem tudom mire gondolsz.
Gondolom a képek linkelése valahogy így néz ki:
http://valami.hu/kep.php?id=65&galeria=4Na most annyi, hogy hozzáadsz egy újabb feltételt:
http://valami.hu/kep.php?id=65&galeria=4&datum=20120712Ezt belerakod egy nem írható szövegmezőbe, vagy akárhova ahonnan az user egyszerűen kimásolhatja.
-
Soak
veterán
A dátumot tárolom. Ez jó ötletnek tűnik, viszont így nem a címsorból lehetne linkelni, hanem kéne egy külön mező a linkeknek (mint pl a kepfeltoltes.hu-nál) jól értem?
Szerk: Még az előző hsz.-emhez, továbbá jogvédelem miatt sem szeretném a direkt linket, mert onnan már csak egy lépés a jobb klikk save. Vagy ügyesebbek printscreen + paint
, engem ugyan nem zavarna, de az biztos nem örül neki aki a képeiből él.
-
Soak
veterán
válasz
Sk8erPeter #10434 üzenetére
Hát ez azért necces, mert ha bekerülnek újabb képek az adatbázisba, vagy törölsz párat a régiek közül, akkor teljesen megváltozik a sorrend, tehát mondjuk ami addig az 1. oldalon volt, pl. 20 újabb kép után a 2. oldalra tolódik.
Erre utaltam mikor azt mondtam, hogy olyan linket szeretnék ami nem évül el.
Most így arra gondoltam ,hogy adok neki egy ?gallery=1 -et, ezzel a kép class megváltozik, tehát nagy lesz, plusz style meg minden fasza. Ugye lesz mögötte egy &photoid=3 , ezzel egyedi a link és azt is tudjuk, hogy melyik képről van szó. Esetleg meg írnám úgy, hogy mindig lekérdezze az SQL-t csak az adott képre. Nem pedig egyszer az elején, hogy behozzon minden képet. Erről mi a véleményed? Mennyire hatékony?! . Plusz az elején legkérdezném az összes képét a usernek, azoknak az id-ját egy arrayba tenném, onnan pedig átadnám a linkeknek. (nem tudom, hogy életképes-e, csak hangosan gondolkozom) . De ez hülyeség lenne, mert akkor kétszer kérdezném az adatbázist, holott az elején megvan már minden id?!
A direkt link azért nem jó mert csak felesleges forgalmat generál, plusz bevételt sem termel. Nem akarom letiltani, de nem akarom szorgalmazni
-
Sk8erPeter
nagyúr
"Na most, ha valaki nézi ezt a nagy képet akkor szeretném ha tudná linkelni is, nem direkt linkként - fehér háttéren a kép-, hanem a konkrét oldalt amin van, mindenestől."
Hát ez azért necces, mert ha bekerülnek újabb képek az adatbázisba, vagy törölsz párat a régiek közül, akkor teljesen megváltozik a sorrend, tehát mondjuk ami addig az 1. oldalon volt, pl. 20 újabb kép után a 2. oldalra tolódik.
Az még esetleg kerülő megoldás lehet, hogy $_GET paraméterként megadod a photo_id-t és még egy egyéb paramétert is, ami jelzi, hogy galériaszerűen akarod megjeleníteni, tehát legyen előtte és utána is kép, vagy csak utána, stb... ekkor adatbázisból ennek megfelelően kérdezed le az eredményeket, hogy mindenképp köztük legyen a megadott photo_id-val jelölt kép is.
Az előző-következő nyilak kezelése meg nem olyan nehéz, de ahogy elnéztem, ez nálad kezelve is van valahogy a $pagination->has_previous_page() és $pagination->has_next_page() metódusokkal.
De egyébként ha az adott képet nagyban meg lehet nézni, tehát az van a "középpontban" akkor most hirtelen nem világos számomra, miért nem jó az, hogy a photo_id szerint direkt linkeled be, és akkor attól még felajánlhatod az előző-következő képeket, és lekezeled azt az esetet is, ha azóta a képet törölték: ha ez a helyzet, akkor pl. megjeleníted a teljes galériát (esetleg jelezheted azt is, hogy azóta az adott képet törölték), vagy hasonló. -
Soak
veterán
válasz
Sk8erPeter #10432 üzenetére
Szóval itt még egyáltalán nem jön képbe a képnek a konkrét id-ja...
Pont ez a problémám, mert amit a hsz.-ed második részében leírtál meg van csinálva egy másik területen, ahol nem számit melyik képeket jeleníti meg, egyszerűen az össze képet eltördeli page-kre. De akkor ugy mondom, hogy amit te leírtál, kitesz mondjuk 20 képet. Amik egyben linkek is. Ezek a linkek egy "galériába" mutatnak, ahol nagyobb méretben lehet látni a képeket. Akkorában, hogy csak 1 fér el, tehát itt igazából az offsetnek nincs is jelentősége . Na most, ha valaki nézi ezt a nagy képet akkor szeretném ha tudná linkelni is, nem direkt linkként - fehér háttéren a kép-, hanem a konkrét oldalt amin van, mindenestől. Plusz ugyanúgy tudna lépkedni a képek között a gombokkal. A kézenfekvő megoldás, hogy $_GET[photo_id] és akkor egyedi a link és soha nem avul el, viszont ilyenkor hogyan kezelem a léptető linkeket úgy, hogy sorban legyenek - magyarul 10 kép közül, ha az 5-ket nézem akkor balra és jobbra is tudjak menni, de ha a 10.-et akkor csak balra - a képek, vagy inkább a jobb kérdés, hogy miként adom át a léptető linkeknek dinamikusan a fénykép id-ját.
-
Sk8erPeter
nagyúr
Hát meg kellene különböztetni a kép id-ját és a page-et: a page-dzsel csak megadod, hogy az adatbázisból lekért, korlátozott mennyiségből hanyadik oldalt szeretnéd megjeleníteni.
De elvileg hasonlót csinál a kódod is, tehát csak limitálja a lekért mennyiséget, és megad egy bizonyos offsetet is, ahányadik rekordtól meg akarod mutatni az eredményhalmazt.
Szóval itt még egyáltalán nem jön képbe a képnek a konkrét id-ja...Vegyük azt, hogy pl. van 200 képed. Egy oldalon 20 képet jelenítesz meg, tehát az 1. oldal lekérése így néz ki:
SELECT * FROM photographs LIMIT 0, 20
aztán a 2. oldal megmutatása:
SELECT * FROM photographs LIMIT 20, 20
a 3. oldalé:
SELECT * FROM photographs LIMIT 40, 20
a 4. oldalé:
SELECT * FROM photographs LIMIT 60, 20
és így tovább...(Utóbbi egyébként ekvivalens ezzel:
SELECT * FROM photographs LIMIT 20 OFFSET 60
)A képekhez tartozó linkekbe meg belegenerálhatod a photo_id-t...
Remélem szép lassan közelebb kerülünk a megoldáshoz. Kérdezz, ha valami még nem érthető. -
Soak
veterán
válasz
Sk8erPeter #10430 üzenetére
Normális esetben egy képhez egyetlen id tartozik, tehát egyértelműen azonosítja.
Igen, ezzel nincs is probléma, csak hogy amikor az aktuális képet nézem ezzel a módszerrel a többi kép id-ját, hogy adom át a linkeknek?A képek alatt mondjuk igy néz ki a link sor previous 1 2 3 4 5 next , itt ugye az utolsó és az első változik a többi elvileg fix.
Az offsetnek pedig a címben is megadhatod a kezdetét és végét, vagy ahogy most is csinálod, egyszerűen megadod a page számát, és akkor nyilván nem kell id a címbe.
Épp ez a probléma, ha a user letörli az első képet akkor már rossz a link, mert egy másikra mutat, ha page szám van megadva.
Lehet, hogy elbeszélünk egymás mellett és egyszerű a megoldás, de nekem most nem világos.
Szerk: Azért oldottam meg így mert így a userhez tartozó képekkel dolgozom.A session nem biztos, hogy be van állítva, de ha nincs akkor használja a get[id]-t . Fejlesztési fázisban van a dolog, nem végleges amúgy sem.
-
Sk8erPeter
nagyúr
Pedig "elég magától értetődő mi történik", épp Te írtad.
"csak hogyan linkelen egy olyan id-t amit elvileg adott környezetben nem látok, mivel minden esetben csak 1 képet kapok"
Mi az, hogy "adott környezetben nem látod"?
Normális esetben egy képhez egyetlen id tartozik, tehát egyértelműen azonosítja.
Az offsetnek pedig a címben is megadhatod a kezdetét és végét, vagy ahogy most is csinálod, egyszerűen megadod a page számát, és akkor nyilván nem kell id a címbe.Szerk.: egyébként most látom, hogy itt az id-vel user id-t azonosítasz... nem tudom, milyen rendszert használsz, miért így van megoldva, és ennek mi értelme. Meg van egy ilyen:
if(!isset($_GET['id']) AND !isset($_GET['user']))
{
$id = $_SESSION['user_id'];
}A $_SESSION['user_id'] biztos, hogy be lesz ezelőtt állítva?
Egyébként minél többet nézem, annál kevésbé világos a megvalósítás miértje.
-
Soak
veterán
válasz
Sk8erPeter #10428 üzenetére
Igen, eddig én is eljutottam, csak hogyan linkelen egy olyan id-t amit elvileg adott környezetben nem látok, mivel minden esetben csak 1 képet kapok (mármint a php) . Tehát ha belinkelek egy fotót akkor onnan hogyan generálok php-vel linkeket a többire? Mert ha a limit nem egy akkor ugye több fotót kapok mint kéne. Plusz a ?page=xy mindig benne lesz a linkbe és az meg nem fix.
U.i.: Ezt a kódot nem én írtam, azóta már egész máshogy néz ki, nem értem amúgy mi ennek a módszernek a logikája.
-
Sk8erPeter
nagyúr
A linkbe tedd bele a fotónak mondjuk az id-ját, és aszerint szűrj.
Pl. /photos.php?id=123123Így már lesz $_GET['id']-d.
De felhasználótól érkező adatot soha ne hagyj ellenőrizetlenül!
Mielőtt adatbázis-query-t futtatnál, escape-eld - de inkább jobbat javaslok, használj prepared statementeket!
Ezt muszáj belinkelnem: [link].Szerk.:
echo " <a href=\"photos.php?page={$i}\">{$i}</a> ";
HELYETT pedig lehetne
echo ' <a href="photos.php?page='.$i.'">'.$i.'</a> '; -
Soak
veterán
Sziasztok !
Szeretném a véleményeteket kérni, hogy miként kéne megoldanom azt, hogy úgy tudjak lapozni képek között, hogy mindig 1 van megjelenítve és mindegyiknek egyedi a linkje (tehát nem csak a képet lehet linkelni hanem magát az oldalt ahol megjelenik) .
Van egy ilyen megoldásom amit máshol használok, de ebben az a hiba, hogy a linkek nem egyediek, mivel ha változik a sorrend akkor a link alatt a kép is változik.
Nem teszek be mindent mert elég magától értetődő mi történik.
$pagination = new Pagination($page, $per_page=1, $total_count);
if(!isset($_GET['id']) AND !isset($_GET['user']))
{
$id = $_SESSION['user_id'];
}
elseif (isset($_GET['id']) AND isset($_GET['user']))
{
$id = $_GET['id'];
}
$sql = "SELECT * FROM photographs ";
$sql .= "WHERE users_id={$id} ";
$sql .= "LIMIT {$per_page} ";
$sql .= "OFFSET {$pagination->offset()}";
$photos = Photograph::find_by_sql($sql);
if($pagination->total_pages() > 1) {
if($pagination->has_previous_page()) {
echo "<a href=\"photos.php?page=";
echo $pagination->previous_page();
echo "\">« Previous</a> ";
}
for($i=1; $i <= $pagination->total_pages(); $i++) {
if($i == $page) {
echo " <span class=\"selected\">{$i}</span> ";
} else {
echo " <a href=\"photos.php?page={$i}\">{$i}</a> ";
}
}
if($pagination->has_next_page()) {
echo " <a href=\"photos.php?page=";
echo $pagination->next_page();
echo "\">Next »</a> ";
}
} -
DeltaPower
addikt
válasz
trisztan94 #10425 üzenetére
Nem kell két külön tábla.
Az első beillesztés után lekérdezed a rekord id-jét (pl mysql_insert_id()-vel) és a személyes adatok megadása után updateled ezt a rekordot. -
trisztan94
őstag
Van egy regim, 2 részből áll. Az első az alapadatok, bemegy sqlbe, aztán kitöltöd a személyes adatokat akkor az meg megint. Hogy tudom összefúzni a két táblát ?
-
trisztan94
őstag
válasz
trisztan94 #10423 üzenetére
Megvan a megoldás, sry a dupla postért!
echo "<div class='lapozo'><a onclick='story_changepage($page);' href='../html/blog.php#tortenetek?page=$page'>$page</a></div>";
ennyi volt a baj
-
trisztan94
őstag
Ahoy elvtársak!
Próbálgatok egy lapozót csinálni, képeknél is ugyanezt használtam, de valamiért történeteknél nem működik.
Itt lenne az kód:
<?php
$dataArray = array();
//Number of chars for the string
$num = 500;
$dir = '../php/biralas_tortenetek/';
$willcount = readdir(opendir($dir));
$i = -1;
//Check if </div>DIR e</div>xists
if ($handle = opendir($dir)) {
//Loop over the directory
while (false !== ($file = readdir($handle))) {
//Strip out the . and .. files
if ($file != "." && $entry != "..") {
//Store file contents
$filecontent = file_get_contents($dir . $file);
//Split the content and store in array
$length = strlen($filecontent);
$dataArray[$i++] = array(substr($filecontent, 0, $num), substr($filecontent, $num, $length ));
}
}
//close the dir
closedir($handle);
}
$totfiles = $i;
$page = isset($_GET['page']) ? $_GET['page']-1 : 0;
echo "<br/>";
for($x=$page*1; $x < $totfiles && $x < ($page+1)*1; $x++) {
$data = $dataArray[$x];
?>
<div class="visible">
<?php echo $data[0] . $data[1]; ?>
</div>
<?php
}
for($page=1; ($page-1)*1 < $totfiles; $page++)
{
echo "<div class='lapozo'><a href='../html/blog.php#tortenetek?page='$page''>$page</a></div>";
}
?>Igazából az alja az ami lényeges.
Köszi szépen!
-
cucka
addikt
válasz
DeltaPower #10418 üzenetére
Jobban megnézve igazad van, elnéztem a zárójelezést.
-
cucka
addikt
válasz
fordfairlane #10415 üzenetére
Csak halkan szólok, hogy ez a regexp match-elni fog a "@asd" email címre is, érdemes lenne még dolgozni rajta.
-
fordfairlane
veterán
Hát akkor nincs ötletem. Próbáld ki, az összes megadott emailre jól működik:
<?php
$emailcim = "robert.boldi[kukucc]kombiterminal.hu";
if(preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])+([a-zA-Z0-9])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+([a-zA-Z0-9])+$/" , $emailcim)) {
echo 'match!';
}
?>Email kukacjelet kicseréltem, nehogy valami crawler szemétláda begyűjtse innen.
-
biker
nagyúr
válasz
fordfairlane #10413 üzenetére
épp az a bajom, hogy átengedte a szóközt tartalmazó emailcímeket, és azok meg hazavágták random a swiftmailert, az egy dolog, hogy a szóköz miért ment át, de ezeket már kiszedtem sql-ből
ezek a teljesen jó címek érthetetlen, hogy mégis kiszállnak. -
biker
nagyúr
van 800 cím, amiből ezeket a helyes címeket veszi hibásnak, az összes többiről jól dönti el, hogy jó vagy sem.
A kérdés az, mi az oka annak, hogy ezek fennakadnak?azért negálom, mert abban az if ágban hajt végre, és azt, hogy nekem így jó, nem ez a kérdés!
az adott emailcímeknek NEM kellene fennakadniuk, mégis fennakadnak
-
CSorBA
őstag
válasz
Sk8erPeter #10410 üzenetére
A csudába, tényleg nem jó. Most azért remélem nem akarnak nálam ékezetes emaillel admint regelni
-
Sk8erPeter
nagyúr
Itt külön-külön tesztelve mindig ad match-et.
(#10409) CSorBA : sajnos ez csak első szűrőnek jó, mert amúgy jó címekre nem lesz jó a teszt, pl. pont korábban volt szó róla, hogy az ékezetes neveket tartalmazó domainekre sem jó. (mondjuk akkor FILTER_VALIDATE_URL-ről volt szó, de gondolom egy része közös a függvényeknek)
Mondjuk ahogy nézem, a biker által mutatott regexp sem lesz jó ilyenekre. -
biker
nagyúr
Magyarázzátok már el, hogy ezeket a címeket a lenti ellenőrző miért tekinti hbásnak?
fojtyik@rastyl.hu
palffy@seawing.hu
robert.boldi@kombiterminal.huif( !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])+([a-zA-Z0-9])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+([a-zA-Z0-9])+$/", $emailcim))
símán helyesek ezek a címek, nem?
-
Sk8erPeter
nagyúr
Hát akkor kicsit túlérzékeny vagy.
Ott volt direkt a "vagy én értem félre a kérdést", mert kicsit túl szarul tetted fel a kérdést, már bocs.
Szerk.: zacskó.
Komolyra fordítva:
fordfairlane előttem elég jól megfogalmazta, hogy ha a kérdésedet nem tudod megfogalmazni úgy, hogy mi is értsük, akkor ne várj jobb választ. Hülye kérdésre hülye válasz. És akkor cserébe nem kell visszavágni azzal, hogy "mindenkit kioktatsz", mert akkor ott tartunk, mint az óvodában. Mellesleg ha visszanézel a topicban vagy a többiben, akkor a sok "kioktatás" azért nem egy ember számára segítséget jelentett, szóval lehet, hogy valakik számára hasznosat is írtam, miután megköszönték a kőkemény kioktatást, amit én szoktam tolni.
A másik meg az, hogy nem vagyunk porcelánbabák, ne kelljen már szofisztikáltan fogalmazni, hogy ne sértődj meg apróságokon. -
fordfairlane
veterán
Tehát egy egyszerű szöveges hivatkozással szeretném elpostázni a dolgot. Előtte már utánakerestem, de nem találtam olyan megoldást ami "tetszett" volna, ha meggyőztök, hogy azt így akkor oké'.
Hivatkozásként paramétert átadni?
<a href="veszemaparameredet.php?paramnev1=paramvalue1¶mname2=paramvalue2">
"Dolgot" "elpostázni" nem túl egyértelmű leírása a problémának, így most részemről ennyi, bár le merem fogadni, hogy nem erre a válaszra vártál.
-
válasz
Sk8erPeter #10404 üzenetére
Hát egy része a hsz. -nek nem esett jól. Szerintem ennyire nem írtam le azért érthetetlenül, nem tudhatok mindent. Mellesleg ott volt egy
is.
-
válasz
Sk8erPeter #10402 üzenetére
Engem meg már nem lep meg, hogy mindenkit kioktatsz... kutyuli!
Lenne rá ötletem, csak feleslegesen nem akarok kalapálni, időt vesztegetni vele. Lényeget kihagytam, hogy javascript nélkül szeretném megvalósítani. Amúgy szerintem szimplán bénán írtam le amit akarok, ezért bocsi!
De vegyük sorra mégegyszer!
(ha most én értem félre előre bocsi!)
"Azzal fordulnék hozzátok, hogy lehet megvalósítani azt, hogy egy formot elposztoljak linkel."
Tehát egy egyszerű szöveges hivatkozással szeretném elpostázni a dolgot. Előtte már utánakerestem, de nem találtam olyan megoldást ami "tetszett" volna, ha meggyőztök, hogy azt így akkor oké'.
A másik megoldás, hogy minden egyes sorba teszek két gombot, amit beformázok mintha hivatkozás lenne és azzal aktivizálom az űrlap küldést. Itt csak az nem világos, hogy az egyetlen információt, az azonosítót hogyan küldöm el.
Szerk.: remélem azért nincs harag, így este már fáradt vagyok...
Brájen!
-
Sk8erPeter
nagyúr
JavaScript nélkül a szokásos formokkal, bár őszintén szólva már az is meglep, hogy ezt a kérdést felteszed, vagy én értem félre a kérdést... Ha küldtél már el formot valaha, akkor tudnod kéne, hogy küldesz szerveroldalra formadatot. Azonosítót lehet akár hidden mezőként is meg sok egyéb ötlet is lehet rá, de egy ideje PHP-zol, hogy merül fel a kérdés? Vagy esti összezavarodás?
JavaScripttel meg pl. a jQuery akármelyik AJAX-os függvényével összepakolhatsz adatokat, formból pl. a .serialize() függvényt használhatod... -
Heló!
Azzal fordulnék hozzátok, hogy lehet megvalósítani azt, hogy egy formot elposztoljak linkel. Van egy táblázatom, tartalmazza a felhasználókat, és van mindegyik sorban egy "Töröl" és "Szerekeszt" gomb. Azt szeretném megoldani, hogy fixen elposztolom a Törölni és/vagy szerkeszteni kívánt adat azonosítóját, amit egy másik függvény feldolgoz.
mobal,
Új hozzászólás Aktív témák
Hirdetés
- 16GB-os SODIMM (notebook) DDR4 RAM bazár - nézz be, lesz, ami kell neked!
- HP 15-af105nh laptop (15,6FHD/AmdQuad/4GB/128SSD/Magyar) - Akku X
- JOYOR S5 Pro 10" Elektromos Roller 26Ah Akkumulátorral Moddolt!
- XPS 13 9310 13.4" FHD+ IPS i7-1185G7 16GB 512GB NVMe ujjlolv IR kam gar
- Megkimélt Apple iPhone 8 Plus 64GB Fekete szinben, 100% akkuval, kártyafüggetlen, garanciával
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 64GB RAM RTX 5080 16GB GAMER PC termékbeszámítással
- ÚJ- Lenovo ThinkVision T24i-10 - 24" monitor - Számla, garancia
- Egyedi ékszerdobozka
- Bomba ár! HP ProBook 430 G5 - i5-8GEN I 8GB I 256GB SSD I HDMI I 13,3" I Cam I W11 I Garancia!
- 15,6" Dell Latitude laptopok: E6540, E5550, E5570, 5580, 5590, 5500, 5501, 5510/ SZÁMLA + GARANCIA
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest