1 2 3 4 5 6 | foreach ($brows as $g => $r) { if ($t['Parent'] == $g) { ?> |
Dan is het toch voldoende om $_SERVER['HTTP_USER_AGENT'] op te slaan bij iedere request?quote:Op zondag 10 februari 2008 20:16 schreef Chandler het volgende:
[..]
Ja ja Brouwser![]()
Maaruh gewoon, ik wil deze statistieken bewaren
Is dat niet nog simpeler? Enkel de browser-string opslaan, en pas bij het uitlezen deze "encoden" ?quote:Op zondag 10 februari 2008 23:01 schreef Chandler het volgende:
Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!
Ps. Is het handig om alle data zoals, dag, maand, jaar, cookies, plugins, referer, zoekwoorden en dergelijke infomatie in 1 tabel te zetten of is het handiger om dit in apparte tabellen te zetten?
Die functie werkt toch ook op basis van de browserstring? Dus meer heb je echt niet nodig.quote:Op zondag 10 februari 2008 23:01 schreef Chandler het volgende:
Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!
Er zijn legio plugins voor FireFox waar je het mee kan doen, ikzelf gebruik "Modify Headers", kan je alles zelf invullenquote:Op zondag 10 februari 2008 23:47 schreef Light het volgende:
[..]
Die functie werkt toch ook op basis van de browserstring? Dus meer heb je echt niet nodig.
Trouwens, een browserstring is manipuleerbaar. Je kunt er geen 100% garantie uit halen. Ik heb zo snel geen voorbeeld van een programma waar je die string volledig zelf kunt bepalen, maar er zijn vast wel van die programma's.
Edit: Je hebt realtime statistieken die je aanbied oid? Dan schiet het inderdaad niet op.quote:Apache/2.0.59 (Unix) mod_perl/1.99_17-dev Perl/v5.8.6 mod_ssl/2.0.59 OpenSSL/0.9.8e PHP/5.2.3 Server at www.ericbruggema.nl Port 80
Het is niet handig om dat nu allemaal op te slaan. Ten eerste ga je nooit al die info nodig hebben of gebruiken en ten tweede hoef je niet alles te berekenen - sla alleen de data op waaruit je de info kan destilleren,gewoon in ruwe vorm. Dan maak je later wel een scriptje om de benodigde velden te berekenen. Als je het on the fly gaat bereken met dat scriptje dat je hebt gepost dan trek je de server snel op zijn bek denk ik.quote:Op zondag 10 februari 2008 23:01 schreef Chandler het volgende:
Ik heb nu een functie gemaakt die idd de meest gangbare browsers detecteerd, maar om er zeker van te zijn ga ik nu ook gewoon de browser string opslaan!
Ps. Is het handig om alle data zoals, dag, maand, jaar, cookies, plugins, referer, zoekwoorden en dergelijke infomatie in 1 tabel te zetten of is het handiger om dit in apparte tabellen te zetten?
Deze vraag is al vaker langsgeweest, ook op Tweakers.... dus met even zoeken moet je er wel komenquote:Op maandag 11 februari 2008 08:04 schreef Chandler het volgende:
@Iedereen; het scriptje dat browscap.ini parst ga ik niet gebruiken. Aangezien het toch nogal wat preformance vraagt van de server. Ik doe nu gewoon 2 dingen voor mijn statistieken script. 1 is de $_SERVER['HTTP_USER_AGENT'] opslaan plus dat ik deze string op een paar bekende browsers check, en deze sla ik ook weer op.
Iemand nog een antwoord op mijn gebruik van de database? is dit te behappen wat ik doe of moet ik apparte tabellen voor alle onderdelen gebruiken?![]()
[PHP/(My)SQL] voor dummies - deel 55
Draait de webserver toevallig in hetzelfde domain als waar de gebruikers ingelogd zijn?quote:Op maandag 11 februari 2008 11:52 schreef Swetsenegger het volgende:
Daar ben ik weer eens.
Momenteel ben ik met een scriptje bezig waarbij de pagina die je voorgeschotelt krijgt afhankelijk is van welk persoon de pagina bekijkt. Nu kan ik dat uiteraard met een login script doet, maar aangezien het nogal vaak gebruikt moet worden is dat niet erg gebruiksvriendelijk.
Nu zit ik hier op het bedrijfsnetwerk en zijn mensen uiteraard al ingelogd. LDAP dus.
Ondertussen kan ik al info uit de LDAP server lezen, maar ik wil nu de credentials waar mensen mee zijn ingelogd vergelijken met de server om te authenticeren. Maar..., ik dnek dat ik het niet goed benader, want je credentials worden denk ik niet in de header info meegestuurd ofzo? Is dit uberhaupt mogelijk?
1 2 3 | $_SERVER['LOGON_USER'] ?> |
1 2 3 | $_SERVER['AUTH_USER'] ?> |
Hij draait in hetzelfde domain, onder apachequote:Op maandag 11 februari 2008 12:02 schreef Geqxon het volgende:
[..]
Draait de webserver toevallig in hetzelfde domain als waar de gebruikers ingelogd zijn?
[ code verwijderd ]
of
[ code verwijderd ]
is dan een optie. Werkt enkel onder IIS, voor Apache heb je mod_ntlm nodig.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | require_once('includes/dbconnector.class.php'); $connector = new DbConnector(); if(isset($_SESSION['user_id'])) { //Login correct, update lastactive in db $connector->query("UPDATE cmsusers SET lastactive=NOW() WHERE id='".$_SESSION['user_id']."'"); } else{ if(isset($_COOKIE['user_id'])) { $result = $connector->query("SELECT pass,thegroup FROM cmsusers WHERE id='".$_COOKIE['user_id']."'"); $row = $connector->fetchArray($result); $dbpass = $row->pass; $dbstatus = $row->thegroup; if($dbpass == $_COOKIE['user_password']) { $_SESSION['user_id'] = $_COOKIE['user_id']; $_SESSION['user_status'] = $dbstatus; } else { setcookie("user_id", "", time() - 3600); setcookie("user_password", "", time() - 3600); echo "Cookies incorrect. Cookies verwijderd."; header("Location: login.php"); } } else{ //Hij blijft hierheen gaan header("Location: login.php"); } } ?> |
Ik had alles blijkbaar al eens geconfigureerd, en de login is nu transparant (met IE, met elke andere browser krijg je gewoon een login prompt). Maar.... ik wil nu de username terug vinden van degene die op de pagina zit. De suggesties van geqxon geeft niets terug en ook $_SERVER['PHP_AUTH_USER'] geeft niets terug.quote:Op maandag 11 februari 2008 13:16 schreef fokME2 het volgende:
@Swetsenegger: Met LDAP authorisatie heb ik ook eens gespeeld en het werkte goed. Ik dacht dat ik er een classe voor had gebruikt. Misschien dat ik het thuis nog kan vinden.
Nee, de authenticatie op zich werkte al, ik kon alleen nog niet achterhalen wie de ingelogde gebruiker was. In principe mag elke gebruiker van het domein op die pagina komen, maar afhankelijk van de gebruiker kan het zijn dat je andere opties hebt.quote:Op maandag 11 februari 2008 13:58 schreef Geqxon het volgende:
Swets, wat mij bij staat is dat als je de boel met .htaccess en .htpasswd beveiligd, dat Internet Explorer dan eerst met de username en password van de domein-gebruiker in probeert te loggen. Misschien een optie?
Laat de login.php eens zien, want volgens mij set je je cookies niet goed.quote:Op maandag 11 februari 2008 13:40 schreef Tarabass het volgende:
Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:
[ code verwijderd ]
Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend
ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
1 2 | header("Location: login.php"); |
Waarschijnlijk gaat het ophalen van de sessie data niet goed in je safe include. Initialiseer je de sessie wel goed?quote:Op maandag 11 februari 2008 13:40 schreef Tarabass het volgende:
Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:
[ code verwijderd ]
Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend
ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
De login gebruikt een functie in een class om in te loggen en eventueel cookies te zetten.quote:Op maandag 11 februari 2008 14:18 schreef Dzy het volgende:
[..]
Laat de login.php eens zien, want volgens mij set je je cookies niet goed.
Edit: En dit gaat uiteraard ook niet werken:
[ code verwijderd ]
Want een header sturen na output is natuurlijk te laat.
Dat is inderdaad de bedoeling. Maar omdat het niet werkte ben ik eerst een stap terug gegaan naar een losse file waarin gecheckt wordt of de sessie wel bestaat. De functionaliteit komt inderdaad in een functie in de sentry-class die ik dan bovenaan de pages aanroep. Maar nogmaals, classes zijn nieuw voor mij en daarom probeer ik eerst op een manier wat duidelijk voor mij is de code uit.quote:Op maandag 11 februari 2008 14:22 schreef Farenji het volgende:
[..]
Waarschijnlijk gaat het ophalen van de sessie data niet goed in je safe include. Initialiseer je de sessie wel goed?
Die safe include is overigens niet echt oop.
Het idee achter OOP is dat je functionaliteit groepeert in logische bouwblokken waaruit je je applicatie opbouwt. Het is dan logisch om een session class te maken, waar je alle session management in regelt. Eventueel zou je die sessie class deel kunnen laten uitmaken van de user class (als in: wel aparte classes maar een user object bevat/encapsuleert een session object). Het idee is dan dat je een objectmethode maakt (bijv $user->isLoggedIn()) die je overal kan gebruiken. Deze methode van de class user kijkt dan in de sessie (maw in het sessie object dat in het user object zit) van betreffende user of alles ok is en geeft dan een 1 (ingelogd) of een 0 (niet ingelogd) terug. Aan de hand daarvan kun je dan de gevraagde pagina tonen of redirecten naar de loginpagina.
Geeft inderdaad NULL, terwijl de linkjes in het menu in het if(isset($_SESSION['user_id'])-statement wel worden weergegeven :Squote:Op maandag 11 februari 2008 14:34 schreef Dzy het volgende:
Als de sessie daadwerkelijk zou bestaan zou hij niet naar login.php gaan. Doe eens een var_dump op $_SESSION en op $_COOKIE boven de if-then-else constructies.
Nee, ik weet al waar het in zat. De session werd gestart in de constructor van de sentry-class, maar die had een verkeerde naam. Nu werkt alles zoals het moet. Erg bedankt voor het meedenken want zo wist ik welke richting ik op moest zoekenquote:Op maandag 11 februari 2008 15:41 schreef Dzy het volgende:
Werd er niet per ongeluk al output gegenereerd? (Denk het niet want dan zou je header redirect ook niet werken maar je weet het maar nooit). Kan ook whitespace zijn.
1 2 3 4 5 6 7 | WHERE id NOT IN ( SELECT id FROM foo ORDER BY created DESC LIMIT 10 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | function getLine($page, $keyword, $pattern) { foreach ($page as $line_num => $line) { if(strstr($line, $keyword)){ if(ereg($pattern, $line, $output)){ $result = $line_num; } } } return $result; } // URL van de pagina die doorzocht moet worden $url = "http://auto.marktplaats.nl/audi/132476134-150x-audi-a3-a4-a6-tdi-golf-4-5-tdi-benzine-seat-leon-tdi.html?return=eJwdyEEOgyAQheG7mOiuIJIuxBhDb0KURiLIhBmTpk3v3qGbme9%2FzijzCaaf0Ki7Mg16V9Z92onASHlk8KdIrhwE0TlCcUbpLso35LcFuY5a7JTi8oqz6jacKbfaqlY%2FIh87%2FjVU6SpivQMw8bkhBwvq2DMS7%2Fa8ki9h5cwYuIcO4Jr7Zvr%2BAA4JNF8%3D&fta=eNptVm1uGzkMvcv86G%2FxSxQ1yBX2CoFRp10DTmLETje7Qe5ejuiRVGBRIGheKJKPfCTnUEv9vPqP5f3t%2FPjrcL4uq%2F8qdfk4P8C34%2FXh9lphPUM1%2F4nVaD3f6n%2Bny3r9cbzW9XKraX2%2B1Jf356e30%2Ff1%2FFGREpmt53%2BrYC6E6%2Bv1VPHb5fL%2BkDbnXJfL4efTsp7c8bVSXU5Hj3qokKh%2BntzftVpdgJA1A%2FFuuGGOFEoFNgx3OyZjQ9ww6naKRilvGO9Y9oeU2luZ7LLG2zxjSLJhuscQIvEoG1Z2Oyol59Ji2PQWC2vLeSfCnjUxBpHOhPw5SoA4WeaC1MDORVjBCTawkwFk49SShIkNmHJYdjqIbgwtddBumYATRZ6dEEKyogHujJBLLqW0QNgZpYyg1vLEzsgdkFe5gZ2RgKjlFh07I1A1k9LAzkjZgCh8zowYc%2FicGgRkUU%2FUP5K%2F%2B%2ByMMmQQaAVBG3mqsjZL6oxcsm4YItoZEWlJrsMG4oievCQtT6KhBXMdtjypMxIyUAiwM3K5qVJEzyNPcbU2RqRDIQRQInoZfUeQFNE7I05IaO05pylPL12rPMMfeQZN7oxQsfifGjgYKakEd%2B6MCF3yGpajR5i8nG2ueDAyTUnj%2BaQ6E5YmMC4TqG7dwJ0RFSWy0qokQ3VIHijAzojZhHJ7LqNH2ew%2BMtIZ5eLMpSlZOiMvvc9hamBnJEmdaWyKPGTjC4rjuQ4li9cvno%2FFQFuRIs%2BhOvHB5tajnOYWl1hxecyR7ymJPZXHZrDs%2FWyVzzTRlBJTnHkabSixGfLOyIWYwCB8jh7l5AsjwM4oS1aOec9ltMPdcmOUbci7METjNE0poUrTvMLw6XoIeStOYGFqpVOaQGVqKSnPzzWUrDJbQmot1s6IuKQcI6M6gwUjzzKDEHOkNoMYNMvoEXjqsVjKdIcsSYih9EOUIXGOFpcxRwSC1miWoTp2IUJYDkbmF4rixuReedmSj%2BidkfcS%2FV8Dy3Qafau20pXBKPkaCJqWRuOEOU6PzZdVfEIaOHrki94XYwNptqQ4E8b9QLrs7sNlMhaLOB4%2Bp81QXLOR0pij7NA9z3GPkGw%2FsPY%2FXwCQ0uzUBzzQaZJE7mvVpTI8%2BCxu%2BX9d%2FcrW5fZ6ORyvj%2Benl5%2B3v%2FevCEh1%2Bf7%2B9vZ4ejk%2BfWzoPdbz4eNx%2B37xT5ZjbHCsy%2BGfZf3r%2Ft9f27dMqp9fX78BmNgwHA%3D%3D&fta_ind=1&df=1"; // Naar welk begindeel moet er worden gezocht: $search1 = 'Vermogen'; // Naar welk einddeel moet er worden gezocht: $search2 = 'Cylinderinhoud'; // Wat moeten er van die regel worden opgenomen: // Het patroon maakt gebruik van reguliere expressies //$pattern = '.*'; $pattern = '.*.'; ////// $lines = file($url); $begin = getLine($lines, $search1, $pattern); $end = getLine($lines, $search2, $pattern); for($i=$begin; $i < $end; $i++) { echo $lines[$i]; } ?> |
Handig!quote:Op maandag 11 februari 2008 20:42 schreef SuperRembo het volgende:
[ code verwijderd ]
(Als je niet een hele oude MySQL versie gebruikt)
"created? Geniaal, die maakte ik normaal altijd zelf.quote:Op maandag 11 februari 2008 20:42 schreef SuperRembo het volgende:
[ code verwijderd ]
(Als je niet een hele oude MySQL versie gebruikt)
En die noem ik dus meestal created en modifiedquote:Op maandag 11 februari 2008 21:51 schreef Geqxon het volgende:
O, ik dacht dat MySQL dat veld altijd zelf aanmaakt. In dat geval hou ik het wel zoals ik het nu doe, een veld date_added en een veld date_updated.
Geen probleem. Blij dat het gelukt is.quote:Op maandag 11 februari 2008 18:55 schreef Tarabass het volgende:
[..]
Nee, ik weet al waar het in zat. De session werd gestart in de constructor van de sentry-class, maar die had een verkeerde naam. Nu werkt alles zoals het moet. Erg bedankt voor het meedenken want zo wist ik welke richting ik op moest zoeken
Je hebt het al opgelost, maar er zijn toch nog een paar puntjes waar je op kunt letten:quote:Op maandag 11 februari 2008 13:40 schreef Tarabass het volgende:
Zoals ik al eerder in dit topic aangaf ben ik bezig met een oop-cms. Alles gaat lekker alleen loop ik tegen een probleempje aan. Inloggen gaat goed, session-variables worden geset, en de user wordt doorgestuurd naar de index page. Daar include ik een 'safe-file' die check of de session is aangemaakt, die safe.php ziet er zo uit:
[ code verwijderd ]
Echter blijft de safe-file redirecten naar de login-page. Ik heb getest of de session is geset en dit is zeker weten het geval. Zien jullie wat ik verkeerd doe, want dit is erg frustrerend :(
ps: Heb deze manier van werken al in een andere website gebruikt en daar werkte het perfect. Met een safe.php en een safe_admin.php beveiligde ik de pages, met een redirect naar login.php. Dit was echter wel zonder classes..
1 2 3 4 5 6 7 | $result = $connector->query("SELECT pass,thegroup FROM cmsusers WHERE id='".$_COOKIE['user_id']."'"); $row = $connector->fetchArray($result); $dbpass = $row->pass; $dbstatus = $row->thegroup; ?> |
En als ik nu wel een iets te oude versie hebquote:Op maandag 11 februari 2008 20:42 schreef SuperRembo het volgende:
[ code verwijderd ]
(Als je niet een hele oude MySQL versie gebruikt)
Dan moet je eens kijken naar de mogelijkheden om te upgradenquote:Op dinsdag 12 februari 2008 07:44 schreef Chandler het volgende:
[..]
En als ik nu wel een iets te oude versie heb
Dan moet je het in 2 aparte queries doen: eerst een lijst van de recente records ophalen, en deze vervolgens wissen in een tweede query. Veel queries met subqueries kun je herschrijven tot een enkelvoudige query, maar bovenstaande is een goed voorbeeld waar dat niet kan.quote:Op dinsdag 12 februari 2008 08:30 schreef Chandler het volgende:
True True! maar als die mogelijkheid er nu niet is?
Loginsysteem met challenge-response systeem, sessie management en verschillende userrollen?quote:Op dinsdag 12 februari 2008 13:24 schreef saban het volgende:
* saban heeft nog steeds genoeg vrije tijd over om iets te bouwen .. ben er nog steeds niet uit 'wat'
Gastenboek? Heb je binnen paar uur klaar.
Factuursysteem? Kan, lijkt me leuk met FPDF bijv..
More?
quote:Op maandag 11 februari 2008 20:45 schreef BaggerUser het volgende:
hoi,
ben aan het proberen om advertenties van marktplaats uit te lezen en op die manier ook op een eigen site te zetten (anders moeten ze altijd twee keer worden toegevoegd op twee verschillende sites en dat is nogal een werk.
ik heb op dit moment dit:
[ code verwijderd ]
probleem waar ik mee zit (ik heb even een willekeurige advertentie gepakt, zie link in script)
is dat ik de bovenste info wel kan uitlezen , maar de onderste info (in het 2e kopje dus oa die met cyllinderinhoud) niet. iemand enig idee hoe dat kan?
sowieso, niet iemand die een minder omslachtige manier weet?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |