-
Fototrend
Új hozzászólás Aktív témák
-
Doctor46
csendes tag
Sziasztok!
Jövő héten lenne a szóbeli vizsgám és van 3 olyan programozási tételem amivel nem tudok mit kezdeni.
Ha esetleg valaki akarna segíteni akkor írjon rám privátban és elküldöm neki!Köszönöm szépen!
-
Sk8erPeter
nagyúr
válasz creation #8650 üzenetére
"Chrome, Tűzróka és Opera mindegyik flottul nyitja az oldalt, ámde ezek alatt, mint írtam az LDAP azonosítás sajnos nem megy"
Hogy érted, hogy csak IE-ből megy, hogy csinálod? Valami ActiveX-es IE-specifikus tákolmány foson keresztül, vagy hogyan? Miért nem a PHP vonatkozó bővítményével? --> php_ldap Ha ezt használnád, teljesen mindegy lenne, hogy szerveroldalon hogyan történne pontosan az autentikáció (a szerver pedig üzemelhet csak localhoston, belső hálózaton, stb., nem is kell, hogy ki legyen engedve a vadvilágba).
A végtelenségig töltődős, kiszámíthatatlanul betöltős részére meg igazából ennyiből szerintem kábé lehetetlen konkrétumot mondani, hogy mi az oka, innen-onnan kéne tesztelni, esetleg logokat nézegetni, ezt-azt állítgatni, stb., de nekem már az is furcsa, hogy miért böngészőspecifikus az autentikáció.Sk8erPeter
-
Doctor46
csendes tag
válasz creation #8652 üzenetére
Ezek lennének.
4.A. Egy kis vegyesbolt vezetője felkéri, hogy készítsen egy számítógépes programot,
amely a bolt raktárkészletét tartja nyilván. Feladata, hogy határozza meg a fejlesztendő
szoftver funkcionális és minőségi követelményeit, valamint az alkalmazás szerkezeti
felépítését.
- Mutassa be a programtervezés folyamatát!
- Nevezze meg és jellemezze a tervezés során készítendő dokumentumokat!
- Határozza meg a fejlesztendő szoftver funkcionális követelményeit!
- Határozza meg a fejlesztendő szoftver minőségi követelményeit!
- Tegyen javaslatot a szoftver futtatási környezetére (platform)!
- Tegyen javaslatot a szoftver architektúra kialakítására!
- Mutasson rá az alkalmazás kritikus pontjaira!8.A. Egy áruház klimatizálási rendszeréből 10 másodpercenként érkeznek - az egyes
helyiségek hőmérsékletét jelző - monitoradatok egy adatbázisba. A megfigyelt helyiségek
(beérkező adatok) száma 100 darab. Feladata, hogy tegyen javaslatot az adatok
rögzítéséhez szükséges adatbázis és alkalmazás felépítésére.
- Tervezze meg a rendszer működéséhez szükséges architektúrát!
- Tervezze meg az adatok tárolásához szükséges adatbázis felépítését!
- Határozza meg az adatok tárolásához szükséges tárterületet!
- Tervezze meg az adatok rögzítéséhez szükséges alkalmazást!
- Határozza meg a rendszer működése során jelentkező kritikus pontokat, hibákat és
javasoljon megoldásokat! -
inf3rno
nagyúr
válasz Doctor46 #8654 üzenetére
Hát nekem ez így elég tág határok között mozog, gondolom azt akarják visszahallani, amit leadtak órán. A gyakorlatban nagyon sok dolog ízlés kérdése, pl hogy milyen dokumentumokat szórsz össze azt szerződésben lehet rögzíteni, de sokszor a megrendelő egyáltalán nem is foglalkozik vele, csak működjön az alkalmazás. Az adatbázis is elég esetleges, tudni kéne, hogy milyenekről tanultatok, SQL/newSQL, ill. noSQL szerepelt az anyagban? Elképzelhető, hogy egy noSQL adatbázis erre a feladatra sokkal jobb lenne, mint egy SQL. Na szóval szerintem még mindig kevés az info, hogy érdemben lehessen válaszolni.
Buliban hasznos! =]
-
creation
senior tag
válasz Doctor46 #8654 üzenetére
"- Határozza meg a fejlesztendő szoftver funkcionális követelményeit!
- Határozza meg a fejlesztendő szoftver minőségi követelményeit!"Ezt miért te? Ezeket a vevőnek, tehát a kisboltnak kell leszögeznie, a mit kér rovatban...
"Egy áruház klimatizálási rendszeréből 10 másodpercenként érkeznek - az egyes
helyiségek hőmérsékletét jelző - monitoradatok egy adatbázisba. A megfigyelt helyiségek
(beérkező adatok) száma 100 darab.""- Tervezze meg az adatok tárolásához szükséges adatbázis felépítését!
- Határozza meg az adatok tárolásához szükséges tárterületet!"- És hány éves a kapitány felesége...
De most tényleg elvárják, hogy nem is tudod, hogy a nyomorult klíma legalább kb-ra milyen formátumú adatokat küld, de azért ezeket mondd meg így előre...
Kis klíma loggerem, ami a mérőgépemen van, 15 percenként küld adatokat a gépnek, amit egy adatbázisban tárol le.
Ez az alábbi mezőket tartalmazza:
Internal sensor db: id, date&time, temperature, humidity, dewpoint
És ugyanez, még 8 csatornán.20140110-től a mai napig 32MB adat készült 1 csatornán.
A kérdésem, hány fokos volt a mérőszoba tavaly december 14-én?
Nincs több kérdésem...
Azért gondolkodok a témakörön, bár nekem anno nem voltak ilyen kérdések, amikor programozást tanultam... Illetve összeszedettebb kérdések voltak. Több technikai adattal. Bár az tény, hogy így is megoldható egy egy-/többismeretlenes válasszal
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
creation
senior tag
válasz Sk8erPeter #8653 üzenetére
Semmi extra, a php.ini-ben megtalálható ldap funkciót használom fel, amit te is írtál.
$info = ldap_get_entries($connect, $search1);
//echo("xxx-Security")."<br>";
for ($i=0; $i<$info["count"]; $i++) {
//echo "". $info[$i]["samaccountname"][0]."<br>";
if($user == $info[$i]['samaccountname'][0])
{
$_SESSION['engedely_olvas'] = "1";
$_SESSION['engedely_ir'] = "1";
}
}Ez pedig a lekérésem.
Ha más böngészővel próbálom meg elindítani az oldalt, akkor sajnos nem adja ki a jogokat, gyakorlatilag mintha nem is futna le a programkód.
A dolog nincs kiengedve a nagyvilágba. Ez csak a belső hálózatról elérhető.
Nézegettem a logfileokat, de sehol semmi nyoma nincs annak, hogy miért nem történik másodpercekig semmi. Próbáltuk másik portra "terelni" a dolgokat mert feltűnt, hogy ha IE alatt megnyitom az oldalt és csak "teker", akkor Chrome és a többi böngésző alatt is csak teker, míg az IE-t be nem csukom. Akkor azonban azonnal betöltődik mindegyiken. Csak az IE-n nem.
Sajnos a másik portra terelés a httpdconf.ini Listen port 80-as portról 8080 és más portokkal sem ment. Lehet hogy máshol is kellett volna még ezt állítani?Gyakorlatilag olyan mintha a kérés el se jutna a serverig. Ha IE-ben nézem F12-vel, hogy mi a szitu, akkor azt látom, hogy "pending" megy ezerrel, de semmi nem történik. Aztán olyan 30-90+mp után egyszercsak bejön az oldal... Vagy nem... Vagy azonnal.. vagy nem...
Én kifogytam az ötletekből, az utolsó megállapításom az volt, ha nem fog menni az ldap-al, akkor csinálok egy user adatbázist és lesz mindenkinek jelszava.
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
inf3rno
nagyúr
válasz creation #8657 üzenetére
Nem tudom, ilyen nehéz debuggolni? Vagy az LDAP a hibás vagy valami a HTTP szerverrel van. Próbáld ki LDAP nélkül mondjuk sima PHP array-es példa adattal kimockolva a perzisztenciát (úgy mondjuk elég nehéz, ha nem decoupled az implementációja). Ha úgy megy, akkor valszeg az LDAP lockolja a fájlt, és azért teker a többi. Hogy ennek mi köze az IE-hez, azt ne kérdezd. Persze a bugoknál lehet még sok olyan dolog, amire nem is gondolna az ember, de legalább jó lenne beazonosítani, hogy a szoftver melyik részén bukik el a dolog. LDAP-al és MSIE-vel kapcsolatban nem találtam semmi összefüggést egy gyors kereséssel, úgyhogy valszeg máshol lesz a hiba a rendszeredben.
Egyébként javaslom valamelyik HTTP keretrendszer, pl symfony vagy laravel használatát.
Buliban hasznos! =]
-
Jim Tonic
nagyúr
válasz creation #8656 üzenetére
Mert ez a feladata. El kell mondania az elképzeléseit a feladat megoldásával kapcsolatban. Elő kellene venni hozzá az iskolai előzményeket.
- Funkciók meghatározása elég egyértelmű feladat.
- Minőségi követelmény általában a hibakezelésre vonatkozik, de mást is bele lehet venni.
- Adatbázisra vonatkozóan lehet táblákról, mezőkről, triggerekről beszélgetni.
- Platform, miért Win, miért Linux. DB szerver, stb.Szerintem elég egyértelmű a feladat, csak jól kell megközelíteni.
[ Szerkesztve ]
Alcohol & calculus don't mix. Never drink & derive.
-
creation
senior tag
válasz inf3rno #8658 üzenetére
Olyan egyszerű dolog sem indul el IE alól csak 30-90+ mp betöltési idő után mint egy echo "akármi";...
Szóval nem az ldap az elsődleges probléma, azt csak eleinte hittük, hogy az okozza a gondot. 100%, hogy valami más a hiba, csak még nem találtuk meg, hogy mi.
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
creation
senior tag
válasz Jim Tonic #8659 üzenetére
Nem is azon gondolkodtam el, hogy mennyire nehéz, hanem azon, hogy a valós életben ezt majd nem neki kell eldöntenie. Ő csak ajánlatot tehet és kritériumokat fogadhat el.
Az adatbázis felépítését, már meg ne haragudj, de hogyan tervezze meg, ha fogalma sincs, hogy az adott eszköz milyen adatokat fog neki oda hányni és azok mekkora méretet is öltenek?! Gyakorlatban ez így nem megy. Legalább egy példa s feladat erejéig összekaphatta volna magát a példa megírója, hogy pl: hőmérsékletet és rögzítési idejét küldi a klíma, egyiket timestampben a másikat meg 3 tizedesig celsiusban. Akkor már van mivel számolni. Meg van miből kitalálni a db formáját, de így?!Vagy csak én várok el túl sokat mástól, hogy könnyebb legyen az én munkám?!
A többivel nem vitatkozok, teljesen helytálló kérdések és a megválaszolásuk sem okoz szerintem a srácnak akadályt.
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
-
bambano
titán
válasz Doctor46 #8654 üzenetére
"- Határozza meg a rendszer működése során jelentkező kritikus pontokat, hibákat és
javasoljon megoldásokat!": szerintem itt a legfontosabb, amit domborítani kell, hogy a rendszert fel kell készíteni arra, hogy a bemenő adat kupleráj és abból először standardizált értéket kell előállítani.
nem tudhatod, hogy miben mérnek, celsiuszban vagy fahrenheitben, hogy minden mérő ugyanabban mér-e. azt sem tudhatod, hogy konkrét számot kapsz-e vagy valamilyen szorzatot, hány jegyre kerekít, stb. azt sem tudhatod, hogy a programod teljes életciklusa alatt mindig ugyanolyan mérőberendezéseket fognak-e felszerelni, akár javítás közben is, mint az elején.például az snmp nem tud törtszámot, gyakran úgy adják meg a hőmérsékletet, hogy 10-zel szorozva, egészre kerekítve.
szerintem egy ilyen programot rendesen csak úgy lehet megírni, ha képes mérőpontonként különböző, konfigurálható algoritmussal bejövő adatot értelmezni.
a másik problémám az szokott lenni, hogy nem ártana tudni, mely adatok születtek egy időpillanatban, illetve egy adott mérőponthoz idősorrendet egyszerűen tudni kellene csinálni.
szerk: a másik probléma, ami fontos lehet (egy áruházban a hűtőpultok hőmérséklete az élelmiszerbiztonság miatt fontos lehet. hapci... ja nem, hanem haccp.), hogy hogyan biztosítod a szünetmentes működést. rendszert mindig kell karbantartani, tehát mit kezdel azokkal az időszakokkal, amikor az adatbázisszervered nem elérhető?
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
bambano
titán
válasz creation #8661 üzenetére
"Az adatbázis felépítését, már meg ne haragudj, de hogyan tervezze meg, ha fogalma sincs, hogy az adott eszköz milyen adatokat fog neki oda hányni és azok mekkora méretet is öltenek?!" teljesen mindegy, hogy egy hipotetikus adatbázis végül mekkora lesz és az is mindegy, hogy eltalálja-e a méretét.
jegyet az eredmény megkapásáig vezető útért kap. ha ebben egy mező mérete rossz, majd újraszámolja.
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
inf3rno
nagyúr
válasz bambano #8663 üzenetére
Szvsz event sourcing-al lenne a legtöbb értelme, abból később olyan read database-eket csinál, amilyeneket akar. Az immediate consistency meg itt egyáltalán nem szempont, szóval tökéletes lenne ilyen célra. Egy apróbb domain model kell, aminek van egy felülete, ahhoz lehetne szenzoronként eltérő adaptereket írni.
Buliban hasznos! =]
-
inf3rno
nagyúr
válasz creation #8660 üzenetére
Még érdekes lehet az is, hogy PHP milyen módban fut, mi van a htaccess fájlokban, milyen verziójú böngészőkkel próbáltad, és mi az, amivel nem megy, illetve, hogy van e kliens oldali script, vagy egy sima HTML echo betöltése nem megy. A doctype és a content-type header is közrejátszhat extrém esetben. Egyébként nekem nem logikus, hogy IE specifikus dolog legyen. Ez így tényleg fura. Össze kellene szedni minél több adatot, aztán rákeresni, hátha dob valamit google. Legrosszabb esetben meg írni egy bug report-ot vagy a HTTP szerver gyártójának vagy microsoftnak (utóbbinak azt mondják nem érdemes, mert nem nagyon foglalkoznak vele).
[ Szerkesztve ]
Buliban hasznos! =]
-
creation
senior tag
válasz inf3rno #8668 üzenetére
Server type: Microsoft Winfos 2008 Server
A webserver egy virtuális gépen fut. wamp az alapja, a legfrissebb benne minden, ami a legfrissebb csomagban elérhető volt...
IE összes alól próbáltam, mindnél ugyan az a séma, Chrome-ból a legfrissebb, FF és Opera nem tudom, mert azt a garázda próbálta, az ldap kivételével nála is minden korrektül betöltött.
Már egy sima echo sem indul el. Tehát kár az ldap-ban keresgélni!
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
Sk8erPeter
nagyúr
válasz creation #8669 üzenetére
"IE összes alól próbáltam, mindnél ugyan az a séma, Chrome-ból a legfrissebb, FF és Opera nem tudom, mert azt a garázda próbálta, az ldap kivételével nála is minden korrektül betöltött."
Még mindig nem értem. Mégis mi a retekért számít, milyen böngészőt használsz, amikor szerveroldalon autentikálsz LDAP segítségével? Miért böngészőfüggő a szerveroldali LDAP-használat? Erre még mindig nem válaszoltál, pedig már az elejétől kezdve igencsak érdekes a dolog. Ez kliens-szerver architektúra, kéréseket küldesz a szerver felé, az meg kezd valamit a kapott adatokkal, aztán küldi a választ - hogy a kliens pontosan milyen is, az említett feladat szempontjából totálisan irreleváns kéne, hogy legyen, ha normálisan van megoldva (ezért kérdeztem, például nem valami ActiveX-es szutyok van-e nálatok, de mint kiderült, nem). De hát ugyanígy nagyon érdekes az is, hogy csak IE akármelyik verziójánál tapasztaljátok ezeket a random végtelenségig töltődéseket, vagy épp azonnali betöltést, szóval a kiszámíthatatlan működést. Valaminek történnie kell a kliens és szerver közt, ami ezt befolyásolja, ezek szerint függhet érkező adatoktól, vagy fingom sincs, mitől, azt sem igazán értem, miért.
Az alkalmazásban lekezelitek a potenciális hibákat, például csatlakozási timeouttal kapcsolatos problémákat (rövidebbre is állíthatod a timeoutot amúgy, hogy ilyen esetben előbb kiderüljön, hogy timeout-para van: [link] - ldap_set_option($ldapconn, LDAP_OPT_NETWORK_TIMEOUT, 2); /* 2 second timeout */), meg hasonlókat? Van ellenőrzés? Biztos, hogy végig lehetne debuggolni a folyamatot egy problémás esetnél (bármily meglepő, PHP-kódot is lehet debuggolni), akár conditional breakpointok használatával egy megfelelő IDE segítségével, vagy ilyesmi.[ Szerkesztve ]
Sk8erPeter
-
creation
senior tag
válasz Sk8erPeter #8670 üzenetére
Akkor menjünk vissza a gyökerekhez és most hagyjuk ki a játékból az ldap-ot.
Ha csak egy echo "akármi"; szintű index.php-t készítek, azt se tölti be!
Ne bonyolítsuk túl. Igazából én bonyolítottam túl azzal, hogy megosztottam azt az infót, hogy az ldap nekem csak IE alól megy, de nem ez a legfőbb probléma. Ha az ldap-ot kiveszem a játékból, mi több a felhasználó azonosítást is kiszedem, nem marad másom csak egy echo "akármi"; , akkor sem tölti be az ezt tartalmazó index.php-t az IE, míg a többi böngésző röhögve nyitja.
Ez mitől lehet?
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
inf3rno
nagyúr
válasz creation #8672 üzenetére
Ha localhost-on teszteled, akkor itt van egy hasonló topic: http://forum.wampserver.com/read.php?2,91207,page=1 Azt mondják, hogy az intranet beállítások rosszak MSIE-n, illetve az Apache 2.4 cseréje 2.2-re megoldja. Hát... Én mondjuk inkább IIS-t (ha már windows) vagy nginx-et használnék, ha amúgy is szerver csere kell, sosem bíztam az Apache-ban. Valahogy az a benyomásom, hogy a verzió váltásaik több új bugot tesznek be, mint amennyit javítanak.
[ Szerkesztve ]
Buliban hasznos! =]
-
Sk8erPeter
nagyúr
válasz creation #8677 üzenetére
Igazából őszintén szólva nem értem, minek kavartad bele az LDAP-ot, ha ezek szerint a klienstől függő probléma előfordulásában semmilyen szerepet nem játszik, nyilván nem is szabadna! Hiszen ezzel szerveroldalon játszol, és totál irreleváns kellene, hogy legyen, milyen klienssel küldted a kérést. Ezek szerint csak tök random fordul elő a para, ahogy állítod, egy echózás során is "beakadhat", töltöget a végtelenségig.
Ennek nyilván megvan a magyarázata, de amúgy tényleg kipróbálhatnád másik szerverrel, például IIS-sel, ahogy inf3rno javasolta. Nyilván annyiból nem "megoldás" az Apache-os kérdésre, hogy ha a szervercsere megoldja, attól még a magyarázatot nem leltük meg, de 1. kiszűrjük legalább, hogy valószínűleg a szerverbeállítások a ludasak (vagy azok is, meg még a franc tudja, mi, igaz, ennek ellentmond, hogy kliensfüggő a dolog, amit még mindig nem értünk), 2. nem kúrtál el csomó időt próbálgatással.
A Web Platform Installer segítségével bődületesen egyszerű az IIS-t telepíteni és konfigurálni. A legegyszerűbb úgy, hogy ha ennek segítségével rákeresel például egy CMS-re, mondjuk a Drupalra, rámész, hogy telepítse, ez mindenféle szükséges függőséget be fog húzni (PHP, MySQL, cache-elésért felelős cuccok, URL Rewrite modul, stb.), amikre nagy eséllyel egy PHP-alkalmazásnál úgyis szükséged lenne, next-next jelleggel ezeket felrakod, aztán max. ha nincs rá szükséged, letörlöd a felrakott Drupalt (de cserébe minden ehhez szükséges cucc fent van). Ugyanitt érdemes a PHP Managert telepíteni, ezzel az IIS grafikus felületén kattinthatod be, hogy egy PHP extension engedélyezve legyen, vagy sem, illetve szintén grafikus felületen módosítgathatod a beállításokat. Már csak ez is az IIS előnye, hogy nem szöveges konfigurációs fájlokat kell bújkálni, egy elég kényelmes grafikus felületen csinálsz mindent (persze ki kell ismerni), kisebb az elkúrás esélye is, ha grafikus felületen kattintod be. (Szerk.: félreértés ne essék, az IIS-t is lehet konfigurálni XML-állományokból, sőt, lehet konzolos felületről is manipulálni, de legalább kapsz fölé egy normális grafikus felületet is.)[ Szerkesztve ]
Sk8erPeter
-
creation
senior tag
válasz Sk8erPeter #8678 üzenetére
Köszönöm az eddigi segítséget mindkettőtöknek.
Meglátjuk, hogy a helyi Informatikai manáger hogyan viszonyul majd ehhez. Egyenlőre ma azt az infót kaptam tőle, hogy egyszerűbbnek érzi egy FF telepítését jelenleg. Aztán ha lezajlott az egyéb feladata, akkor beszélhetünk másról is. Szóval mégiscsak engedélyt kaptunk úgy néz ki egy második böngésző használatára...
Azt hogy miért kevertem ide az ldap-ot, annak az oka az volt, hogy eleinte azt hittem, hogy ő a ludas, majd azt hogy a felhasználó lekérdezés, de amikor már egy echo se ment, akkor számomra is világossá vált, hogy nem itt kell keresgélni.
Ettől függetlenül értetlenül állok az előtt tény előtt is, hogy miért csak IE alatt megy az ldap... Ha arra lenne valami értelmes megoldás a wamp keretein belül, akkor már boldog ember lennék...
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
Sk8erPeter
nagyúr
-
creation
senior tag
válasz Sk8erPeter #8680 üzenetére
Nem, egyszerűen se hiba jelzés se semmi, csak nem kap értékeket... Másoljak kódrészt? Hátha én 'sztam el valamit?
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
creation
senior tag
válasz Sk8erPeter #8682 üzenetére
<?php
///////////////////////////////////////////////////////// BEJELENTKEZETT USER LEKÉRÉSE ////////////////////////////////////////////////////////////////////
$headers = apache_request_headers();
if (!isset($headers['Authorization']))
{
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: NTLM');
exit;
}
$auth = $headers['Authorization'];
if (substr($auth,0,5) == 'NTLM ')
{
$msg = base64_decode(substr($auth, 5));
if (substr($msg, 0, 8) != "NTLMSSP\x00")die('error header not recognised');
if ($msg[8] == "\x01")
{
$msg2 = "NTLMSSP\x00\x02\x00\x00\x00".
"\x00\x00\x00\x00". // target name len/alloc
"\x00\x00\x00\x00". // target name offset
"\x01\x02\x81\x00". // flags
"\x00\x00\x00\x00\x00\x00\x00\x00". // challenge
"\x00\x00\x00\x00\x00\x00\x00\x00". // context
"\x00\x00\x00\x00\x00\x00\x00\x00"; // target info len/alloc/offset
header('HTTP/1.1 401 Unauthorized');
header('WWW-Authenticate: NTLM '.trim(base64_encode($msg2)));
exit;
}
elseif ($msg[8] == "\x03")
{
function get_msg_str($msg, $start, $unicode = true)
{
$len = (ord($msg[$start+1]) * 256) + ord($msg[$start]);
$off = (ord($msg[$start+5]) * 256) + ord($msg[$start+4]);
if ($unicode)return str_replace("\0", '', substr($msg, $off, $len));
else return substr($msg, $off, $len);
}
$user = get_msg_str($msg, 36);
$domain = get_msg_str($msg, 28);
$workstation = get_msg_str($msg, 44);
$greetingmsg = "Üdvözlöm $user, ($domain/$workstation) <br>";
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(($_SESSION['user'] != "") and (($_SESSION['engedely_olvas'] == "") or ($_SESSION['engedely_ir'] == "")))
{
/////////////////////////////////////////////////////////////// LDAP CSOPORT LEKÉRDEZÉSE //////////////////////////////////////////////////////////////////
$ldap_server = "ldap_server_neve.domain";
$auth_user = "Vedelem@ldap_server_neve.domain";
$auth_pass = "Vedelem_jelszava";
$base_dn = "OU=Accounts,OU=csoport1,OU=csoport2,OU=csoport3,OU=csoport4,DC=szervezet,DC=domain";
$filter1 = "(&(objectCategory=user)(memberOf=cn=GG-server-Security,OU=csoport1,OU=csoport2,OU=csoport3,OU=csoport4,DC=szervezet,DC=domain))";
$filter2 = "(&(objectCategory=user)(memberOf=cn=GG-server-SecurityServiceVedelem,OU=Groups,OU=csoport1,OU=csoport2,OU=csoport3,OU=csoport4,DC=szervezet,DC=domain))";
// Csatlakozás az LDAP serverhez
if (!($connect=@ldap_connect($ldap_server))) {
die("Nem lehet csatlakozni a serverhez!");
}
// Bejelentkezés
if (!($bind = ldap_bind($connect, $auth_user, $auth_pass))) {
die("<CENTER><img src=\"img/under_construction.png\" width=\"800\"><br>Project: 001</CENTER>"); // Hibás felhasználónév
}
// search1 active directory
if (!($search1 = ldap_search($connect, $base_dn, $filter1))) {
die("Unable to search ldap server");
}
// search2 active directory
if (!($search2 = ldap_search($connect, $base_dn, $filter2))) {
die("Unable to search ldap server");
}
////////////////////////////////// ADMIN CSOPORT JOGOK ÉS VIZSGÁLAT ///////////////////////////////////////////
$info = ldap_get_entries($connect, $search1);
//echo("GG-server-Security")."<br>";
for ($i=0; $i<$info["count"]; $i++) {
//echo "". $info[$i]["samaccountname"][0]."<br>";
if($user == $info[$i]['samaccountname'][0])
{
$_SESSION['engedely_olvas'] = "1";
$_SESSION['engedely_ir'] = "1";
}
}
echo("<p>");
////////////////////////////////// VÉDELEM CSOPORT JOGOK ÉS VIZSGÁLAT ///////////////////////////////////////////
$info = ldap_get_entries($connect, $search2);
//echo("GG-server-SecurityServiceVedelem")."<br>";
for ($i=0; $i<$info["count"]; $i++) {
//echo "". $info[$i]["samaccountname"][0]."<br>";
if($user == $info[$i]['samaccountname'][0])
{
$_SESSION['engedely_olvas'] = "1";
$_SESSION['engedely_ir'] = "0";
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}
$_SESSION['user'] = $user;
?>"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
Sk8erPeter
nagyúr
válasz creation #8683 üzenetére
Uhh, kőkemény spagettikód-feeling, rossz hibakezelés (vagy épp egyáltalán nincs egyes if-ágakhoz tartozó else-ág). (Csodásan mutat az ezer éve deprecated CENTER tag és az a különálló magányos kis echo("<p>"); sor is. )
Mi az oka, hogy kutyulva van az NTLM-autentikáció és az LDAP-autentikáció? Itt egyébként ugye feltételezed, hogy a kliens által küldött headerök közt szerepel az Authorization, ami persze az NTLM-mel kell, hogy egyenlő legyen, ha a világvége fenyeget, akkor is. Ez mitől is garantált? De még ha az Authorization header jelen is van, nem kezeled le azt sem, ha az épp nem az NTLM-mel egyenlő, csak simán mész tovább. De akkor felmerül az is, hogy mi értelme az egésznek? A kliens simán beállíthatja akár üresre is az Authorization headert, a kódod megy tovább? Akkor korábban minek vártad el a jelenlétét?
Egyébként meg sehol nem látok még egy session_start() hívást sem.Szerk.: igazából csak gyorsan átpörgettem a kódot szemmel, különösebben nem elemeztem, de ennyi alapján nem csodálkozom, hogy furcsaságok vannak, meg más böngészőben nem műxik. Amúgy [link] (Understanding HTTP Authentication) - "NTLM - NT LAN Manager (NTLM) authentication is a challenge-response scheme that is a securer variation of Digest authentication. NTLM uses Windows credentials to transform the challenge data instead of the unencoded user name and password. NTLM authentication requires multiple exchanges between the client and server. The server and any intervening proxies must support persistent connections to successfully complete the authentication."
Az utóbbi két mondat érdekes.[ Szerkesztve ]
Sk8erPeter
-
creation
senior tag
válasz Sk8erPeter #8684 üzenetére
Mert ez a kód csak egy kódrész az egészből, azért nem látsz session_start();-ot...
Igazából az első részt nem is kellett volna bemásolnom, most így jobban belegondolva, mert az csak a db-ben való tároláshoz szükséges (felhasználó azonosítás)... Az NTLM ugyanis lefut minden böngésző alatt flottul, csak az ldap nem...
A csellengő echo és egyéb részek a több ember által írt kód eredményei... Ki meddig jutott a "fejl(v)esztéssel".
Szóval az ldap részénél hanyatlik el jelenleg az IE kivételével az összes böngésző amit eddig próbáltunk. Így nem értem, hogy mi lehet az ok és a megoldás...
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
Sk8erPeter
nagyúr
válasz creation #8685 üzenetére
És PONTOSAN melyik sornál is vérzik el? (Haladjunk má' ) Annál, amit itt írtál, vagy hol? Debuggoltad már a kódot? Az alapján, amit eddig írtál, nem. Nem ártana. Mindegyik esetet meg lehetne nézni külön-külön böngészőkben, annyira nem is nagy idő letesztelni mindet, és az IDE-t úgy beállítani, hogy épp másik böngészőben futkorásszon a kód. Meg kéne nézni, épp mi a különbség. A debuggoláshoz szükséged lesz az Xdebugra, meg annak konfigurálására. Hogy melyik verziót kell letöltened, azt az ide bemásolt phpinfo()-ból vagy php -i kimenetéből tudhatod meg.
Most ennyi alapján nincs jobb ötletem, mondom, vizsgálni kéne alaposan, hogy a kliens és szerver között pontosan milyen adatok utaznak, vagy mi történik, ami a különbséget okozza, hogy a büdös francban lehetséges, hogy egyáltalán az LDAP-autentikáció függ a használt böngésződtől, meg ilyenek, de kevés az infó, mi meg tesztelni nem tudjuk helyetted.Sk8erPeter
-
inf3rno
nagyúr
válasz creation #8683 üzenetére
Próbálj meg betenni egy favicon.ico fájlt, chrome általában azt keresi. De ez session-el kapcsolatos hibákat szokott csak eredményezni, amikor session-be mentesz adatot egy átirányítás erejéig. Ami különbség lehet még az a default doctype, ha nem adsz meg ilyet, illetve, hogy a nem szabványos HTML-t hogyan dolgozzák fel és hogy a karakterkódolás ütközésekre hogyan reagálnak, pl ha meta-ban mást adsz meg, mint header-ben, meg még van egy pár dolog...
Maga az ldap szerintem csak tünet, a probléma a kóddal van. Teszteletlen és átláthatatlan, valszeg hemzseg a hibáktól. Ha nem kenyered az oop, akkor is lehet elfogadható kódot írni procedurálisan. Azt hiszem a wordpress-nek ilyen a kódja.
Buliban hasznos! =]
-
inf3rno
nagyúr
válasz creation #8685 üzenetére
Echo helyett jó lenne, ha fellőnétek egy logger-t és csinálnátok egy debug mód-ot, ami loggol dolgokat. Az stdout nem loggolásra van. http://stackoverflow.com/questions/341154/php-logging-framework
Buliban hasznos! =]
-
inf3rno
nagyúr
válasz creation #8685 üzenetére
Ha esetleg később megismerkednél az ojjektum orientált fejlesztéssel, akkor érdemes ezt elolvasni: http://www.libri.hu/konyv/tiszta-kod.html és talán nem lesz olyan a kód utána, mint a falra hányt borsó.
Ami még elgondolkodtató, hogy BDD-t vagy TDD-t lehet e procedurálisan használni. Ha igen, akkor jobb lenne áttérnetek arra, mert a debuggal sokkal több idő elmegy. A gond most az, hogy még csak procedurálisnak sem igen lehet nevezni a kódot, mert függvények sincsenek. Spagetti, ahogy más is mondta. Így viszont max e2e tesztelhető legalább minimálisan.
[ Szerkesztve ]
Buliban hasznos! =]
-
inf3rno
nagyúr
válasz Sk8erPeter #8686 üzenetére
XDebug-al hogyan fogja megtalálni a hibát? Nekem eddig még sosem sikerült használható infot kifacsarnom belőle, csak egy rohadt nagy log fájlt csinál, amit ha megnyitsz, akkor kiírja, hogy az echot ezerszer hívta, stb. Én már nem PHP-zek, de gondolom neki biztosan segítene ez az info.
Buliban hasznos! =]
-
Sk8erPeter
nagyúr
válasz inf3rno #8690 üzenetére
"XDebug-al hogyan fogja megtalálni a hibát? Nekem eddig még sosem sikerült használható infot kifacsarnom belőle, csak egy rohadt nagy log fájlt csinál, amit ha megnyitsz, akkor kiírja, hogy az echot ezerszer hívta, stb."
Emiatt nem az Xdebug a hibás. Ezek szerint nem tanultad meg használni, meg nem tudod, mire való - nem logfájl készítésére, hanem debuggolásra, ahogy a nevében is benne van. Tudod, ahogy debuggolni szokás egy normális fejlesztőkörnyezetben. Igazából nem értem a kérdést. Úgy fogja megtalálni a hibát, hogy debuggol. Megnézi a változók aktuális értékeit, blablabla. Eclipse-szel, NetBeans-szel, PHPStormmal, meg más tisztességes fejlesztőkörnyezetekkel is tudsz PHP-kódot debuggolni, be kell konfigurálni pont úgy, ahogy a php.ini-ben is teszi az ember, nem egy nagy művészet, Gugli első pár találata megmutatja, hogy is kell.(#8687): A favicon hiánya nem tudom, milyen session-hibákat szokott eredményezni. Milyeneket?
A faviconnak, a doctype-nak, karakterkódolásnak semmi köze nincs a hibához, ezt már most megmondom.
A WordPress kódja meg szerintem minden, csak nem szép.Sk8erPeter
-
creation
senior tag
Holnap ha bent leszek megnézem amit írtatok és szólok, ha okosabb lettem...
"Mert Ő küld 100 csodát, csak Benne Bízz!"
-
artiny
őstag
hátha tudnatok segiteni, es valaki mas otlettel jon elo mint a javas topicban(erettsegi feladatok)
Olyan oldal,konyv letezik amivel magat a programozasnak az algoritmus megoldo kepesseget tudnam fejleszteni ? Szamomra fontos hogy ott legyen a megoldo kod sor is,ha el akadok. Egyszerubb feladatokkat keresek amivel fejleszteni lehetne magam....
-
BoB
veterán
Üdv
Linkelek a python topicból mert elég kihalt. Ha valaki tudja a választ, ne tartsa magában
[link]You may corrupt the souls of men, but I am steel. I am doom.
-
cech19960320
tag
sziasztok.
Adott egy Ltc Editor nevű program, mellyel egy PC játék szövegfájljait lehet szerkeszteni.
ez a program kezeli a .ltf kiterjesztésű fájlokat, és a régi típusú .ltc fájlokat, azonban az új típusúakat már nem.A kérdésem az lenne, van-e itt olyan ember, aki ezt a programot tovább tudná fejleszteni, ha adnék hozzá minden típusból fájlt és a programot?
én is így kaptam, sajnos nem értek hozzá(ismerőseim sem), az eredeti fejlesztője pedig már nem foglalkozik vele..
Előre is köszi! -
inf3rno
nagyúr
válasz Sk8erPeter #8691 üzenetére
Én loggolni szoktam az értékeket a megfelelő helyeken, aztán úgy nézem meg. Tudom, hogy van ennél jobb megoldás is, pl breakpoint-ot, hasonlókat be lehet tenni, de őszintén szólva nem sűrűn van rá szükségem. TDD-vel fejlesztek legtöbbször, ott meg az esetek döntő többségében azonnal tudni, hogy hol a hiba. Az integrációval szoktak gondok lenne, de annak meg jobb úgy nekifutni, hogy integrációs teszteket ír az ember ahelyett, hogy elkezdene dokumentáció alapján kódolni.
A session-nél a flash típusú letárolásokat szokta kitörölni, mert pl chrome minden kérésnél keresi a favicon-t, ha nincs bent neki cache-ben.
Nekem egyelőre egyáltalán nem világos, hogy mi a hiba, csak annyi, hogy valami nem működik, és nem hajlandó debuggolni, inkább csak találgat. Ennyi alapján szerintem nem lehet semmit kijelenteni.
Szvsz, a wordpress-t procedurálishoz képest nagyon szépen megcsinálták (már amit láttam belőle), minden kapott külön függvényt beszélő névvel, szóval ki lehet igazodni rajta. A dokumentációja is jó. Egyébként azért nem oo, mert még php4-en kezdték fejleszteni. Manapság már vannak symfony-ra meg laravel-re épülő cms-ek, azok valszeg egy fokkal összeszedettebbek. Annyira nem követem php-t, a symfony2 kódja az tetszett.
Buliban hasznos! =]
-
Sk8erPeter
nagyúr
válasz inf3rno #8697 üzenetére
"Én loggolni szoktam az értékeket a megfelelő helyeken, aztán úgy nézem meg. "
Így is lehet, de összetettebb probléma esetén gagyi megoldás. Egyébként a logolás és a debuggolás egyáltalán nem zárja ki egymást, sőt."TDD-vel fejlesztek legtöbbször, ott meg az esetek döntő többségében azonnal tudni, hogy hol a hiba"
Ez oké, tök jó, meg minden, de ha megkapsz egy meglévő kódot, ami nem TDD alapján készült, akkor annak nem esel neki, és írod át azonnal úgy, hogy megfeleljen a szokásaidnak, és aztán majd elég legyen logolgatnod itt-ott-amott. Hanem debuggolsz. A kolléga kódját is jóval gyorsabb lenne végigdebuggolni, mint most tisztességes módon átírni. (Igaz, az általa mutatott kódot átírni sem nagy szám, például betenni normális hibakezeléseket, meg ilyesmi.)"A session-nél a flash típusú letárolásokat szokta kitörölni, mert pl chrome minden kérésnél keresi a favicon-t, ha nincs bent neki cache-ben."
De ennek most semmi köze nincs a problémához."minden kapott külön függvényt beszélő névvel"
Tyű. Tudom, hogy mitől OO, attól, amitől a Drupal is. Fejlesztettem huzamosabb ideig Drupalban, tisztában vagyok a lehetőségeivel, azzal, hogy milyen módon tudja gyorsítani a fejlesztést, ha valaki már ismeri, meg csomó kényelmes dolog is van benne, de egyben széjjel is tudom fikázni pont amiatt, mert ismerem a zavaró dolgaival együtt. Annak sem szép a kódja attól még, mert "minden kapott külön függvényt beszélő névvel"... Például zavaró, hogy keveredik a procedurális kód az OO-val, nem konzisztens a struktúra. Ettől még egyébként azon is ki lehet igazodni, követhető a kód. De a szép kód nem azt jelenti, hogy beszédesek a függvények nevei. A WordPress-ről csak nagyon felületes ismereteim vannak, de láttam már hozzá készült plug-ineket, meg a core kódját is valamennyire, nem volt szép, de valóban ki lehet igazodni rajta.Sk8erPeter
-
cech19960320
tag
válasz cech19960320 #8696 üzenetére
valaki?
-
inf3rno
nagyúr
válasz cech19960320 #8696 üzenetére
Ez szerintem erősen függ attól, hogy milyen nyelven írták a programot.
(Ha esetleg nem bináris, hanem szövegfájl, akkor notepad++-al meg tudod nyitni, ellenkező esetben meg tényleg szükséged van külön programra.)
[ Szerkesztve ]
Buliban hasznos! =]
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Alapértelmezett konfiguráción sok Core CPU-nak lehet stabilitási gondja
- Kerékpárosok, bringások ide!
- Azonnali alaplapos kérdések órája
- Fűnyíró topik
- bb0t: Gyilkos szénhidrátok, avagy hogyan fogytam önsanyargatás nélkül 16 kg-ot
- Lightyear - befektetési app
- PlayStation 5
- Társasjáték topic
- Politika
- További aktív témák...
- Panasonic Lumix G X VARIO 12-35mm f/2.8 II ASPH. Power O.I.S. (H-HSA12035)
- 2db Iceriver KS0 KASPA bányagép + 180W új tápegység 2 év garanciával.
- Panasonic Lumix DC-G9 (V-Log L kiegészítéssel, 4 akkuval)
- Commlite CM-EF-NEX Auto-Focus Adapter (Canon EF - Sony E)
- Üzletből, garanciával, legújabb Asus Vivobook 17" i7-1355U 10 mag 5GHz/16RAM/1TBSSD/17,3"FULLHD
Állásajánlatok
Cég: Ozeki Kft.
Város: Debrecen
Cég: Promenade Publishing House Kft.
Város: Budapest