PHP az szerver oldal, kliens oldal az HTML + JavaScript. Szerintem kliens oldal nézz szét.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
PHP az szerver oldal, kliens oldal az HTML + JavaScript. Szerintem kliens oldal nézz szét.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
persze tudom, csak suliba beadandó kell, nem kell szerver meg kliens, csak front kontroller, meg 1-2 dolog, ez a pop up ablak se kell, csak mivel van egy kis DB művelet jobb lett volna egy ilyennel kiirni egy kis infót, de lehet hagyom
Xbox One: bandymnc
JS alert?
az a resze rendben is van, ahogy a kepeken latod, a "szemetmappa1" nem letezik, ezert az a controller nem talalhato, jelzi is a CI
a "szemetmappa" az elso kepen viszont letezik, az "application" mappan kivul van, egeszen pontosan mellette, azt szeretnem elerni es egy htaccess-el tiltani benne a file listázást
magyarul, hogy azt ne ellenorizze a CI, de nem ertem miert teszi, ha egyszer nincs az "application" mappan belul
Paid my dues!
sziasztok,
egy kis segítséget szeretnék kérni, mert már teljesen tanácstalan vagyok
php7-et használok
és a következővel lenne a gondom:<?php
while($rows = $result->fetch_assoc()) {
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['ID']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['ID']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['Comment']; ?></td>
</tr>
<?php
}
?>
177 sorom van, legenerálódik szépen a táblázat, 177 üres sorral.
a echo $rows['ID'];
-t berakom a while után közvetlen vissza kapom az adatokat.
Mit rontok el, hogy nem jelenik meg adatom?
[ Szerkesztve ]
Szerintem hiányzik a fetch mód, pl: PDO:ETCH_ASSOC
nem szóltam
[ Szerkesztve ]
Xbox One: bandymnc
így is próbáltam de az eredményem ugyan az:mysqli_fetch_all($result,MYSQLI_ASSOC);
biztos jól használod? Mert elvileg ez a szintaktika
vagy ahogy én csináltam :
$row=$result->fetchAll(PDO::FETCH_ASSOC)
de nem okoskodok, vannak okosabbak, én még csak tanulom a nyelvet
Xbox One: bandymnc
én már mindenhogy próbáltam
És én minden esetre köszönöm az ötletelés, okoskodásnak biztos nem veszem, mert én mát ötlettelen vagyok
Jelenleg úgy gondolom hogy a cikluson belüli változó kezeléssel lesz a bajom, mert ha:
<?php
while($rows=mysqli_fetch_assoc($result)) {
echo $rows['ID'];
?>
<tr>
<td align="center" bgcolor="#FFFFFF"><input name="checkbox[]" type="checkbox" id="checkbox[]" value="<? echo $rows['ID']; ?>"></td>
<td bgcolor="#FFFFFF"><? echo $rows['ID']; ?></td>
<td bgcolor="#FFFFFF"><? echo $rows['Comment']; ?></td>
</tr>
akkor az eredményem:
[ Szerkesztve ]
Nézd meg hogy mi kerül a "$rows"-ba pl.: var_dump($rows) vagy ha élhetőbben szeretnél debugolni akkor xdebuggal.
[ Szerkesztve ]
ezt az xdebug-t nem ismertem, köszönöm, mindjárt meglesem.
vardumpra pedig ezt kapom.array(2) { ["ID"]=> string(1) "1" ["comment"]=> string(21) "tetszoleges szöveg 1" }
array(2) { ["ID"]=> string(1) "2" ["comment"]=> string(21) "tetszoleges szöveg 2" }
array(2) { ["ID"]=> string(1) "3" ["comment"]=> string(21) "tetszoleges szöveg 3" }
[ Szerkesztve ]
na meg van a hiba. Hú de láma dolog
<td bgcolor="#FFFFFF"><? echo $rows['ID']; ?></td>
---> <td bgcolor="#FFFFFF"><?php echo $rows['ID']; ?></td>
mindenkinek köszönöm a rám fordított időt
a php debug-ot pedig nekem nem találja az extension-ök között
[ Szerkesztve ]
Sziasztok!
Facebook API. Valami koncepcionális leírásra lenne szükségem / bármi elég frissnek tekinthető leírásra a felhasználói fényképek kezeléséről.
Az elméleti szitu. Adva van egy fb alkalmazás, amit a felhasználó engedélyez. Az app megkapja az engedélyeket. Az alkalmazás kilistázza weblapra a felhasználó által feltöltött fényképeket. Eddig még találok elég sok példát, működni fog. A felhasználó választ egyet. És az után kezdődik a problémám. Az alkalmazásnak fel kell tudnia jegyeznie egy olyan linket / tokent / akármit, amin keresztül az a kiválasztott kép egyértelműen azonosítható bármikor sokkal később is. Akár évek múlva. Az alkalmazásnak tudnia kell bármikor később is linket adnia arra, hogy az a kép a kliens oldalon megjeleníthető legyen. _Vagy_ tudnia kell felismerni azt az esetet, ha az a fénykép elérhetetlenné vált. Példának okáért a felhasználó azt a képet letörölte, vagy megváltoztatta a hozzáférési jogokat (eu-ban már van gdpr is).
Mi a legnormálisabbnak tekinthető angol szakirodalom, amiből körbejárhatom a fentebbi kérdéskört? A programozási alapjaim megvannak, nagyon alap dolgokon nem akadok majd fent, de levegőben lógó, félig / semennyire sem megmagyarázott api doksiból nem tudom kihámozni a háttér mechanizmusait. Reménykedem benne, nem csak annyi van, ami az fb dev oldalán érhető el, mert az hagy maga után nem kevés kívánnivalót
Elmented a kép id-jét, graph api visszadja.
Van FB-n dev csoport, de fogalmam sincs, mennyi idő, mire visszaigazolják a csatlakozásomat, és addig nem tudok ott kérdezni
A user_id + photo_id még oké, de mindkettőhöz védelmi beállítások is tatoznak, és tudni kellene monitorozni, hogy az adott fénykép publikusan hozzáférhető-e? Eddig ami csúnya megoldást találtam, hogy nem egy alkalmazást regisztrálok, hanem legalább 2-t, megosztom közöttük a user_id-kat, és a másodlagos alkalmazással lelistázom az adott user_id alatt elérhető fényképeket. Lévén azt az alkalmazást a user nem fogja engedélyezni (fel sem kínálom), a publikus fényképeken kívül mást nem kapok meg a listában. Viszont ez nagyon csúnya és teljesítménypocsékoló "megoldás". Az FB-n minden alkalmazás engedélyköteles, az FB meg is tilthatja, hogy ilyet csináljak.
Egy másik kérdés, amin filozok, hogy azok a photo_id-k vajon mindörökké unique szigorúan monoton növekvő értékek? Vagy előfordulhat a jövőben, hogy letöröl az egyik user valami fényképet, aztán feltölt egy másikat, és az új fénykép megkapja a régi id-ját? Mert akkor más fénykép került uzgyan arra a user_id + photo_id-ra, és az problémát tud jelenteni az alkalmazás tisztaságának megőrzésében. Egy profil képet lecserélhetnek egy önkényuralmi jelképre, és azt fogja az app-om a népek orra elé tolni. Ki kellene azt védeni 101%-osan. Erre valószínűleg az FB "hivatalos" állásfoglalására lesz szükségem. De ha írták is konkrétan valahol, akkor azt a levelet megspórolhatom.
PHP-ben hogyan tudnám ellenőrizni, hogy van e az objektum tömben adat?
RestAPI-t csinálok, lekérdeztem az adatbázisból, és egy objektum tömbe raktam bele egyesével az adatokat, de hiába echo-zom ki, nem ír ki semmit, a lekérdezés jó, azt ki tudtam íratni, print_r-el meg nem írja ki a konkrét adatokat, csak annyi sort ahány adat van
Xbox One: bandymnc
esetleg var_dump($objektum)
?
ha objektum akkor $obj->tulajdonsag
formában éred el, ha tömb akkor $tomb['tulajdonsag']
, nem tudom mi kell neked mert nem tiszta a kérdés.
In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.
Lényeg az, hogy tanulom ezt a slimframeworkot, + OOP
Lekérdeztem az adatbázisból, és minden sorból csináltam egy objektumot, ez a Student.php ban van
objektumokat a StudentEntity-ből származtattam , + ez örökölt még a Mappertől, de ez csak az adatbázis változót vette át
index.php-ban, a tanulok útvonalnál akartam ezt kiíratni, de nem igazán írt ki semmit a tulajdonságokkal, attól tartok, hogy valamit nem jól csináltam az adatbázis és az objektumok között
mert az adatbázisból lekérdezi, $row-ba benne is vannak az értékek, szóval vagy a kiíratás nem jó, vagy nem rakja bele a tömbbe
Xbox One: bandymnc
A StudentEntity.php-ben hiba hogy a construct
helyett consturct
az biztos gondot okoz.
[ Szerkesztve ]
In nomine Pasta, et Fusilli, et Spaghetti Sancti. Ramen.
basszus minő balga hiba
Esetleg ha abban tudnál még segíteni, vagy akárki más, hogy
composer.json-be megadtam, hogy hol vannak az osztályok, de nem találja, vagyis szerintem rossz helyen keresheti?
autoload-ot is betöltöttem, de csak úgy találja az osztályt, ha requireddel betolom őket ugye
Xbox One: bandymnc
sztornó
Xbox One: bandymnc
Sziasztok. Van egy Ncore kereső, a Synology Nas-hoz de már nem igazán működik, még akkor sem, ha jól van beállítva. Azt szeretném, hogy magát a kereső plugint átalakítani, hogy azt a kulcsot is hozzá illessze az url végére, amit a torrent letöltésékor kapunk. Valahogy így néz ki, amit a dlm generál.
http://ncore.cc/torrents.php?action=download&id=xxxxxxx
és így kellene, hogy kinézzen
http://ncore.cc/torrents.php?action=download&id=xxxxxxx&key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Maga a kereső, az így néz ki, de nem tudom, hova kellene beírni, hogy helyes legyen.
<?php
class SynoDLMSearchNCore {
private $qurl = 'http://ncore.cc/torrents.php';
private $purl = 'http://ncore.cc/torrents.php?action=download&id=';
private $NCORE_COOKIE = "/tmp/ncore.cookie";
private $NCORE_LOGIN_URL = 'https://ncore.cc/login.php';
public function __construct() {
}
public function prepare($curl, $query, $username, $password) {
if (!file_exists($this->NCORE_COOKIE) && $username !== NULL && $password !== NULL) {
$this->VerifyAccount($username, $password);
}
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_USERAGENT, DOWNLOAD_STATION_USER_AGENT);
curl_setopt($curl, CURLOPT_COOKIEFILE, $this->NCORE_COOKIE);
curl_setopt($curl, CURLOPT_HEADER, TRUE);
curl_setopt($curl, CURLOPT_REFERER, $this->qurl);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_URL, $this->qurl."?miben=name&tipus=all_own&miszerint=fid&hogyan=DESC&mire=".urlencode("[###]" != $query ? $query : ""));
}
public function VerifyAccount($Username, $Password) {
$ret = FALSE;
$PostData = array('ne_leptessen_ki'=>'1',
'Submit'=>'Belépés!',
'nev'=>$Username,
'pass'=>$Password,
'set_lang'=>'hu',
'submitted'=>1,
);
$PostData = http_build_query($PostData);
$queryUrl = $this->NCORE_LOGIN_URL;
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_USERAGENT, DOWNLOAD_STATION_USER_AGENT);
curl_setopt($curl, CURLOPT_POST, TRUE);
curl_setopt($curl, CURLOPT_POSTFIELDS, $PostData);
curl_setopt($curl, CURLOPT_COOKIEJAR, $this->NCORE_COOKIE);
curl_setopt($curl, CURLOPT_HEADER, TRUE);
curl_setopt($curl, CURLOPT_REFERER, $this->NCORE_LOGIN_URL);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($curl, CURLOPT_URL, $queryUrl);
$LoginInfo = curl_exec($curl);
curl_close($curl);
if (FALSE != $LoginInfo && preg_match("/Set-Cookie: nick=".$Username."/iU", $LoginInfo) && file_exists($this->NCORE_COOKIE)) {
$ret = TRUE;
} else {
$ret = FALSE;
}
return $ret;
}
public function parse(&$plugin, $response) {
preg_match("/<div.*?box_torrent_all.*?>/iU", $response, $match);
$beginPos = strpos($response, $match[0]);
preg_match("/<div.*?lista_lab.*?>/iU", $response, $match);
$endPos = strpos($response, $match[0]);
$response = substr($response, $beginPos, $endPos-$beginPos);
preg_match("/<div.*\"box_torrent_all\".*>(.*?)<\/div>/isU", $response, $match);
$response = $match[1];
$res=0;
if(preg_match_all("/<div class=\"box_torrent\">(.*)<div class=\"torrent_lenyilo/siU", $response, $matches2, PREG_SET_ORDER)) {
foreach($matches2 as $match2) {
$title="Unknown title";
$download="Unknown download";
$size=0;
$datetime="1978-09-28";
$page="Default page";
$hash="Hash unknown";
$seeds=0;
$leechs=0;
$category="Unknown category";
$torrentData = $match2[1];
preg_match("/"
."<div class=\"box_alap_img\">.*<a.*<img.*alt=['\"](.*)['\"].*"
."<div class=\"torrent_txt2?\">.*<a.*href=['\"].*id=(\d+)['\"].*(title=['\"](.*)['\"].*)<nobr>(.*)<\/nobr>.*"
."box_feltoltve.*>(.*)<\/.*"
."box_meret.*>(.*)<\/.*"
."box_s.*<a.*>(\d+)<\/.*"
."box_l.*<a.*>(\d+)<\/.*"
."/isU", $torrentData, $matchDetail);
if (count($matchDetail) > 0){
$title = $this->getTitle($matchDetail);
$download = $this->qurl."?action=download&id=".$matchDetail[2];
$size = $this->getSize($matchDetail);
$datetime = $this->getDate($matchDetail);
$page = $this->qurl."?action=details&id=".$matchDetail[2];
$hash = md5($title.$download);
$seeds = $matchDetail[8];
$leechs = $matchDetail[9];
// $category = utf8_encode($matchDetail[1]);
$category = $matchDetail[1];
$plugin->addResult($title, $download, $size, $datetime, $page, $hash, $seeds, $leechs, $category);
$res++;
} else {
ob_start();
var_dump($torrentData);
file_put_contents("/tmp/dlm_parse_error_".date("YmdHis")."_".rand(100000).".txt", ob_get_clean()."\n");
}
}
}
return $res;
}
private function getTitle ($matches) {
return ("..." == substr($matches[5], -3) && trim($matches[4]) != "" ? $matches[4] : $matches[5]);
}
private function getSize ($matches) {
$size = str_replace(array("<br>", "<br />", "<br/>"), array(" "), $matches[7]);
preg_match("/(.*) (.*)/i", $size, $sizeParts);
$multiplier = 1;
switch ($sizeParts[2]){
case "TB": $multiplier *= 1024;
case "GB": $multiplier *= 1024;
case "MB": $multiplier *= 1024;
case "kB": $multiplier *= 1024; break;
}
return $sizeParts[1] * $multiplier;
}
private function getDate($matches) {
$date = $matches[6];
if(preg_match("/(\d+)-(\d+)-(\d+).*?(\d+):(\d+):(\d+)/i", $date, $matchDate)){
$date = sprintf("%04d-%02d-%02d %02d:%02d:%02d", $matchDate[1], $matchDate[2], $matchDate[3], $matchDate[4], $matchDate[5], $matchDate[6]);
}
return $date;
}
}
?>
99. sorba
Köszönöm. Közben megoldódott, kaptam egy újabb verziót, az már leszedi ezt a kulcsot is.
Tudnátok abban segíteni, hogy
Megcsináltam egy REST API-t, SlimFramework tutorial alapján, end pointok működnek is, hanem az jutott eszembe, hogy Put és Post kéréseknél kellene ellenőrizni itt a szerver oldalon az adatokat, ezt hogy érdemes megtenni? Szép megoldást akarok, de itt még csak gyakorolgatok, szóval írjak egy osztályt rá, vagy máshogy kellene?
Illetve tutorialba amikor bekérte az adatokat, abból létrehozott egy objektumot, ugye van egy osztály ami megfelelteti az adatbázis egy tábláját, na már most, úgy csinálta, hogy ezt az objektumot dobta tovább a mentést végző metódusnak, és az adatbázis műveletnél használnia kellett az osztály getter metódusait, gondolom ezt az OOP miatt csinálta így, viszont csomó átalakítást és nyűgöt lehetne megspórolni úgy, ha csak egy tömbként adnám tovább az adatokat, ez nem fér bele már az OOP/ szép megoldásba?
Xbox One: bandymnc
Egyből a mély vízbe mentél .
Melyik tutorialból tanulsz, linky?
Igen kicsit közepén kezdtem, szakdogához kell majd egy weblapot csinálni, és ezt ajánlották, hogy így csináljam, nekem igazából tetszik, bár a .Net kicsit jobban feküdne, bár azt is most kezdtük
Amúgy [ez] a tutorial, bár inkább a githubos megoldás sterint csináltam, mert ez a tutorial annyira nem részletesen írja le
[ez] a githubos link, ticketmapper talán a class neve, amibe van a save metódus, arról beszéltem
[ Szerkesztve ]
Xbox One: bandymnc
Nem használom ezt a framewokot, ami azt illeti a terminológiája már első olvasásra fáj egy kicsit .
Úgy tűnik, hogy a Slimbe itt lehet bekötni egy validátor objektumot. Itt meg már valaki dolgozott rajta.
Köszi, jó olvasmány lesz a hideg estékre
Xbox One: bandymnc
Van rss direkt download linkkel. Felesleges parzolgatni a dokumentumot.
"Ott szimatol a sarkadban vasfogait csattogtatva, minden egyes hétköznapod: kirúzsozott medvecsapda."
Tudna valaki segiteni, hogy erre a hibara mi a megoldas?
win7 prof alatt jott elo, ha szamit es ilyen dll-t win7 alatt nem talaltam.
[ Szerkesztve ]
.NET v1 (vagy 1.1) kell neki.
[link]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
Nézegetem ezt a SlimFramework-os validációt, ez tényleg ennyire sok és bonyolult, mint ahogy nekem tűnik, vagy csak nekem új ez ennyire? Github-os linken több 100 sor-ban csinálta meg a validálást, már amennyire jól értelmeztem
ezt nézegetem, én sem csináltam nagyon még ilyet, pláne nem PHP-ban, ígyí elsőre megijedtem tőle, azt hittem egyszerűbb
vagy csak én nem találok olyan leírást ami elmagyarázza jól ezt a dolgot
[ Szerkesztve ]
Xbox One: bandymnc
Kaptam még1 tippet a validációra, mégpedig a GUMP, ezt hogy érdemes beleírni a kódba? Értem ezt úgy, hogy gondolom nem kellene ezeket bele okádni az endpointok közé, hanem kellene egy külön osztály és azt hívogatni mikor validálni akarok?
Xbox One: bandymnc
Az attól függ, hogy mit akarsz validalni.
Ha a request-t, akkor én a fentebb levő middleware-s megoldást mondanám, azzal az invalid request el se jut a controllerig. De akár saját magad megírt egyszerű class is jó ami csak a Respect\Validation libet használja.
Szóval igen, külön osztály, akár minden endpointhoz egyet-egyet.
Ha meg csak a paraméterét egy metodusnak, akkor meg simán ott helyben: Respect\Validation.
És igen szivás meg idő mindent levalidalni, de utána nyugodtabban alszik az ember.
Köszi, gondolom a request-re validálás az, amikor a bejövő adatokat validálom, responsra talán nincs is értelme
Ránézek akkor a middlewarera, csak nem igazán találok értelmes leírást, még a slim honlapján se...
Még egy banális kérdés, felhasználó azonosítást a szerver ordalon kell megcsinálni? Mármint gondolok arra, hogy ha bejelentkezik, akkor maradjon meg a munkamenete, ez PHP ben történik?
Xbox One: bandymnc
24, 26, 28 és 29-et nézd meg, minden kérdésedre választ kapsz.
[ Szerkesztve ]
Köszi, ezzel már én is szemeztem, hogy végigcsinálom
Xbox One: bandymnc
Megint kérnék egy kis segítséget
Van egy osztály, abba vannak adattagok, név,email,lakhely... stb, ezekhez van get tulajdonság
Viszont egy ilyen objektum tömböt hogyan tudok vissza adni JSON válaszba?
Egy ideje guglizok, sok mindent találtam, de igazából nem nagyon működnek, gondolom valami komolyabb átalakítás kellene itt
Ami működött, hogy csináltam az osztályba még1 metódust, ami vissza adja tömbként az összes adatot, ez nem is lenne rossz szerintem, de csak 1 objektumra működik, nekem meg egy objektum tömböm van
[ Szerkesztve ]
Xbox One: bandymnc
köszönöm, elvileg sikerült
Akkor egy hivatalos json válasz így néz ki ? :"{\"id\":\"3\",\"firstname\":\"J\\u00e1sz\",\"lastname\":\"Miska\",\"email\":\"misikepower@gmail.com\",\"age\":\"999\",\"postcode\":\"6041\"}",
ráhúztam ezt a json_encode-t, azt írta ki ilyen formába
így állítom össze a választ:
return $response->withJSON(
$json,
200,
JSON_UNESCAPED_UNICODE
);
nem találtam rá megoldást, mit kellene máshogy csinálni, hogy ne tűnjenek el az ékezetek, gondolom rá kellene erőltetni az UTF8-at valahogy
Xbox One: bandymnc
UPDATE
közben látom, hogy nem json formátum, legalább is egy validátor szerint
végül is az lett a megoldás, hogy az osztályban van egy metódus, ami json formátumban adja vissza az adattagokat, és ezt tudom vissza küldeni a $response-ba
ez mennyire számít jó megoldásnak? mármint ha nem hoki backendet akarok csinálni?
Xbox One: bandymnc
Ha nem hoki backendet akarsz irni, akkor a PHP-t kb el is felejtheted. Nem megoldhatatlan feladat benne REST API-t irni, csak szerintem tulzottan hakolas, meg akkor is ha valami normalis framework-ot hasznalsz, ilyen lehet pl a Lumen vagy a Slim. Szerintem kimondottan API-t irni, sokkal egyszerubb mondjuk NodeJS-ben. Lehet velem van a baj, es csak az en kezem nem allt ra, de en az utobbi par evben a modern igenyek miatt inkabb mar elengedtem a PHP-t.
but without you, my life is incomplete, my days are absolutely gray
Igazából szakdogát csinálgatom, arra javasolták, nem profi alkalmazás kell, slimet használom én is, annyira nem gáz, de gondolom vannak sokkal jobb Api erre
Xbox One: bandymnc
Melyik modern igényre nem volt alkalmas?
Slim-ben a Response::withJson method meg fogja neked csinalni az encode-t. Nem kell kezzel meghivnod.
Az ekezetest (árvíztűrő tükörfúrógép) gyorsan megneztem, nekem mindenfele beallitas nelkul, out of the box mukodott.
igen ezt használnám, de objektummal nem működik, legalább is nálam... üres kapcsos zárójelet dob
Xbox One: bandymnc