- Motorola Edge 50 Neo - az egyensúly gyengesége
- iPhone topik
- One mobilszolgáltatások
- Ilyen lesz a Fairphone 6
- Apple iPhone 16 Pro - rutinvizsga
- Samsung Galaxy S23 Ultra - non plus ultra
- Samsung Galaxy A54 - türelemjáték
- Milyen okostelefont vegyek?
- Középkategóriást mutatott be újra az Oppo
- VoLTE/VoWiFi
Új hozzászólás Aktív témák
-
Speeedfire
félisten
válasz
Sk8erPeter #6845 üzenetére
Valóban így van, de alap esetben kevesen babrálják a virtualhost-ot.
-
Speeedfire
félisten
válasz
Tele von Zsinór #6823 üzenetére
Ilyet nem látok win7 alatt.
Mindegy, akkor ez a kényelmi funkció nem fog menni. -
Speeedfire
félisten
válasz
Tele von Zsinór #6821 üzenetére
A defaultra gondolok. Szóval ne a dokumetumok/netbeans legyen hanem a munka/web az alapértelmezett mappa. Kis kényelmi funkció csak, de szerintem jó dolog.
-
Speeedfire
félisten
Netbeans 7.0 alatt hol lehet a projektek könyvtárát beállítani? Nem akarom, hogy a dokumentumok legyen az.
-
Speeedfire
félisten
válasz
Sk8erPeter #6564 üzenetére
Mindig tanítasz engem mester.
-
Speeedfire
félisten
válasz
Sk8erPeter #6562 üzenetére
Mondjuk én nem szoktam.
Eddig még nem volt olyan amihez használnom kellett volna ezt a megoldás.
-
Speeedfire
félisten
válasz
Sk8erPeter #6554 üzenetére
Vazzz!
És tényleg, a config fájlba benne van a függvény. Ezt nem is néztem, sorry biker. -
Speeedfire
félisten
Hát nem tudom már, hogy honnan vettem, de 2 oldalon is ezt használom és működik.
[link] [link]
Az első linken látványosabb, mert kevesebb címke van.Milyen nevet nem ad vissza?
Nem illesztettem be ezt a funkciót.
Szerintem az elég jó futási idő.
Sk8erPeter: Tényleg nincs ilyen függvényem, de akkor miért működik a keveredés? -
Speeedfire
félisten
válasz
Sk8erPeter #6543 üzenetére
Ahogy biker is írja vagy egy cronnal lenne futtatva a dolog és annak a kimenete lenne egy táblába rakva és a fő oldalon az lenne lehívva. Vagy minden egyes módosítás, új tartalom feltöltéskor lenne generálva a tábla.
Nem azzal van a gond, hogy nem tudom átírni, hanem hogy localhost alatt nem fordítok rá akkor figyelmet. Nincs annyi projekt, hogy külön ezeket kezeli kelljen.
Értem, igazad van ezzel kapcsolatban. Erre még nem gondoltam, mindig csak az volt a fő szempont, hogy én tudjam mit hol rontok el.
-
Speeedfire
félisten
válasz
Sk8erPeter #6506 üzenetére
Ezt a bejegyzést meg észre sem vettem.
Miért nem használod fel a $_GET['phpoldal'] változót? Úgy értem, akkor minek adod át ennek a query stringnek a címet?
Így láttam célszerűnek anno, minden eshetőségre fel akartam készülni. Lehet, hogy pont nem a legjobb megoldás rá. Majd egyszer lehet nekiesek megint, jobban átgondolva az egészet.
http://localhost/!!!szapar.hu/
Ehelyett meg létrehozhatnál egy bejegyzést a hosts fájlban, meg apache-beállításokban egy VirtualHost-ot, és lehetne a címe http://szapar.local Így azé' szebb, meg nem kell annyit pötyögni a cím beírásához.
Tudom, csak nincs kedvem mindegyiket beírni. Nem mintha sokáig tartana, csak localhoston annyira nem zavar a dolog. Ha meg felkerül a serverre akkor meg már édes mindegy.$valogatas = "select * from szapar_alias where eng = '".$uri."' ";
Itt azért az $uri változót nem ártana escape-elni, az SQL Injection elkerülése érdekében!
$i= 0;
foreach ($valogat as $ertek) {
if ($i != 0) {
parse_str($ertek);
}
$i++;
}
Ezt nem is értem, minek csinálod, ha utána egyáltalán sehol nem használod fel az $ertek változót?
Vagy felhasználod, csak valami include-olt fájlban? Vagy csak benne maradt?
Erre eddig nem is gondoltam, tényleg egy biztonsági rés. Ki is javítottam már.
Már hogyne használnám fel az $ertekeket. Azok az oldalnak a "$get paraméterei", a script végén hívom meg a php fájlokat amikben felhasználom.if (!mysql_query($valogatas,$con)) {
die('Hiba: ' . mysql_error());
}
Itt a die() helyett érdemesebb lenne inkább valami felhasználóbarátabb hibaüzenetet, hogy nem elérhető az adatbázis, látogasson vissza később. Ráadásul a felhasználónak semmi köze a konkrét hibaüzenethez. Nem célszerű kiírni! Főleg, hogy nem is túl szép.
Az ilyen jellegű hibákat amúgy nagyon faszán le lehet kezelni kivételkezeléssel, ha valami kritikus jellegű hibád van, azonnal dobsz egy kivételt, hogy ne is futkorásszon tovább a kód, nem is kell bonyolult és ronda if-else blokkokat csinálni, egyszerűen valahol elkapod a kivételt, megfelelő módon kezeled, és kész.
Hogy érted azt, hogy nem célszerű kiírni? Beszélgettünk már a kivétel kezelésről, de amikor a kód készült azt sem tudtam mi az a try() meg catch() blokk.if (!empty($valogat['url']) and isset($valogat['url']))
Ennek a feltételvizsgálatnak így nem sok értelme van, itt elég lenne a !empty() részt vizsgálni, nyilván ha nem üres a változó (nem is NULL, nem is üres string, stb.), akkor be van állítva, tehát a második feltétel már felesleges. Sőt, itt előbb célszerű lenne inkább megvizsgálni, hogy van-e kapott eredményhalmaz, vagy sem, ha már úgyis lekérdezed a kapott sorok számát a mysql_num_rows() függvénnyel.
Valami oka volt, hogy így írtam. De már nem tudom, hogy mi volt az.Na, a többi részéhez most nem volt türelmem.
Kössz!"Amelyik táblában az url-ek vannak cachelve van."
Hogyan bírod rá így külön az adatbázist, hogy cache-elje? Tudtommal default cache-eli, indexeléssel lehet esetleg segíteni a lekérdezés gyorsaságát.
Az indexelésre gondoltam, csak a szakzsargon nem mindig jut eszembe. -
Speeedfire
félisten
Csak egy példa, hogy én mit használok. Igaz szerintem erőforrás tekintetben nem a legjobb. Kellene még egy másik tábla, ahol el lenne tárolva ez mind, így lenne egy úgymond cachelt tábla.
<?php
include_once 'config.php';
echo '
<div class="cimkefelho">
<br />
<h2>Cimkefelhő</h2>
<p>
';
$cimke = mysql_query("select tags from linkek_tartalom") ;
$osszes=0;
while ($cimke2 = mysql_fetch_array($cimke) ) {
$tags = str_replace(" ","",explode( ',', $cimke2['tags']));
foreach ($tags as $cimkek) {
$Cimke[] = $cimkek;
$osszes++;
}
}
$Cimke = array_count_values($Cimke);
shuffle_assoc($Cimke);
foreach ($Cimke as $Tags => $mennyi) {
$ertek = round($mennyi/$osszes,1)+1;
echo '<a title="'.$Tags.'" style="font-size:'.$ertek.'em" href="cimke='.angol2($Tags).'" >'.$Tags.'</a> ' ;
}
unset($Cimke);
echo '
</p>
</div>
';
?> -
Speeedfire
félisten
Hülye kérdés, de hogy lehet egy programozói állásinterjúra felkészülni? Lesznek tesztek is.
-
Speeedfire
félisten
válasz
RedSign #6495 üzenetére
Link nincs mivel, saját magam oldottam meg. Nem a legszebb megoldás, de működik.
.htaccess fájl tartalma:
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?phpoldal=$1 [QSA,L]
RewriteRule ^rss.xml$ rss.php [L]
</IfModule>A php fájl tartalma:
<?php
require_once 'config.php';
require_once 'db.php';
$subdir = substr(realpath(dirname(__FILE__)), strlen(realpath($_SERVER['DOCUMENT_ROOT'])));
$tmp_array = explode('?', trim($_SERVER['REQUEST_URI']));
$uri = str_replace($subdir, '', $tmp_array[0]);
$uri = ltrim($uri, '/');
if ($basehref == 'http://localhost/!!!szapar.hu/') {
$uri = str_replace("!!!szapar.hu/", "", $uri);
}
$valogatas = "select * from szapar_alias where eng = '".$uri."' ";
if (!mysql_query($valogatas,$con)) {
die('Hiba: ' . mysql_error());
}
$valogat = mysql_fetch_assoc(mysql_query($valogatas));
$valogatsor = mysql_num_rows(mysql_query($valogatas));
if (!empty($valogat['url']) and isset($valogat['url'])) {
$valogat = explode('&',$valogat['url']);
$i= 0;
foreach ($valogat as $ertek) {
if ($i != 0) {
parse_str($ertek);
}
$i++;
}
include $valogat[0];
}
elseif (($valogatsor == 0) and (empty($uri))) {
include 'tartalom.php';
}
else {
include './inc/errors/404.php';
}
require_once './inc/lezar.php';
?>sql része:
CREATE TABLE IF NOT EXISTS `szapar_alias` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` varchar(200) CHARACTER SET latin1 NOT NULL,
`eng` varchar(150) CHARACTER SET latin1 NOT NULL,
`tid` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `url` (`url`),
KEY `tid` (`tid`),
KEY `eng` (`eng`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=197 ;Ahova a tartalmakat beakarom hívni ott hívom meg a valogat.php-t ami meghívja az adott fájlokat és tartalmakat.
A neveken ugye tudsz változtatni.
Elég béta állagú a dolog, lenne még mit igazítani rajta, de egyelőre kifogytam az ötletekből...
-
Speeedfire
félisten
válasz
Tele von Zsinór #6490 üzenetére
Van benne valami.
Sk8erPeter: Érdekes téma!
Én anno csak a .htaccess-be írtam be mindent, jópár sor lett a végére...
Utána néztem meg a nagyobb cms-eket, ki hogy használja és megpróbáltam lemásolni. Azóta azt használom.
A .htaccess-ben csak 1 sor van, adott egy php fájl ami a kéréseket dobálja a megfelelő helyre. A keresőbarát url-ek meg az adatbázisban vannak. Amelyik táblában az url-ek vannak cachelve van. Elvileg nagy sebesség különbség szerintem nincs.
pumatom: A php kód végére rakj egy header() parancsot. A paramétere meg legyen maga a kép. -
Speeedfire
félisten
válasz
Sk8erPeter #6488 üzenetére
Itt olvashatsz róla az 5. hsz-től.
Az írják, hogy lassú és nagyon nyakatekert...
-
Speeedfire
félisten
válasz
Brown ügynök #6486 üzenetére
Hopp, te elég up-to-date vagy. Ennyire még nem ástam bele magamat, bár egy másik fórumon meg le akarnak beszélni....
-
Speeedfire
félisten
Találtam egy magyar symfony2-es blogot. [link]
-
Speeedfire
félisten
válasz
Speeedfire #6470 üzenetére
Látom mindenki maga fejleszti ezeket.
Közben vagy opencart vagy prestashop lesz az alapja az egésznek.
-
Speeedfire
félisten
Üdv!
Ki melyik webshop motort ajánlaná?
-
Speeedfire
félisten
válasz
Tele von Zsinór #6438 üzenetére
Igaz, nem volt pontos a megfogalmazás.
-
Speeedfire
félisten
Mit értesz az alatt, hogy leszedni?
Htaccess nélkül nem fog menni ha arra gondolok amire valószínűleg te is.
a .htaccess fájl tartalma //engedélyezni kell az apachban, vagy abban amiben használod
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymLinks
Options -MultiViews
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z-]+)$ ?oldal=$1 [QSA,L]
</IfModule>A php fájlban meg ahol meg akarod jeleníteni az oldalt oda ez kell:
if (!isset($_GET['oldal'])) {
include ("kategoria.php");
} else {
$id = (isset($_GET['oldal']) && !empty($_GET['oldal'])) ? ltrim($_GET['oldal'], './') : 'error';
if (file_exists("$id.php")) {
include ("$id.php");
} else {
header('Location: ../errors/404.html');
}
} -
Speeedfire
félisten
Ismét az uml-lel kapcsolatban kérdeznék tőletek.
A netbeansben akartam egy feladatot megoldani, szépen meg is csináltam ellenben 2 apró dologgal van gondom. A könyv azt írja, hogy az egymáshoz kapcsolódó osztályokat aggregálni kellene, de ilyen opció nincs netbeansben. Illetve be kellene állítani a multiplitást is. Ez összejött 2 osztállyal a 3.nál már nem sikerült nem engedi beállítani.
Az osztályoknál csak ezek az opciók vannak:
generalization, implementacion, association, containment, dependency és link comment. Én itt az association-t próbáltam meg, nem tudom az-e a megfelelő. -
Speeedfire
félisten
Onnan most elmentem egy másik helyre.
Ott volt ez. -> [link]Ez itt a fontos link. -> [link]
Lap alján csak le kell tölteni az uml-est és kicsomagolni a netbeans könyvtárba utána már ott is van a projektek között. Még samle is van. :
Köszi a linket, így nem kell 50 programot legalább megnyitni 1 alatt el lehet végezni mindent.
-
Speeedfire
félisten
válasz
Speeedfire #6430 üzenetére
Az argouml-t ajánlották ez elvileg már kezeli a kódgenerálást is. Meglesem.
Frigo: Észre sem vettem, hogy írtál.
Az mégjobb, mert netbeans-t használok én is.
Kell ezt valahol aktiválni vagy valami csinálni vele? -
Speeedfire
félisten
Létezik php alá uml segítő program? Jelenleg az uml résznél járok, elvileg az officeban is van (visio), csak épp nem látom sehol sem. Pedig felraktam....
-
Speeedfire
félisten
válasz
Tele von Zsinór #6425 üzenetére
Értem, így már akkor kerek a dolog.
Épp azt írom, hogy nem akarom kétszer megírni. A szülőben elakarom hagyni és csak a gyerekben akarom meghagyni. Így elvileg ugyan úgy működni, de mégsem dobna notice-t.
-
Speeedfire
félisten
válasz
Tele von Zsinór #6422 üzenetére
Akkor megint a könyvben lesz valami bibi:
...Mivel a megvalósításuk részleteit egyáltalán nem határozzuk meg, ezeket a függvényeket (az abstract kulcsszó segítségével) absztrakt metódusként deklaráljuk. Ez tudatja a PHP-vel, hogy az interfészt megvalósító osztályok felelősek e függvények implementálásáért. Ha elmulasztjuk megadni az intrefész összes absztrakt metódusának konkrét megvalósítását, akkor a PHP futásidejű hibát generál. Mindez azt jelenti, hogy nem választjuk ki, hogy mely absztrakt metódusokat kívánjuk kidolgozni...Kivettem és tényleg jó.
---
Akkor ezzel mit lehet kezdeni ebben az esetben, hogy lehessen használni a Teglalap-ként és Negyzet-ként is?Lényegében kiszámolja, csak ugye dobja is a hibát előtte. Ilyenkor jobb ha elhagyom a szülőből a __construct() metódust? A gyereknél úgy is definiálom majd.
DeltaPower: Lényeg, hogy megvan a hiba oka. -
Speeedfire
félisten
válasz
DeltaPower #6420 üzenetére
Nem változott semmi sem.
Ugyan az a hiba így is:interface Nyithato {
abstract public function nyitas();
abstract public function zaras();
} -
Speeedfire
félisten
Fő a változatosság megint tökön szúrt ez a könyv az interfészekkel...
Egy egyszerű interfészről lenne szó, de már az interfész definiálásánál fatal errort dob nekem:
interface Nyithato {
abstract function nyitas();
abstract function zaras();
}
class Ajto implements Nyithato {
private $_kulcsrazart = false;
public function nyitas() {
if($this->_kulcsrazart) {
echo 'Az ajtó nem nyitható ki, kulcsra van zárva';
}
else {
echo 'katt...<br />';
}
}
public function zaras() {
echo 'Bamm!!<br />';
}
public function ajtoZaras() {
$this->_kulcsrazart = true;
}
public function ajtoNyitas() {
$this->_kulcsrazart = false;
}
}
class BefottesUveg implements Nyithato {
private $tartalom;
public function __construct($tartalom) {
$this->tartalom = $tartalom;
}
public function nyitas() {
echo 'A befőttesüveg nyitva van!<br />';
}
public function zaras() {
echo 'A befőttesüveg zárva van!<br />';
}
}
function valamitKinyit (Nyithato $obj) {
$obj->nyitas();
}
$objAjto = new Ajto();
$ojbBefottesuveg = new BefottesUveg('lekvár');
valamitKinyit($objAjto);
valamitKinyit($objBefottesuveg);Fatal error: Access type for interface method Nyithato::nyitas() must be omitted in D:\munka\web\!!!oop\index.php on line 465
Oda jelzi ahol az abstact metódusok vannak.
-
Speeedfire
félisten
Hagynod kellett volna szerintem a 4-est és egyből azt 5-össel kezdeni.
Az alapokra jó a 4-es is, csak amikor 5 alatt fejlesztesz és sok függvényre errort dob akkor már kicsit zavaró, hogy x függvényt feleslegesen tanultál meg, vagy épp az 5 alatt egyszerűbb megcsinálni valamit.Más:
Erre nekem miért dob hibát?
class Teglalap {
public $magassag;
public $szelesseg;
public function __construct() {
$this->szelesseg = $szelesseg;
$this->magassag = $magassag;
}
public function teruletSzamitas() {
return $this->magassag * $this->szelesseg;
}
}
class Negyzet extends Teglalap {
public function __construct($meret) {
$this->magassag = $meret;
$this->szelesseg = $meret;
}
public function teruletSzamitas() {
return pow($this->magassag, 2);
}
}
$objNegyzet = new Negyzet(7);
echo $objNegyzet->teruletSzamitas();
$objTeglalap = new Teglalap();
$objTeglalap->magassag = 10;
$objTeglalap->szelesseg = 5;
echo $objTeglalap->teruletSzamitas();konkrétan ezt:
Notice: Undefined variable: szelesseg in D:\munka\web\!!!oop\index.php on line 382
Notice: Undefined variable: magassag in D:\munka\web\!!!oop\index.php on line 383Ezekre mutat a hiba:
public function __construct() {
$this->szelesseg = $szelesseg;
$this->magassag = $magassag;
} -
Speeedfire
félisten
válasz
Tele von Zsinór #6408 üzenetére
Igazából logikusnak is tűnik, mivel a __destruct() csak a objektum "életének" a végén fog megjelenni. Gondolom én, hogy ez lehet az oka.
Más:
Ugye a gyerek osztályban a parent::[hivas]-al lehet meghívni a szülő metódusait.
Ilyen meghívja az egészet, de ha módosítani akarom akkor mi van? Már a szülőben úgy alakítsam ki a metódust, hogy könnyen át lehessen alakítani? A bővítés ugye nem egy nagy dolog, mert csak meghívom a parent-at és kiegészítem vele. -
Speeedfire
félisten
válasz
Brown ügynök #6406 üzenetére
Nagyon megy ez nekem.
-
Speeedfire
félisten
Mennyire fontos használni az osztályokon belül a public kulcsszót? Ha jól tudom akkor alap esetben ha nem írok oda semmit sem akkor is public.
pl:class Pelda {
public $valami;
public $megvalami;
public function Ertek() {
return $this->valami * $this->megvalami;
}
} -
Speeedfire
félisten
válasz
Tele von Zsinór #6403 üzenetére
Igen én is észrevettem, hogy akkor módosúlt az adatbázisban az adat amikor már újra lett töltve az oldal.
Az utolsó mondatot nem teljesen értem (hála a perfekt angolomnak). A lényege ha jól értem, hogy nem szerencsés kivétel kezelést írni a __destrucktorban, mert fatal error is lehet a vége.
-
Speeedfire
félisten
válasz
Speeedfire #6401 üzenetére
Meglett a hiba, nem a kódban volt a gond hanem az update résznél a foreach ciklusban.
Szintaktikailag a mysqlnek nem felelt meg, csak erről nem dobott nekem hibát.
Helyesen a foreach:foreach($this->_modositottTulajdonsagok as $tul) {
$utasitasBeallitas[] = $tul .' = \'' . $this->_tulajdonsagok[$tul]. '\'';
} -
Speeedfire
félisten
Ismét oop, ismét szívás van vele. Konkrétan a __destruct() függvénnyel.
Elvileg a kód ha jól tudom amikor végzett az objektumokkal akkor megvizsgálja, hogy van-e __destruct() rész ha van akkor végrehajtja.
Jelen esetben van, célja elvileg az lenne hogyha futás közben módosult valami adat akkor azt visszaírja az adatbázisba. De ez sajnos nem akar összejönni."Real-time"-ban átírja az adatot, de nem módosítja...illetve ha beillsztek még egy try() catch() blokkot akkor errort is dob...
Ma a kód az előzőnek a tovább bővített változata:
class Felhasznalo2 {
private $_tulajdonsagok;
private $_hAB;
private $_modositottTulajdonsagok;
public function __construct($felh_azon) {
$this->_tulajdonsagok = array();
$this->_modositottTulajdonsagok = array();
$this->_tulajdonsagok['azon'] = null;
$this->_tulajdonsagok['felhnev'] = null;
$this->_tulajdonsagok['valodinev'] = null;
$this->_hAB = mysql_connect('localhost','root','');
if(!is_resource($this->_hAB)) {
throw new Exception('Az adatbazis kapcsolat nem hozhato letre!');
}
$kapcsolodas = mysql_select_db('oop', $this->_hAB);
if(!$kapcsolodas) {
throw new Exception('Az adatbazis nem hasznalhato');
}
$sql = 'select * from felhasznalo where azon = '.$felh_azon.'';
$eredmeny = mysql_query($sql, $this->_hAB);
if(!mysql_num_rows($eredmeny)) {
throw new Exception('Az adatbazisban nincs '.$felh_azon.' azonositoju felhasznalo');
}
$sor = mysql_fetch_assoc($eredmeny);
$this->_tulajdonsagok['azon'] = $sor['azon'];
$this->_tulajdonsagok['felhnev'] = $sor['felhnev'];
$this->_tulajdonsagok['valodinev'] = $sor['valodinev'];
}
function __get($tulajdonsagnev) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-érték!');
}
if(method_exists($this, $tulajdonsagnev. 'Lekerdezes')) {
return call_user_func(array($this, $tulajdonsagnev . 'Lekerdezes'));
}
else {
return $this->_tulajdonsagok[$tulajdonsagnev];
}
}
function __set($tulajdonsagnev, $ertek) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-ertek');
}
if(method_exists($this, $tulajdonsagnev . 'Beallitas')) {
return call_user_func(array($this, $tulajdonsagnev . 'Beallitas'), $ertek);
}
else {
if($this->_tulajdonsagok[$tulajdonsagnev] != $ertek && !in_array($tulajdonsagnev, $this->_modositottTulajdonsagok)) {
$this->_modositottTulajdonsagok[] = $tulajdonsagnev;
}
$this->_tulajdonsagok[$tulajdonsagnev] = $ertek;
}
}
function azonBeallitas($ertek) {
throw new Exception('A felhasznalodi azonositot nem lehet megvaltoztatni!');
}
function koszontes() {
echo 'Szia! '.$this->valodinev.' vagyok! A felhasználói azonositom '.$this->azon.'! A nickem '.$this->felhnev.' !<br/>';
}
function __destruct() {
if(sizeof($this->_modositottTulajdonsagok)) {
$sql = 'update felhasznalo set';
$utasitasBeallitas = array();
foreach($this->_modositottTulajdonsagok as $tul) {
$utasitasBeallitas[] = $tul .' = ' . $this->_tulajdonsagok[$tul];
}
$sql .= join(', ', $utasitasBeallitas);
$sql .= 'where azon = '. $this->azon;
$hEredm = mysql_query($sql, $this->_hAB);
}
mysql_close($this->_hAB);
}
}
try {
$obj = new Felhasznalo2(1);
$obj->valodinev = 'Tóth Szabi';
$obj->koszontes();
}
catch (Exception $e) {
echo 'Hiba: ', $e->getMessage(), "\n";
}Ha hozzáfűzöm még ezt is:
try {
$obj2 = new Felhasznalo2(2);
$obj2->koszontes();
}
catch (Exception $e) {
echo 'Hiba: ', $e->getMessage(), "\n";
}Akkor hibát ír ki nekem:
Warning: mysql_query(): 3 is not a valid MySQL-Link resource in D:\munka\web\!!!oop\index.php on line 279
Warning: mysql_close(): 3 is not a valid MySQL-Link resource in D:\munka\web\!!!oop\index.php on line 282Az sql tábla:
-
Speeedfire
félisten
válasz
Sk8erPeter #6395 üzenetére
Sk8erPeter & Tele von Zsinór: Köszönöm mindkettőtöknek, így utólag belegondolva pedig logikus és érthető is a dolog, nem értem miért nem értettem meg eddig.
Úgy néz ki nálam a hülyülés már korábban kezdődik mint kellene... -
Speeedfire
félisten
válasz
Tele von Zsinór #6393 üzenetére
Igen azt én is észrevettem, hogy developer verzió, csak a hivatalos oldalon egy szó sem esik erről. Ha valóban készül akkor lehet tudni, hogy mik lesznek az újítások?
Most akkor lehet megint félreértettem valamit. Ha jól értettem akkor a függvény a __get() részben megnézni, hogy van-e az adott néven ilyen függvény, ha van akkor meghívja ha nincs akkor elkészíti ellekező esetben kivételt dob nekem.
class TulajdonsagObjektum {
private $_tulajdonsagok;
public function __construct() {
$this->_tulajdonsagok = array();
$this->_tulajdonsagok['nev'] = null;
$this->_tulajdonsagok['szuletesidatum'] = null;
}
function __get($tulajdonsagnev) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-érték!');
}
if(method_exists($this, $tulajdonsagnev. 'Lekerdezes')) {
return call_user_func(array($this, $tulajdonsagnev . 'Lekerdezes'));
}
else {
return $this->_tulajdonsagok[$tulajdonsagnev];
}
}
function __set($tulajdonsagnev, $ertek) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-ertek');
}
if(method_exists($this, $tulajdonsagnev . 'Beallitas')) {
return call_user_func(array($this, $tulajdonsagnev . 'Beallitas'), $ertek);
}
else {
$this-> _tulajdonsagok[$tulajdonsagnev] = $ertek;
}
}
function szuletesidatumBeallitas($szd) {
if(strtotime($szd) == false) {
throw new Exception('A szuletesi datumnak egy ervenyes naptari napnak kell lennie!');
}
else {
$this->_tulajdonsagok['szuletesidatum'] = $szd;
}
}
function koszontes() {
echo 'Szia! '.$this->nev.' vagyok! '.$this->szuletesidatum.' -an/en szulettem!<br/>';
}
}
try {
$obj = new TulajdonsagObjektum();
$obj->nev = "Szabi";
$obj->szuletesidatum = '1985-08-27';
$obj->koszontes();
}
catch (Exception $e) {
echo 'Hiba: ', $e->getMessage(), "\n";
}Ugye itt a __get() második if ágában van a vizsgálata ennek. Vagy te arra az egy db szuletesidatumBeallitasra gondoltál? Mert abban az esetben valóban van ilyen de a többi esetben nincs ilyen típusú függvény.
Viszont most megint felmerült egy kérdés a fejemben? Nem lenne célszerűbb már a __get() résznél megvizsgálni a dolgokat? dátum, név stb? Mert így feleslegesen dolgozik utána még a __set() is. Akkor már a kivételkezelés az elején végbe menne. -
Speeedfire
félisten
válasz
Brown ügynök #6391 üzenetére
Ez az, hogy én is csak rc-est láttam a php oldalán....5.3.6RC2 (03 Marchy 2011)
Az appserver oldalán meg ez van...
-
Speeedfire
félisten
válasz
Sk8erPeter #6387 üzenetére
Wamp-ot használok, de gondoltam meglesem ezt a appserver-t erre mit látok.
Php 6.0.0 dev. Ez mióta van, vagy mi lesz benne az újítás? Nekem ez most nagyon új infó, eddig erről nem tudom. -
Speeedfire
félisten
válasz
Tele von Zsinór #6380 üzenetére
definiál egy mágikus __set függvényt, ami akkor hívódik meg, mikor egy nem létező tulajdonságot próbálsz beállítani. Működése:
- ha a $_tulajdonsagok tagban nincs olyan kulcs, akkor hiba
- ha létezik "tulajdonságnévBeallitas" függvény, akkor meghívja
- amúgy beállítja az adott tulajdonságotEz nagyon hasznos volt. Főleg a vége, szóval beállítja az adott kérést.
Eddig csak azt tudtam, hogy a php alapból meghíva a __set() __get() függvényeket és ott keresi ha nincs meg egy adott függvény.Csak engem megzavart, hogy nem volt a példa programban olyan, hogy:
-tulajdonsagnevLekerdezes
-tulajdonsagnevBeallitas -
Speeedfire
félisten
válasz
PazsitZ #6355 üzenetére
Ez az, hogy a példa programban nincs olyan tulajdonság, hogy xyz beallítas vagy xyz lekerdezes. [link]
Ezért nem értem én, hogy mire akar ott hivatkozni. Vagy így automatikusan létre akarja hozni?
Sk8erPeter: Igen, én is úgy érzem, hogy kicsit túl akarja bonyolítani az elején a könyv ezt. Holott a fejezetet címe bevezetés az oop elméletbe...a következő fejezet lenne az ami a magic methodokkal foglalkozna elméletileg.... -
Speeedfire
félisten
-
Speeedfire
félisten
Akkor a könyvben nem értem miért így volt.
Illetve ezt sem pontosan értem:
return call_user_func(array($this, $tulajdonosnev . 'Beallitas'), $ertek);
return call_user_func(array($this, $tulajdonsagnev . 'Lekerdezes'));Itt a Beallitas és Lekerdezes sztingeket mire használja?
-
Speeedfire
félisten
A könyv végére sírni fogok ezektől a dolgoktól...
Kivettem a piros részt is és így it hibát ír ki, szóval máshol lesz a gond szerintem. Heggesztem még a kódot, de így kicsit ciki ha már a könyvben sem jól van írva...
Ha ezt átírtam true-ra akkor jó volt.
if(strtotime($szd) == false) { -
Speeedfire
félisten
Akkor már tudom Sk8erPeter mire célzott a gányolt kóddal...
Így módosítottam a végét, de csak a hibát írja ki. A helyes részt nem, pedig az 1985.08.27. helyes dátum formátum elvileg.
try {
$obj = new TulajdonsagObjektum();
$obj->nev = "Szabi";
$obj->szuletesidatum = '1985. 08. 27.';
$obj->koszontes();
$obj->szuletesidatum = 'piros';
}
catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}Caught exception: A szuletesi datumnak egy ervenyes naptari napnak kell lennie!
-
Speeedfire
félisten
Ismét egy kis oop kérdés lenne. A könyvben adott egy kódrész:
class TulajdonsagObjektum {
private $_tulajdonsagok = array (
'nev' => null,
'szuletesidatum' => null
);
function __get($tulajdonsagnev) {
if(!array_key_exists($tulajdonsagnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-érték!');
}
if(method_exists($this, $tulajdonsagnev. 'Lekerdezes')) {
return call_user_func(array($this, $tulajdonsagnev . 'Lekerdezes'));
}
else {
return $this->_tulajdonsagok[$tulajdonsagnev];
}
}
function __set($tulajdonosnev, $ertek) {
if(!array_key_exists($tulajdonosnev, $this->_tulajdonsagok)) {
throw new Exception('Ervenytelen tulajdonsag-ertek');
}
if(method_exists($this, $tulajdonosnev . 'Beallitas')) {
return call_user_func(array($this, $tulajdonosnev . 'Beallitas'), $ertek);
}
else {
$this-> _tulajdonsagok[$tulajdonosnev] = $ertek;
}
}
function szuletesidatumBeallitas($szd) {
if(strtotime($szd) == false) {
throw new Exception('A szuletesi datumnak egy ervenyes naptari napnak kell lennie!');
}
else {
$this->_tulajdonsagok['szuletesidatum'] = $szd;
}
}
function koszontes() {
echo 'Szia! '.$this->nev.' vagyok! '.$this->szuletesidatum.' -an/en szulettem';
}
}
$obj = new TulajdonsagObjektum();
$obj->nev = "Szabi";
$obj->szuletesidatum = '1985. 08. 27.';
$obj->koszontes();
$obj->szuletesidatum = 'piros';A könyv szerint ki kellene írni a Szabit és a születési dátumot és utána egy hibaüzenetet, hogy a piros nem megfelelő dátum.
Ehelyett az egészet egy errorba rakja nekem.Fatal error: Uncaught exception 'Exception' with message 'A szuletesi datumnak egy ervenyes naptari napnak kell lennie!' in D:\munka\web\!!!oop\index.php:80 Stack trace: #0 [internal function]: TulajdonsagObjektum->szuletesidatumBeallitas('1985. 08. 27.') #1 D:\munka\web\!!!oop\index.php(71): call_user_func(Array, '1985. 08. 27.') #2 D:\munka\web\!!!oop\index.php(94): TulajdonsagObjektum->__set('szuletesidatum', '1985. 08. 27.') #3 {main} thrown in D:\munka\web\!!!oop\index.php on line 80
php 5.3.0 van fent.
-
Speeedfire
félisten
Még most sem jöttem rá pontosan mi az a {}, ellenben anélkül megy rendesen.
echo 'Szia '.$this->nevLekerdezes().'!<br />';A könyvben csak az első sor van, ellenben én nem így szoktam az echo-t print-et használni:
echo ""; print "";
hanem csak sima aposztrófokkal
echo ''; print '';Megszoktam már ezt a szintaktikát.
-
Speeedfire
félisten
Üdv!
Kis oop gondom van. Jelenleg a bevezetés a php5 programozásba könyvet forgatom a kezeim között, adott egy ilyen sor egy osztályon belül:
echo "Szia {$this->nevLekerdezes()}!<br />";
echo 'Szia '.{$this->nevLekerdezes()}.'!<br />';Az első sor szintaktikaileg helyes, de a másik már nem. Mi a gond vele? Illetve a {} mire való itt? A könyv erre nem tér ki...
-
Speeedfire
félisten
válasz
TomyLeeBoy #6269 üzenetére
Egyelőre oop érdekel utána meg a symfony 2. Valamennyi jquery ismerem van, de itt is az a baj, hogy az angolom ramaty. Magyar nyelven meg nem sok mindent találok...
-
Speeedfire
félisten
válasz
Tele von Zsinór #6266 üzenetére
Ismerkedni ismerkedek vele, de egy ilyen egymásba ágyazáshoz elég sokat kellene tudnom. Meg még mindig a php a fontosabb tanulnivaló.
-
Speeedfire
félisten
válasz
Tele von Zsinór #6263 üzenetére
Komolyan mondom tele van már a tudatom ezzel a scripttel.
Most meg a chrome panaszkodik a 100-as lépésekkel, hogy mindig meghívja magát....
A 200-as határ már jól sikerült, de ez a több fájl másolás most elvette mindentől a kedvemet...Ez lett a végleges script, biztos lehetne még mit csiszolni rajta, de működik így is...
<?php
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML(file_get_contents("http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/"));
libxml_use_internal_errors(false);
$domx = new DOMXPath($domd);
$links = $domx->query(sprintf("//a[position() >= %d]", isset($_GET["start"]) ? (int)$_GET["start"] : 0));
$i = 0;
$j = 0;
foreach ($links as $link) {
if ($i <= 199) {
$file = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/';
$file .= $link->getAttribute("href");
$newfile = '../packages/' . $link->getAttribute("href");
if (!copy($file,$newfile)) {
echo 'Nem sikerült a(z) '.$i.' másolása.<br />';
}
else {
echo $i.'. Ok.<br />';
$j++;
}
}
else {
break;
}
$i++;
}
if (isset($_GET['start']) == 0) {
$file = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin';
$newfile = '../'.end(explode('/',$file));
if (!copy($file,$newfile)) {
echo 'Nem sikerült a bin másolása.';
}
else {
echo 'Sikeres volt a bin letöltése.';
}
}
$ciklusstart = $_GET['start'] + 200;
$uri = $_SERVER['PHP_SELF'].'?start='.$ciklusstart;
if ($j != 0) {
header("Location: $uri");
}
?>Köszönöm az eddigi fáradozásodat!
Szerk.: Egy hátránya van egye ennek a meghívásos dolognak, hogy nem látom a kimeneteket.
-
Speeedfire
félisten
válasz
Inv1sus #6259 üzenetére
Igen!
A postolt adatra nyomsz egy md5-öt, és összehasonlítod az adatbázisban már előre md5-ként mentett jelszóval.
Én pl használom még az md5-öt random sztring generálásra is, amiből generálom az meg az idő, szóval 2 egyforma sem lehet.Itt egy egyszerű példa. [link]
Én anno mikor csináltam a login rendszert ez volt az alap amiből kiindultam.
-
Speeedfire
félisten
válasz
Tele von Zsinór #6250 üzenetére
Hát nekem egyelőre úgy néz ki még ez is nagy falat.
<?php
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML(file_get_contents("http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/"));
libxml_use_internal_errors(false);
$domx = new DOMXPath($domd);
$links = $domx->query(sprintf("//a[position() >= %d]", isset($_GET["start"]) ? (int)$_GET["start"] : 0));
$n = $_GET['start'];
$m = $n+100;
echo $n;
for ($n; $n<$m; $n++) {
$file = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/';
$file .= $links->getAttribute("href");
$newfile = '../packages/' . $links[$n]->getAttribute("href");
if (!copy($file,$newfile)) {
echo 'Nem sikerült a(z) '.$n.' másolása.';
}
else {
echo $n.'. Ok.';
}
}
$uri = $_SERVER['PHP_SELF'].'/?='.$_GET['start']+100;
header("Location: $uri");
?>Fatal error: Call to undefined method DOMNodeList::getAttribute() in /var/www/szunyi.com/openwrt/www/admin/masol.php on line 19
Lehet tényleg jobban járnék valami ajaxos megoldással...
-
Speeedfire
félisten
válasz
Tele von Zsinór #6248 üzenetére
Ajaxxal még nem foglalkoztam.
Mennyire lenne csúnya megoldás, ha mindig meghívnám a php fájlt és egy for ciklussal iratnám ki a dolgokat. A fájl végén meg a headerbe továbbítanám +100-as start paraméterrel. Így mindig meghívja megát a fájlt.
Kicsi csúnya lenne, meg nem tudnám,hogy melyiket sikerült neki átmásolnia, de menne.
Esetleg sessionben. -
Speeedfire
félisten
válasz
Tele von Zsinór #6246 üzenetére
Valóban tiltva van.
Viszont ez az ajax meghívás nekem magas.
Ennyire nem értek a dologhoz. -
Speeedfire
félisten
válasz
Tele von Zsinór #6244 üzenetére
Ez még jobb mint az enyém (a tied).
Viszont itt is felmásolja az első ~1200 fájlt után dob egy error500-at. Ingyenes tár ismét hangsúlyozom. Ezzel lehetne valamit kezdeni?
-
Speeedfire
félisten
válasz
Tele von Zsinór #6242 üzenetére
Most nincs error,warning ellen nem fut le a másolás. Lehet én értem rosszul az egész folyamatot. Ha jól értem akkor a $link a megadott paramétere a href="" -nek.
$domd = new DOMDocument();
libxml_use_internal_errors(true);
$domd->loadHTML("lista.txt");
libxml_use_internal_errors(false);
$domx = new DOMXPath($domd);
$links = $domx->query(sprintf("//a[pos() >= %d]", isset($_GET["start"]) ? (int)$_GET["start"] : 0));
foreach ($links as $link) {
$link->getAttribute("href");
$file = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/';
$file = $link;
$newfile = '../packages/'.$link;
if (!copy($file,$newfile)) {
echo 'Nem sikerült a(z) '.$i.' másolása.'; flush();
}
else {
echo $i.'. Ok.'; flush();
}
} -
Speeedfire
félisten
válasz
Tele von Zsinór #6239 üzenetére
Vagy nagyon béna vagyok vagy tényleg béna vagyok, de nekem sehogy sem akar menni. :S
1. Igen elvileg kiírja, de akkor amikor lefutott a script, real time kiírásra gondoltam, de azt ahogy sejtem csak ajaxal lehetne megoldani.
2. Minden formában próbáltam már de mindig warning van vagy error erre a sorra:
$links = $domx->query(sprintf("//a[pos() >= %d", isset($_GET["start"]) ? (int)$_GET["start"] : 0); -
Speeedfire
félisten
Kicsit gányolni kellett a kódomat, most úgy ahogy jó. Viszont nagyon sok fájl van ezért egy idő után lehal és error 500-at dob vissza.
2 kérdésem lenne ezzel kapcsolatban:
1. Meglehet oldani valahogy azt, hogy ne akarja az egészet egyszerre megcsinálni?
2. Kilehetne valahogy iratni egyesével ha már valamelyiket átmásolta?A kód:
<?php
$handle = @fopen('lista.txt','r');
if ($handle) {
$i = 0;
while (($buffer = fgets($handle, 4096)) !== false) {
$file = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/';
$buffer = explode('"', $buffer);
$file .= $buffer[1];
$newfile = '../packages/'.$buffer[1];
if (!copy($file,$newfile)) {
echo 'Nem sikerült a(z) '.$i.' csomag másolása.';
}
else {
echo $i.'. Ok.';
}
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
$file = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/openwrt-ar71xx-generic-tl-wr1043nd-v1-squashfs-factory.bin';
$newfile = '../'.end(explode('/',$file));
if (!copy($file,$newfile)) {
echo 'Nem sikerült a másolás.';
}
else {
echo 'Sikeres volt a bin letöltése.';
}
?>A txt fájl meg ilyesmi (2700 sor, ergó 2700 fájl másolását akarom ráuszítani):
<a href="6in4_8-1_all.ipk">6in4_8-1_all.ipk</a> 13-Feb-2011 04:43 2513
<a href="6scripts_0.1-6_all.ipk">6scripts_0.1-6_all.ipk</a> 13-Feb-2011 05:44 2284
<a href="6to4_3-1_all.ipk">6to4_3-1_all.ipk</a> 13-Feb-2011 04:43 3206
<a href="6tunnel_0.11rc2-2_ar71xx.ipk">6tunnel_0.11rc2-2_ar71xx.ipk</a> 13-Feb-2011 05:44 7345
<a href="GraphicsMagick-jpeg_1.3.8-2_ar71xx.ipk">GraphicsMagick-jpeg_1.3.8-2_ar71xx.ipk</a> 13-Feb-2011 09:48 18431Az első teszt eredménye 1200db fájl lett átmásolva.
Tovább nem szeretném bontogatni a txt-t.
-
Speeedfire
félisten
<?
$kapcsolat = mysql_connect("localhost","proba","123");
mysql_select_db("sajatoldalam",$kapcsolat);
$parancs = "INSER INTO belepes (nev,jelszo) VALUE ('$_POST['nev']','$_POST['jelszo']')"; //$ jel kell, nem &
mysql_query($parancs,$kapcsolat);
mysql_close($kapcsolat); //ez nem volt lezárva, gondolom jelezte is neked
header("location: belepeselfogad.php");
?>Talán menni fog, de van egy olyan érzésem, hogy php4-es könyvből tanulsz...
Szerk.: Mindig megelőznek....
-
Speeedfire
félisten
válasz
Tele von Zsinór #6219 üzenetére
Annyira jó, hogy a curl_exec() függvény tiltva van ezen a tárhelyen....
Ezt próbáltam meg kezdésnek:
$ch = curl_init("http://downloads.openwrt.org/snapshots/trunk/ar71xx/");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
echo $output; -
Speeedfire
félisten
Még is csak lenne egy gondom. Távolról akarok fájlokat másolni egy helyi szerverre. De ugye a http protokoll nem engedélyzett....
Van valami megoldás rá? Vagy csak ha kicopyzom a fájlok nevét, majd azt egy tömbbe rakom?$dir = 'http://downloads.openwrt.org/snapshots/trunk/ar71xx/';
if ($dir = opendir($dir)) {
$i = 1;
while (false !== ($file = readdir($dir))) {
if($file!='.' && $file!='..' and $dir > 0) {
if (!copy($dir.$file,'../'.$file)) {
echo $file;
echo 'Nem sikerült a másolás.';
}
else {
echo $file;
echo 'Ok.';
}
$i++;
}
}
closedir($dir);
} -
Speeedfire
félisten
válasz
Speeedfire #6216 üzenetére
Megy ez csak ugyanazt a változónevet kellene használni...
-
Speeedfire
félisten
A copy()-val kapcsolatban lenne kérdésem.
Az szeretném megoldani, hogy az adott fájlokat egy könyvtárral visszábra másolja, de nem akar összejönni.if (!copy($file,'../'.$newfile)) {
echo 'Nem sikerült a másolás.';
}
else {
echo 'Ok.';
} -
Speeedfire
félisten
válasz
Tele von Zsinór #6199 üzenetére
Oks, mondjuk ezek a módosítók még nem tiszták nekem teljesen. absztrakt, static meg az imlementálás de rajta vagyok a témán.
Inv1sus: Lehet hülyeséget írok, de a parent (gondolom olyasmi lehet mint a self) szerintem meghívja a blog osztály funkcióját, hiába van a CI_Controllerben ugyan ilyen, akkor is a blog osztályét fogja használni.
Aztán lehet teljesen rossz fele haladok. -
Speeedfire
félisten
válasz
Tele von Zsinór #6192 üzenetére
-
Speeedfire
félisten
Egy kérdés videózás közben az öröklödéssel kapcsolatban:
Adott egy kódrész:class foo {
function woo() {
echo 'foo';
}
}
class bar extends woo {
}
$o = new bar();
$o -> woo();
//eredmény: fooUgye a végén létrehozunk az $o-nak egy új osztályt (vagy attributumot) ami a bar() osztályra hivatkozik. Majd a végén miért a woo függvény hívjuk meg? Ezt itt nem teljesen értem.
Odáig oké, hogy $o = new bar(); de ami utána jön az nem tiszta. -
Speeedfire
félisten
válasz
Inv1sus #6184 üzenetére
Engem anno lebeszéltek róla, azt mondták kell az erős oop szemlélet/elmélet, hogy értesm is, hogy mit csinálok. Most ezeket a docleres előadásokat nézem, jelenleg az első részt. Eddig elég érdekes és jól is magyarázza srác. Elmondja, hogy mi mire való, mire érdemes figyelni. 2*1órás az anyag. Majd délután helyzet jelentek.
Új hozzászólás Aktív témák
Hirdetés
- Precision 3480 27% 14" FHD IPS i7-1370P 32GB 512GB NVMe magyar vbill IR kam gar
- Apple watch Ultra 2 megkímélt akku 100% 2025.08.25.Apple jótállás beszámítok!
- Precision 3580 27% 15.6" FHD IPS i7-1360P RTX A500 32GB 512GB NVMe magyar vbill gar
- Intel Core i5-13500 OEM
- Toshiba Surveillance Pro S300 8TB megfigyelőrendszerekre optimalizált merevlemez
- AKCIÓ! MSI B450M R7 5700X 16GB DDR4 512GB SSD RX 5700 XT 8GB Rampage SHIVA Zalman 600W
- ÁRGARANCIA! Épített KomPhone Ryzen 5 7600X 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- LG 65B4 - 65" OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready
- Samsung Galaxy J6 2018 32GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 12 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest