- Fórumok
- Szoftverfejlesztés
- PHP programozás
- (kiemelt téma)
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- Az AI átformálja a Peugeot modelljeit is
- Ráműthető a Linux PlayStation 5-re, de csak egy boot erejéig
- Mindenféle környezeti behatásnak ellenállnak az ASUS új TUF tápjai
- OLED monitor topic
- Házimozi belépő szinten
- OLED TV topic
- Eladhatatlannak ítélt CPU-k eladásával javult az Intel node-ok kihozatala
- 5.1, 7.1 és gamer fejhallgatók
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Asztrofotózás
- Azonnali informatikai kérdések órája
- Billentyűzet gondom van
- Milyen egeret válasszak?
-
14600 - 14501
21809 - 20001 20000 - 18001 18000 - 16001 16000 - 15901 15900 - 15801 15800 - 15701 15700 - 15601 15600 - 15501 15500 - 15401 15400 - 15301 15300 - 15201 15200 - 15101 15100 - 15001 15000 - 14901 14900 - 14801 14800 - 14701 14700 - 14601 14600 - 14501 14500 - 14401 14400 - 14301 14300 - 14201 14200 - 14101 14100 - 14001 14000 - 13901 13900 - 13801 13800 - 13701 13700 - 13601 13600 - 13501 13500 - 13401 13400 - 13301 13300 - 13201 13200 - 13101 13100 - 13001 13000 - 12901 12900 - 12801 12800 - 12701 12700 - 12601 12600 - 12501 12500 - 12401 12400 - 12301 12300 - 12201 12200 - 12101 12100 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Peter Kiss
őstag
Karaktert olvasos, és nem sort/karakterláncot. Karaktert nem lehet indexelni. Ha kell a fájl egész tartalma:
<?php
echo file_get_contents($_SERVER['DOCUMENT_ROOT'] . '/../gem.txt');Ez string-ként beolvassa az egészet, azt pedig már lehet indexelni.
-
PumpkinSeed
addikt
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen('$DOCUMENT_ROOT/../gem.txt','ab');
$i = 0;
while (!feof($fp)) {
$szoveg[$i] = fgetc($fp);
$i++;
echo $szoveg[$i];
}
fclose ($fp);
?>Eddig így nézz ki.

-
Sk8erPeter
nagyúr
Még jó, hogy ilyen sok részletet megosztottál a megoldásodról...

-
PumpkinSeed
addikt
.txt

-
Tele von Zsinór
őstag
Mi az, hogy "jegyzettömb"?

-
PumpkinSeed
addikt
Van egy 100.000+ karakterrel rendelkező jegyzettömb. Beolvasnám kezelésre, de egy tömböt túlindexel, ezért abba nem megy. Mibe lehetne ezt beletenni?

-
Sk8erPeter
nagyúr

(#14588) Lacces
"De include-oltam nem egyszer
. Mert ez csak egy egyszerű kis magamnak csinált alkalmazás volt, nem fogok én itt hobbi webframework-öt csinálni
. Ott az xDebug, hibajelzésre... Patterneket nézegettem. Van más dolgom is
.
include('vars.php'); // működik.
include 'vars.php'; // nem működik, semmit sem jelzett."Valamit rettentően elkúrsz, ha ez nem működik, pedig de, működik...

Amúgy nem tudom, milyen hobbiwebframeworkről beszélsz, egy include-tól nem lesz semmi sem framework, főleg, hogy az általad mutatott példában tényleg csak a rövid tesztelés kedvéért tök felesleges különböző fájlokba pakolgatni a kódokat.
"Ott az xDebug, hibajelzésre... Patterneket nézegettem"
Hogy kapcsolódik össze egyáltalán a kettő?
Meg hogy jön az Xdebug bármilyen hobbiwebframeworkhöz?
Na mindegy, betudom a dolgot az aktuális "vércukorszintednek".

-
Peter Kiss
őstag
-
fordfairlane
veterán
-
Kommy
veterán
Lehetséges futás közben változót létrehozni?
-
zone
őstag
Segítséget kérnék. Opencartot használok, most töltöttem fel szerverre, localhoston nem volt semmi gondom. Folyamatosan ez a két hiba jelenik meg a logban és az admin oldal tetején:
PHP Warning: fwrite() expects parameter 1 to be resource, boolean given in /host/htdocs/system/library/cache.php on line 34
PHP Warning: fclose() expects parameter 1 to be resource, boolean given in /host/htdocs/system/library/cache.php on line 36
A cache.php hivatkozott sorai:
34: fwrite($handle, serialize($value));
35:
36: fclose($handle);Plusz az oldal tetején még ez is, de ez nincs a logban:
Warning: fopen(/host/htdocs/cache/cache.store.1384025663) [function.fopen]: failed to open stream: No such file or directory in /host/htdocs/system/library/cache.php on line 3232: $handle = fopen($file, 'w');
Itt legalább látom, hogy az elérési út nem jó, mert system/cache/ helyett a gyökérben keresi a cache mappát valamiért.
-
Lacces
őstag
Alapból gyökérséget írtam... Látszik, hogy idehaza, már nem gondolkodom úgy ahogy kellene...
Biztos, hogy nem minden egyes oldal betöltésre kéne ezt csinálni, ha felhasználók 100-ai látógatnák az oldalt.
.
Bár ahogy most olvastam, a sima XMLparser függvény a leggyorsabb, mások ezt írták.
LOL, inkább alszom egyet.
-
Lacces
őstag
Hali.
Ma csináltam RSS beolvasást, adatbázisba mentést, és oldalon megjeleníteni.
Aztán idehaza elgondolkoztam azon, hogy hogyan lehetne a leggyorsabban mondjuk 20rss xml-t beolvasni és azt menteni adatbázisba és megjeleníteni az oldalon?Erre mi lehet a legjobb koncepció?
Most csináltam, hogy kipróbáltam 10-el. Ilyen egyszerűt, lehet rajta csiszolni. SimpleXML-t használtam. De érezhető volt a lassú betöltés. (Persze ez, minden egyes oldal betöltéskor lefut, amin már most látszik, hogy vesztett ügy. Bár, mondjuk lehetne is rajta optimalizálni, de kételkedem.)
Megfogtam, minden RSS feed-et beleraktam egy nagy multi-tömbbe. És onnan kiolvasva töltöttem fel az adatbázist, vizsgálva, hogy az már fel volt-e töltve vagy sem.Azon gondolkoztam, hogy esetleg érdemes Cron folyamatot indítani a háttérben, és az frissítené folyton az adatbázist, mondjuk 15 percenként?
Vagy van más módszer is erre, szerintettek?Sk8erPeter
De include-oltam nem egyszer
. Mert ez csak egy egyszerű kis magamnak csinált alkalmazás volt, nem fogok én itt hobbi webframework-öt csinálni
. Ott az xDebug, hibajelzésre... Patterneket nézegettem. Van más dolgom is
.
include('vars.php'); // működik.
include 'vars.php'; // nem működik, semmit sem jelzett. -
Sk8erPeter
nagyúr
"Egyszer csak azt vettem észre, hogy én sosem használtam így az include '/path/to/file' a behúzást."
Hogy micsoda? Mármint úgy érted, még sosem include-oltál másik fájlt? Most szívatsz, ugye? Azt hogy csináltad eddig? Mit csináltál eddig?
Most tényleg az volt a gondod, hogy másik fájlban voltak az osztályaid, és az a fájl nem volt behúzva vagy autoloadolva, és még ráadásul a hibajelzéseid is el voltak nyomva, és ha már így alakult, még hibanaplózás sem történt? 
A vércukorszinteddel akkor az egészséged és hatékonyságod érdekében is javaslom, hogy kezdj valamit.

-
Lacces
őstag
Egyszer csak azt vettem észre, hogy én sosem használtam így az include '/path/to/file' a behúzást. (NetBeans ezt kínálta fel, én meg szeretem használni ezt a segítséget, mert gyorsabb gépelni)
Aztán használtam az include()-t, és simán jó lett minden.
Újabban sokszor leesik a vércukor szintem, és nehezebb az ilyen hibákat is észrevenni. Nem nagyon tudok ilyenkor gondolkodni... de nem szeretem feladni sem a probléma megoldását. -
fordfairlane
veterán
mégmegy helyett végigmegy
-
fordfairlane
veterán
Két dolog kell hozzá. Egy olyan komponens, amelyik egy adott könyvtár teljes tartalmán rekurzívan mégmegy, valamint egy ID3v2 olvasó komponens. Adatbázisba letárolni a tageket már nem nagy ördöngősség. Megfelelő kulcsszavakkal sok találatot dob ki a google, kész PHP osztályokat.
Inkább azzal lehet probléma, hogy ekkora mennyiségű fájl feldolgozásához sok idő kell, aminek lehetne futásidejű korlátai, és persze az, hogy nem triviális dolog monitorozni egy ilyen háttérjellegeű PHP folymaatot, hogy épp hol tart.
-
Sk8erPeter
nagyúr
Mi nem?

(#14577) Lacces :
Mi az, hogy "utólag nem"?
Amúgy jól elvagytok.

-
Sk8erPeter
nagyúr
PHP-alapokon, elejétől megírva macerás lehet, úgyhogy inkább kész programot ajánlanék, ami elég komoly és összetett:
Helium Music Manager
http://www.helium-music-manager.comMS SQL- és MySQL-adatbázisba is tud menteni. Persze a saját adattábláit hozza létre és használja, ez nem testreszabható, de rengeteg szempont szerint tudsz szűrni.
-
dmc
aktív tag
Sziasztok!
Nem tudom hogy a következő problémát meg lehet e oldani?
Adva van kb 300Gb nyi zene egy szerveren és ezeknek a zenéknek az ID3v tagjait tudom e szerkeszteni és egy adatbázisba elmenteni?
Ha igen valami kiindulását tudnátok adni?Köszönöm
-
Lacces
őstag
-
Lacces
őstag
Köszi, akkor tovább keresem a problémát.
-
Peter Kiss
őstag
-
Lacces
őstag
Hali,
Lehet valamit elfelejtettem, de mintha nálam nem működik az objektumok betöltése a PHP-nál... Nem tudom, hogy mi a gond
(valamit kihagyok?)Mindegyik fájl egy mappában van!
index.php (NetBeans alap generálás, mielőtt még valaki itt beszólna
)
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<?php
error_reporting(E_ALL);
$model = new Model();
$controller = new Controller($model);
$view = new View($controller, $model);
echo $view->output();
?>
</body>
</html>class Model
{
public $string;
public function __construct(){
$this->string = "MVC + PHP = Awesome!";
}
}
class Controller
{
private $model;
public function __construct($model) {
$this->model = $model;
}
}
class View
{
private $model;
private $controller;
public function __construct($controller,$model) {
$this->controller = $controller;
$this->model = $model;
}
public function output(){
return "<p>" . $this->model->string . "</p>";
}
}Pedig ennek alapból kellene működnie, nem?

Semmi sem jelenik meg a böngészőben, az echo-k is csak az objektum létrehozása előtt jelennek, utólag nem. -
DeltaPower
addikt
alapértelmezésben kiveszi, vagy beírod így, ha csak a newline-t akarod kiszedni (spacet, tabot nem):
trim($str, "\n\r");
ha pedig csak a sor végéről, akkor rtrim-et használsz -
PumpkinSeed
addikt
Nem, de erre nem is gondoltam viszont a newline-t mivel tudnám akkor jelezni, hogy azt vegye ki?Megvan.

-
DeltaPower
addikt
beolvasás után trim-eled?
-
PumpkinSeed
addikt
Hogyan tudom azt kivitelezni, hogy a karaktersorozat bekérésnél az fgets ne kérje be a newline karaktert?
<?php
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$fp = fopen("$DOCUMENT_ROOT/../hungarian.txt","rb");
$szavak = fopen("$DOCUMENT_ROOT/../szavak.txt","ab");
while (! feof ($fp)) {
$szo = fgets ($fp, 999);
$szo = ucfirst($szo);
echo $szo."<br>";
fwrite ($szavak,$szo);
}
fclose ($szo);
fclose ($szavak);
?> -
Zedz
addikt
Uhhh hát ez így elsőre elég advancednek hat, utánaolvasgatok akkor ezeknek, köszi.

-
Peter Kiss
őstag
Hát, ezt elég hosszan lehetne sorolni, miként valósítható meg.
Valószínűleg neked a DAO fogalmával kellene megismerkedned, aztán ilyen objektumokon megvalósítani az adatelérést, persze olyan módon, hogy az alkalmazás egy DAO-t sem lát csak egy interface-t.
interface UserDao() {
function GetUserById($id);
function GetByMailAddress($mailAddress);
function GetAll();
function AddUser(User $user)
/* ... */
}
Aztán ezt implementálni egy osztállyal, aminek van egy függősége a PDO-ra, ha SQL-t szeretnél mögé tenni. Nyilván, ekkor is SQL típus specifikus lesz a DAO-d. Az interface-t nyilván implementálhatod úgyis, hogy az adatok memóriában vannak pl. egy tömbben, így elég könnyen lehet (unit) tesztelni, mert nem fügsz gyakorlatilag semmitől, ismertek, stabilak az adatok.
Ha ez átjön, hogyan tud működni, akkor léphetsz tovább, például az is megoldható, hogy leírod az adott SQL típust (speciális karakterek, sémákat használ-e, speciális műveletek, stb) egy abstract "izén" (abstract class-t kell elképzelni egy jól felépített alap logikával [interface-t ebből is érdemes kreálni], majd pl. ebből lehet származtatni MySqlProvider és hasonló megnevezésű dolgokat.) keresztül, majd ezt felhasználva dinamikus építed meg a lekérdezéseket, de ez nem 2 perc alatt hozható össze.
-
Zedz
addikt
Ha nem gond egy kicsit visszatérnék ehhez a hozzászóláshoz. Írtad, hogy az lenne szép ha az alkalmazásnak gőze sem lenne arról, hogy milyen SQL adatbázis van mögötte. Ez hogy oldható meg? Kell egy külön fájl ahová csak a lekérdezések kerülnek, és vissza adok egy értéket a controllernek?
-
mobal
nagyúr
Én nálam ugyan olyan gyors mind a kettő!
![;]](//cdn.rios.hu/dl/s/v1.gif)
A Notepad++ szerintem az egyik legjobb szerkesztő ennek ellenére! Visszatérve az eredeti témához, szerencsére be lehet benne állítani a fájl kódolást.
mobal,
-
Zedz
addikt
Szerintem a phpDesigner a legjobb mindenre.

-
Sk8erPeter
nagyúr
Na ja, ebben igazad van, már nagy fájlok beolvasásánál is elvérzik a sima Notepad, szemben a Notepad++-szal, ami igen nagy fájlokkal is egész jól megbirkózik. A Notepad gyorsasága alatt inkább az elindulás tempójára gondoltam például kis fájlok esetén, Notepad++ azért már két plugintől is hozzá képest érzékelhetően lassul, bár ezen nem is kell annyira meglepődni, azoknak a cuccait is be kell tölteni. Cserébe egy jól használható szövegszerkesztővel van dolgod, nem pedig egy fostalicskával.

-
biker
nagyúr
nem gyors.
Korábban ide is tettem be tesztet, a kb 5 funkcióból amit tud, keresés és csere, nagy mennyiségű adatnál, kb 60.000 sorban 120.000 előfordulás cseréje soronként olyan 4-500 karakter volt, ebben 3 karakter cseréje
c2d procin
nptepad cserélte 2 percig, kifehéredve az ablak közben, zombiként
notepad++ meg 5mp alatt -
Sk8erPeter
nagyúr
Ettől még a Notepad analfabéta, ostoba szövegszerkesztő. Lényegében egy textarea egy ablakkal, pár rettenet egyszerű menüponttal, és kész. Pont a butaságától gyors, de ettől még nem lesz jó.
De nyilván ezt a többség vágja, nem kell külön mondani, ezért más az alapértelmezett szövegszerkesztője.
Amúgy a unix2dos eszközre most nincs szükség, egyelőre a kódolás fázisában tart, meg tudja változtatni a kódjában a sorvégződést \r\n-re, ha Windows-os sortörést akar, vagy megváltoztathatja a platformfüggő PHP_EOL-ra is, de ha ezt UNIX-alapú rendszereken használja, akkor az ugyanúgy \n-t jelent. De amúgy sem a Notepadhez kell igazítani az igényeket.
-
PumpkinSeed
addikt
Igen ezt már annyira megszoktam, hogy álmomból felkeltve is ezt írnám, de megpróbálok jó útra térni.

Viszont, lehet tényleg egy normális szövegszerkesztőben kellene nézni, Jegyzettömbben nem ment, de NotePad++-ben a várt eredményt kaptam. Nem tudtam, hogy ennyire analfabéta a Windowsos jegyzettömb.
-
Sk8erPeter
nagyúr
Nálad betegség ez a </br>?
Itt is (meg más topicban is már) ugyanezt használtad, akkor is írtam, hogy csak <br /> vagy <br/> vagy <br> van.
Egyébként csak egyszer gondold már végig, hogy itt milyen "megnyitott" taget akarnál lezárni, ami miatt az elejére teszed a perjelet? Semmilyet, mivel ez self-closing tag, ergo egyből a végére kell (HTML5-nél nem kell, de lehet) tenni a perjelet, szóval egyből lezárni az elemet.Az érdemi problémára: azt sem írtad, hogy milyen platformon tesztelsz (először azt sem írtad, hogy nem böngészőbe írt kimenetről van szó, hanem txt-fájlról), de feltételezem, Windows-on, és azt sem írtad, azonbelül milyen szövegszerkesztőben nézed meg az eredményt, feltételezem, olyanban, ami a UNIX-os sorvégződéseket (\n, LF) nem "támogatja" (pl. sima Notepad, míg Notepad++ támogatja), csak a Windows-osat, ami CRLF, vagyis \r\n, vagy PHP_EOL Windows-on (a PHP_EOL Unixon az említett \n-t adja), magyarul a megoldás lehet, hogy \n helyett \r\n-et írsz, vagy például használsz egy normális szövegszerkesztőt, és abban nézed meg...
-
PumpkinSeed
addikt
-
whYz
őstag
Ez se nagyon php kerdes amugy, de ha jol tudom \n-hez <pre> tag kell. Amugy hasznalj <br />-t vagy <div>-et vagy akarmi mast.
-
PumpkinSeed
addikt
Van egy ilyenem:
$kimenet = $datum."\t".$abroncs." gumiabroncs\t".$olaj." olaj\t".$gyertya." gyertya\t".$kormany." kormány\n";
A tabulátor gond nélkül megy de a \n nem teszi új sorba valamiért. Mi lehet a gond?
jsfiddle-n nem találtam PHP támogatást.
-
Zedz
addikt
-
sztanozs
veterán
Ja és kifelejtetted a rossz SQL kérés logikát: rossz jelszóval is beenged, mivel csak a felhasználónevet ellenőrzi. Ja és még ott van az SQL injection is.

-
Zedz
addikt
A fentebb felsorolt lista elemeket akkor mind-mind külön fájlba kellene megírnom, a controllerrel meg csak összerántani?
-
Peter Kiss
őstag
$_POST egy globális változó, amire támaszkodni nem igazán kellene, főleg nem egy alkalmazás mélyebb bugyraiban.
A Controller az uolsó pont, ahol találkozhatsz a $_POST-tal. Utána onnan bárhová átadhatod a szükséges adatot paraméterként, pl.:
$this->_loginService->Login(new LoginUser($_POST['username'], $_POST['password']));
De ezek a dolgok elég sok mindentől függnek.
-
Zedz
addikt
$_POST miért gond? Hogy adhatom át másként a bevitt adatot?
-
fordfairlane
veterán
-
Peter Kiss
őstag
Hogy hogyan lenne szép, azt elég hosszan lehet taglalni, de:
LoginModel-nek összesen 2 dolgot kell tudnia: adni egy felhasználói nevet és egy ejlszót
Semmi köze ne, lehet ezekhez:
- session
- felhasználók tárolása
- a komplett alkalmazásnak nem lehetne igazából fogalma arról, hogy mögötte egy SQL adatbázis van, főleg nem így beégetve
- $_POST és egyéb globális cuccok
- echo egy model-ben? maximum view/template fájlban -
Zedz
addikt
Miért? :S A fenti kód hogyan lenne szép?
-
fordfairlane
veterán
-
Peter Kiss
őstag
-
Zedz
addikt
Miért? Mi a baj vele? :S Sajnos a vizsgára készülő oldalnak CI-ben kell íródnia, a drágalátos Smartyval karöltve.

-
Peter Kiss
őstag
-
Zedz
addikt
Sziasztok, van ez a kódom:
class Login extends CI_Model{
public function login(){
if(array_key_exists("login",$_POST)){
$username = $_POST['username'];
$password = $_POST['password'];
$query = $this->db->query("SELECT * FROM users WHERE nev='$username'");
if($query->num_rows()>0){
$this->session->set_userdata('logged_in');
}
else{
echo "rossz e-mail cím vagy jelszó";
}
}
}
}A gond az, hogy amit kiechozok azt 2x írja ki. Miért? Codeigniterben írok most egy tesztoldalt, még csak ismerkedem a CI-vel, szóval lehet valahol más lesz a gond.
A választ előre is köszönöm!
-
Speeedfire
félisten
Valóban.

-
mobal
nagyúr
Nem tudok már mire gondolni, mert érzésem szerint "több" (az empty) és ahogy te írtad: "az empty() az isset által végzett feladatot is lefedi". Ha nem jobb de szerintem biztos, hogy nem rosszabb megoldás.
Csak találgattam.
mobal,
-
Sk8erPeter
nagyúr
De nem is meglepő, hogy nem generál warningot, mivel az empty() az isset által végzett feladatot is lefedi, ahogy meg is beszéltük, tehát a változó beállítottságát/létezését is vizsgálja, nemcsak annak "ürességét", meg az isset()-hez hasonlóan erre is vonatkozik, hogy "this is a language construct and not a function".
De ezt Te is vágod, hiszen pont erre hivatkoztál itt, hogy redundáns lenne mindkettőt használni egy adott változóra.
No de igazából az eredeti felvetést kellene megfejteni inkább, hogy mi az, hogy "nem ajánlott az empty".

-
mobal
nagyúr
"A variable is considered empty if it does not exist or if its value equals FALSE. empty() does not generate a warning if the variable does not exist."
A dokumentáció alapján erre gondoltam.
-
Sk8erPeter
nagyúr
-
mobal
nagyúr
Köszi. Fogalmam sincs, ezért kérdeztem.

Speeedfire: nem azért olvastad, hogy nem jó mert esetleg nincs semmi hibaüzenet?
-
Sk8erPeter
nagyúr

(#14535) Speeedfire :
Ahogyan arra előttem tanult kollégánk elég tömören rávilágított, ez a kijelentés ebben a formában értelmetlen. Szerintem ha erről olvastál, akkor az valami olyasmiről szólhatott, hogy nem biztos, hogy jó, ha mindenáron lustán rászokunk az empty() túlzott használatára validálásnál vagy egyéb esetekben, jobb néha a kódban egyértelműen az elvárt adattípusra vizsgálódni (pl. NULL-ról vagy empty stringről van-e szó, FALSE-ról, vagy másról), igaz, az empty() - mint látható az ennek megfelelő esetekből - elég sok lehetőséget lefed. Persze csak tipp, hogy valami ilyesmire gondolhattál. De tényleg "attól függ".(#14537) mobal :
látom szereted lerövidíteni kifejtés helyett.
Hát erre most azt tudom mondani, hogy olvasd el itt Athlon64+ második bekezdését, sokkal rövidebben és lényegre törőbben sikerült válaszolnia, mint ahogy én előbb próbálkoztam neked egy jó hosszú hsz.-szel, amire Te visszaböfögtél egy mondatot, azt' részedről elintézve.
Remélem, értékeled, hogy most a moderátori kedvedért egy hsz.-be nyomorítottam több hsz.-t...
Akármilyen gusztustalan is, több hsz. írása helyett.

-
mobal
nagyúr
EGY tranzakcióz belül KÉT műveletet KÉPES a mysql végrehajtani ÚGY, hogy az egyik paramétere az ELSŐ tranzakció során születik meg?
-
Peter Kiss
őstag
Minden attól függ, mit szeretnél elérni milyen lehetséges adatokkal. Ha valaki azt mondja bármelyikre is, hogy ez az ultimate good solution, akkor az idióta.
-
Speeedfire
félisten
Valahol mintha azt olvastam volna, hogy nem ajánlott az empty, inkább az isset. Nem tudok rá érvelni, mert nekem csak ennyi rémlik.

-
Sk8erPeter
nagyúr
Én csak azt nem értem még mindig, hogy a parse-olásnak, meg a tageknek mi köze van az adatbázishoz, meg a konkrét queryhez, amivel feltöltöd. Először parse-olod az adatokat PHP-vel gondolom, kinyered a kapott eredményből a neked szükséges szavakat, aztán pedig azokat a szavakat el akarod tárolni adatbázisban, mármint az összeset, nem? Most az a kérdés igazából, hogy hogyan állíts össze egy query-t PHP-vel? VAGY pedig az a kérdés, hogy mondjuk hogyan csináld meg azt, hogy az egyik táblában tárolod a keresőszavakat, aztán van egy kapcsolótáblád, amibe meg be akarod nyomni az adott szóhoz tartozó id-t. Na de ehhez megint nem szabadna, hogy köze legyen bármilyen tagnek is, hiszen azt fel kellett, hogy dolgozd az alkalmazásodban, de nyilván nem egy query-ben kellene ezt megtenned. Tárolt eljárással a kapcsolótáblás feltöltés elintézése is amúgy megoldható, ja, ha ez a kérdés, de még megoldható hatmillióféleképpen.
Csak kicsit kuszálódtak itt a dolgok.
DE akár azt is megcsinálhatod, hogy amennyiben auto_increment meződ van a keresőszavakat tároló tábládban, akkor megjegyzed, honnan kezdted feltölteni, és az annál nagyobbakhoz tartozóakat meg a feltöltés után nyomod a kapcsolótáblába... De ennél értelmesebb megoldás is nyilván lehet, ha kicsit jobban megértjük, mit akarsz.
Na jó, én értem, mire gondolok, elég kuszán fogalmaztam, csak most nincs energiám átfogalmazni érthetőbben, de hátha valami így is átjön.
Hozzáteszem, Te sem fektettél túl sok energiát a kérdésed szabatos megfogalmazásába, és még a végére engem is belekavartál, aztán elkedvetlenedtem. 
-
Peter Kiss
őstag
-
mobal
nagyúr
Van egy forrás amit parsolok időnként. Abba vannak keresőszavak és azt akarom eltárolni. Adatbázisba pedig egy az n kapcsolat van az elemek és a keresőszaka között. Na most az új keresőszavak tárolását akarom egy tranzakcióba sűríteni (tehát kereső szó + kapcsolat), de van egy olyan érzésem nem lehet.
Esetleg tárolt eljárással?
![;]](//cdn.rios.hu/dl/s/v1.gif)
-
Sk8erPeter
nagyúr
Ezt meg tudnád fogalmazni érthetőbben, hogy mi a pontos cél, és egyáltalán mire lesz ez jó?

(#14530) Kurik :
Ja, hát úgy értettem, hogy a kiszolgálógépen, ahol a batch-progit végül is lefuttatod az exec() fv.-nyel, ott megjelenik-e a µTorrent felhasználói felülete, vagy sem a fv.híváskor - ezek szerint nem, csak háttérben futkorászik, de nem gond, mert nincs rá szükséged.
-
Kurik
tag
-
mobal
nagyúr
Azt meg lehet csinálni egy sql query-vel, hogy először elmentek egy tag-et, majd egy másik táblázatba beállítom annak az id-ját?
mobal,
-
Sk8erPeter
nagyúr
"Olyan, mint az isset, csak még pluszban leellenőzi, hogy false-e a tartalom."
Mondjuk ezzel kapcsolatban lehet, hogy vki számára félrevezető a php.net-en lévő infó, hogy "A variable is considered empty if it does not exist or if its value equals FALSE", mert inkább a visszatérési értéknél írtak tűnik egyértelműbbnek a leírás: "Returns FALSE if var exists and has a non-empty, non-zero value.""The following things are considered to be empty:
"" (an empty string)
0 (0 as an integer)
0.0 (0 as a float)
"0" (0 as a string)
NULL
FALSE
array() (an empty array)
$var; (a variable declared, but without a value)"Az "if its value equals FALSE" olyan, mintha ilyen ellenőrzés történne: ($var === FALSE), pedig a listából látható, hogy nem erről van szó, és a visszatérési értéknél írtak picit mintha inkonzisztensek vagy ellentmondóak lennének az első idézett állítással (mert a FALSE is empty, de még más is).
-
mobal
nagyúr
Ebben az esetben jó lesz, mert ugye egy "ha" feltételben van. De ha jobban tetszik
![;]](//cdn.rios.hu/dl/s/v1.gif)
if (isset($_POST['delete_id']) && $_POST['delete_id'] != null)
Szerk.: van itt valaki aki komolyabban ért a Mustace template kezelő motorhoz?
mobal,
-
fordfairlane
veterán
Ha a változó nem létezik, akkor sem generál warningot. Nem függvény, hanem nyelvi szerkezet. Olyan, mint az isset, csak még pluszban leellenőzi, hogy false-e a tartalom.
-
Sk8erPeter
nagyúr
-
Speeedfire
félisten
-
mobal
nagyúr
-
aero.
veterán
1. Visszakerült
2. Majd ha működik kap rendes formát, most csak hánytam
3. Jogos észrevétel ... éés valószínűleg a hiba oka is volt, mivel most már jó. Ja meg igen, a DELETE után a csillag nem kell, egy kísérletezésből ott maradt.Köszönöm szépen a gyors segítséget

-
fordfairlane
veterán
A hibajelzés valószínűleg ki van kapcsolva, így egyáltalán nem eseménytelen, csak épp nem látod, hogy mi történik.
1. delete.php-nak is szüksége van mysql connectionra, akárcsak a listázónak.
2. A form legyen td-ben.
3. input mező value-jának csak egyik oldalán van idézőjel, legyen mindkettőn.value='.$row['ID'].'" />'; helyett value="'.$row['ID'].'" />';
-
aero.
veterán
Már próbáltam, hátha az a hiba, de így sem. Pontosabban ugyanúgy eseménytelenül lefut és visszaadja az oldalt. Éppen az, hogy én annyira nem értek hozzá, szóval így nem fogom tudni megmondani mi a hiba.

-
Peter Kiss
őstag
-
aero.
veterán
Admin felületről szeretnék egy olyat, hogy listázza ki a postokat (ez már adott volt), mellé pedig egy törlési lehetőséget, ami értelemszerűen sql-ből kiszedi. Találtam egy topikot a neten, ott vázoltak is egy komplett scriptet, de valami nem okés, üresen lefut eredmény nélkül.
Vázolom, már átalakítva:
teszt.php
<?php
include '../connect.php';
echo "<table class='lista' border='0'>
<tr>
<th>ID</th>
</tr>";
$eredmeny = mysql_query('SELECT * FROM posts');
while ($row = mysql_fetch_array($eredmeny))
{
echo "<tr>";
echo "<td>" . $row['ID'] . "</td>";
echo '<form action="delete.php" method="post">';
echo '<input type="hidden" name="delete_id" value='.$row['ID'].'" />';
echo '<input type="submit" value="Törlés" />';
echo '</form>';
echo "</tr>";
}
echo "</table>";
?>delete.php
<?php
if(isset($_POST['delete_id']) && !empty($_POST['delete_id'])) {
$delete_id = mysql_real_escape_string($_POST['delete_id']);
mysql_query("DELETE * FROM posts WHERE `ID`=".$delete_id);
}
header('Location: teszt.php');Hiba nélkül lefut, de semmit nem csinál. Itt a thread, ahonnan néztem. [link]
-
Kurik
tag
Nagyon szépen köszönöm mindenkinek a segítséget életre kelt a technika.

Ez a másolás hiányzott...
Ha lenne valaki ilyen elvetemült mint én, ne lepődjön meg csak háttérbe fut. Nekem ez nem jelentett problémát mivel ott a WebUI.

-
Sk8erPeter
nagyúr
Na ez nem egy rossz gondolat. Alapból valóban az %appdata%\uTorrent könyvtárban keresgéli a settings.dat, resume.dat fájlt, ami felhasználóhoz kötődik, abban az esetben, ha normál telepítés van fent. A 3.xx akárhányadik verziótól kezdve lehet ELEVE portable-módban is telepíteni.
A 2.x változatoknál az jelenti a portable módot, ha az utorrent.exe könyvtárral azonos könyvtárban található a settings.dat, resume.dat fájl. Ekkor az %appdata%\uTorrent könyvtár tartalmával nem törődik, nem keresi, ezzel tehát áthidalható lenne a probléma (ha eleve portable-módban próbálná meg használni, az %appdata%\uTorrent könyvtárban lévő adatok gondos átmásolásával az utorrent.exe mellé, persze backup nem árt).
Legalábbis feltételezem, nem szeretné, ha ugyanannak a felhasználónak a nevében futna a php-folyamat is. -
Peter Kiss
őstag
-
Tele von Zsinór
őstag
-
Kurik
tag
A feladatkezelőbe berakja, de nem normálisan fut, mint az legelső kommentemben írtam. "feladatkezelőbe látszik, de maga a program nem indul el. Ez abból is látszik, hogy ilyenkor 5MB ramot fogyaszt, viszont ha kézzel indítom el 25MB-ot."
Viszont ha bat-et kézzel elindítom (kettőt rákattintok
) elindul rendesen. -
Sk8erPeter
nagyúr
http://stackoverflow.com/questions/15385965/php-pdo-with-foreach-and-fetch/15386195#15386195
Szerencsére elmagyarázták helyettem is
-
Sk8erPeter
nagyúr
Egyszerűbben megközelítve a kérdést: amennyiben írsz egy nagyon egyszerű, egysoros batch-fájlt, aminek az egyetlen dolga csupán az utorrent.exe elindítása, majd pedig ezt a batch-fájlt (nem közvetlenül az utorrent.exe fájlt!) próbálod futtatni exec() függvénnyel, akkor mi a helyzet?
-
fordfairlane
veterán
Mondjuk én is $pdo-val példányosítom a pdo-t

Az mindegy, az az általános db interfész, amin keresztül érkezik a többi. Kvázi factory osztály, azon kívül, hogy ennek a konstruktorával van megoldva a db kapcsolat kiépítése, és a főbb konfigurációs paraméterek átadása.
A statement már specifikusabb dolog, PHP-s reprezentációja egy adott lekérdezésnek, annak paramétereinek és annak eredményének. A result meg sokszor csak egy tömb, már nálam az is objektum szokott lenni, hogy legyen típusa annak is.
-
SirRasor
addikt
Közben összevontam rafináltan 1-be, de azért thx; így már kezd világosodni a dolog

eddig $query elnevezést használtam, csak neten egyre több helyen láttam kiírva a $result-ot erre a helyre, de akkor átpártolok az $stmt-re. Mondjuk én is $pdo-val példányosítom a pdo-t

-
fordfairlane
veterán
A PDO statement nem csupán egy lekérdezés eredménye, hanem komplex objektum, aminek része az eredményhalmaz is. Én a helyedben kiszedném egy tömbbe.
$tomb = $result->fetchAll();
Tömbön pedig nem gond többször iterálni.
És átnevezném a $result - ot $statement -re vagy $stmt -re, hogy beszédesebb neve legyen. Vagyis:
$stmt = $pdo->prepare($querystr);
$stmt->execute($queryparams);
$result = $stmt->fetchAll();
foreach(...)
reset
foreach(...); -
SirRasor
addikt
Hoi! Csak egy gyors kérdés:
PDO lekérdezés $result->execute(array..
végigmegyek az elemeken:foreach($result as $data) { .. } a $data szépen visszaadja az értékeket.
Ha viszont utána (és nem benne!) csinálok még egy foreachet, akkor a $data már teljesen üres lesz, mintha a $result elbandukolt volna a végére és nem állna vissza.
Ötletek?
-
Kurik
tag
-
mobal
nagyúr
-
Kurik
tag
Igen, már ajánlottad az ajaxplorer-t másik bejegyzésemre is. Ki is próbáltam, de feleslegesnek éreztem.

A video megtekintéssel semmi gondom, megoldottam magamtól.A célom: Elindítom a kiválasztott video-t automatikusan leállítja az uTorrentet, majd megtekintem a video-t majd azt szeretném, hogy ha végzett a video induljon el vissza az uTorrent.
A pillanatnyi kódom működik is le is állítja meg is nézem a video-t, de nem indul el vissza az uTorrent, vagy is elindul de az első hsz-ben leírtak szerint beteszi a feladatkezelőbe és pont a vége.Bármelyik programra kicserélem jól működik, csak az uTorrentet nem indítja.

Az ütemezett feladat: Olyat olvastam, hogy tegyem ütemezett feladatba az "elindítást" mondjuk percenként, ami áll egy ellenőrző batch-ből, és ha megtalálja az indít.txt akkor lefuttatja az uTorrentet, majd törli az indít.txt. A php-vel meg hozzam létre az indít.txt amikor szeretném futtatni. De nem hiszem, hogy ez lenne a legegyszerűbb megoldás...

A webhozzáférés jelszóval el van látva emiatt nem aggódok.
Tudom mit szeretnék, maximum nem tudom kifejezni magamat.
A jogosultságokról tudnál írni? Vagy az nem lehet probléma?
Köszönöm a hozzászólásodat!
-
Tele von Zsinór
őstag
-
#68216320
törölt tag
Köszönöm a megoldásokat.
Egy észrevétel: milyen már, hogy a gugli a php.net-es találatokat nem hozza be, mert kártékony oldalnak jelöli?
Félnek a feltörekvő konkurenciától? 
-
Sk8erPeter
nagyúr
AjaXplorerrel, pontosabban új nevén Pydio-val tudnád távolról is nézni a megosztott tartalmakat bejelentkezést követően, amennyiben webszerver is van a gépeden, és azt működésre bírod, hogy távolról meg tudj tekinteni rajta egy weblapot:
http://pyd.ioMár ha ez megfelelő.
Ez alapvetően egy nagyon ügyes kis fájlmegosztó, amibe rengeteg plugin van építve, akár dokumentumok szerkesztésére, videók/képek megtekintésére, akár tömörített állományok tartalmának megnézésére, meg egyebekre. Biztosít többfelhasználós működést, egymással megosztogatást is, a regisztráció/bejelentkezés pedig eleve adott.Az még nekem nem teljesen tiszta, hogy amennyiben igazából a videó-megtekintések idejére pont, hogy leállítani szeretnéd az utorrent.exe-t, akkor miért az volt az eredeti cél, hogy elindítsd.
Az exec()-hez és hasonlókhoz pedig jogosultságokat kell biztosítani (ami erősen megfontolandó!). Az ütemezett feladatos megoldást hogy érted? Kicsit most számomra keverednek az eddigi ötletek a végcéllal, picit ellentmondónak tűnnek a szempontok.
Új hozzászólás Aktív témák
-
14600 - 14501
21809 - 20001 20000 - 18001 18000 - 16001 16000 - 15901 15900 - 15801 15800 - 15701 15700 - 15601 15600 - 15501 15500 - 15401 15400 - 15301 15300 - 15201 15200 - 15101 15100 - 15001 15000 - 14901 14900 - 14801 14800 - 14701 14700 - 14601 14600 - 14501 14500 - 14401 14400 - 14301 14300 - 14201 14200 - 14101 14100 - 14001 14000 - 13901 13900 - 13801 13800 - 13701 13700 - 13601 13600 - 13501 13500 - 13401 13400 - 13301 13300 - 13201 13200 - 13101 13100 - 13001 13000 - 12901 12900 - 12801 12800 - 12701 12700 - 12601 12600 - 12501 12500 - 12401 12400 - 12301 12300 - 12201 12200 - 12101 12100 - 12001 12000 - 10001 10000 - 8001 8000 - 6001 6000 - 4001 4000 - 2001 2000 - 1
-
Fórumok
PROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Tabletek, E-bookok Nyomtatók, szkennerek PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Fórumok
- Szoftverfejlesztés
- PHP programozás
- (kiemelt téma)
Hirdetés
- Star Citizen
- Okos otthon - gyári appok, ökoszisztémák
- Formula-1
- Temu
- OLED monitor topic
- Poco X8 Pro Max - nem kell ide sem bank, sem akkubank
- Filmvilág
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- Okos otthon - Home Assistant, openHAB és más nyílt rendszerek
- Házimozi belépő szinten
- További aktív témák...
- Új Asus Zenbook 14 OLED 2.8K 90Hz HDR i7-13700H 14mag 16GB RAM 1TB SSD Intel Iris XE Win11 Garancia
- HP Elitebook 850 G8 15,6" i5 1135 G7, 8-16GB RAM, SSD, jó akku, számla, 6 hó gar
- Lenovo Thinkpad 65W Type C töltő
- Lenovo ThinkPad T480s,FHD,14",i5-7300U,8GB DDR4,256GB SSD,WIN11,TOUCH,jó akku
- HIBÁTLAN iPhone 11 64GB Red -1 ÉV GARANCIA - Kártyafüggetlen, MS4388
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



Meg hogy jön az Xdebug bármilyen hobbiwebframeworkhöz?



(valamit kihagyok?)
![;]](http://cdn.rios.hu/dl/s/v1.gif)




