Logging.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Wordt als .NET developer mede-eigenaar van deze or

Bedrijfsomschrijving Voor mijn klant in de omgeving van Breda ben ik op zoek naar een back-end developer. Deze klant is al jarenlang een grote speler in de gamewereld; ze bestaan ondertussen ruim 10 jaar en hebben wereldwijd meer dan een miljoen spelers! Op dit moment zijn ze bezig met het opzetten van een nieuw project. Dit project zal over een aantal jaar worden verkocht en voor zolang als dat je er aan werkt bouw je aandelen op van het bedrijf. Door aan het project te werken wordt je zo indirect ook mede-eigenaar van het bedrijf. De opbrengst van dit project

Bekijk vacature »

PHP Developer

Dit ga je doen Als PHP Developer ben je verantwoordelijk voor: Het ontwikkelen en onderhouden van nieuwe mobiliteitsoplossingen en actief meedenken met de IT-architectuur. Het zorgen voor een snel, gestructureerd, solide, en goed draaiend softwaresysteem; Het ontwikkelen van Software volgens de Scrum methodiek, met stand ups, refinements en planning sessies; Het meedenken over hoe het applicatielandschap continu verbeterd en uitgebreid kan worden. Hier ga je werken Deze organisatie, gesitueerd in de omgeving van Leusden heeft als missie om mobiliteit toegankelijk te maken voor iedereen. Deze missie realiseert zij door het ontwikkelen van diverse producten en dienstverleningen. Deze producten en dienstverleningen

Bekijk vacature »

Fullstack Developer

Bedrijfsomschrijving Yacht is a Randstad company. Randstad is a global leader in recruitment and human resource solutions. Founded in the Netherlands in 1960, we are now active in over 40 countries and we employ more than 29,000 people. We provide employment opportunities for 576,000 people every day. When you join Yacht, you can call on our extensive network of highly trained and experienced professionals. Yacht leads the way in connecting professionals. We offer challenging projects and jobs with inspiring organizations such as Siemens, ASML and Philips. For you, joining Yacht will be the start of building a large and powerful

Bekijk vacature »

Full-Stack Software Developer (junior / trainee)

Functie­omschrijving Ben jij een startende en leergierige developer in een Blueriq omgeving? Wil je T-shaped (leren) werken voor de Jeugdketen? Dan komen we graag met je in contact. Spreekt deze vacature aan maar heb je nog niet voldoende kennis en ervaring? Samen ontwikkelen we je dan naar dit niveau toe. Wat ga je doen? Samen met je collega’s ben je verantwoordelijk voor het doorontwikkelen van de applicaties: Generiek Casusoverleg Ondersteunend Systeem (GCOS) en Intelligente Formulierenmodule (IFM). Dit is vanaf refinement, het ontwikkelen en testen van de dienst, het demonstreren van de functionaliteit, tot en met de implementatie en de (technische)

Bekijk vacature »

.NET Developer Senior

Dit ga je doen Het ontwikkelen van backend applicaties in C#; Het maken van vele koppelingen met andere ERP-applicaties zoals JD Edwards en SAP; Je bent (mede) verantwoordelijk voor het opstellen van technisch ontwerpen voor de te ontwikkelen software oplossingen; Je bent gemiddeld 90% van je tijd inhouse oplossingen aan het ontwikkelen en testen. De overige 10% van je tijd ben je bij klanten op locatie om oplossingen te implementeren, klanten te begeleiden en de software verder te innoveren; Naast het zelfstandig ontwikkelen van software oplossingen ben je ook bezig met het waarborgen van je contacten bij de klant, het

Bekijk vacature »

Medior PHP Developer

Bij Getnoticed doen wij wat we leuk vinden, websites bouwen en online marketing. Voor veel van onze klanten doen we dan ook allebei. Wel zo fijn om campagnes te draaien voor conversiegerichte website die in eigen beheer zijn. In onze vestiging in Nederweert zitten onze development afdelingen en worden de websites gebouwd. Op dit moment zijn we op zoek naar jou: dé PHP/Back-end developer die net als wij, het hoofd boven het maaiveld durft uit te steken! In het kort Even een paar punten die omschrijven wat deze toffe baan inhoudt: Het bedenken van nieuwe functionaliteiten Het verbeteren van het

Bekijk vacature »

Freelance applicatieontwikkelaar (zzp)

Belastingdienst B/cao Startdatum : 2-1-2023 Tijdelijke functie, met optie op vast Aantal uren per week : 36 Standplaats in overleg : Apeldoorn Applicatieontwikkelaar bij het Ministerie van Financiën- Belastingdienst We zoeken een consultant/developer met ervaring in de ontwikkeling van back-end systemen. Als consultant heb je kennis en ervaring met de wijze waarop Open Formulieren is opgezet. Je bent een vraagbaak voor collega’s en deelt waar nodig je kennis. Je hebt ervaring met het werken in een open source omgeving. Je bent thuis in verschillende frameworks of je kunt je die snel eigen maken. Je hebt aantoonbaar ruime kennis van en

Bekijk vacature »

Medior .NET Ontwikkelaar

In het kort Als .NET ontwikkelaar ga je binnen onze business unit Transport en Logistiek aan de slag complexe maatwerk software voor bedrijf kritische systemen binnen de technische automatisering. Denk bijvoorbeeld een IoT-oplossing voor de logistieke sector waarbij we van ruim 200.000 machines de telemetrie en events verwerken. We zijn actief in de distributielogistiek, havenlogistiek en productielogistiek. Naast C# en .NET Core maken we ook gebruik van Azure technologie. En als trotse Microsoft Gold Partner leren we graag van en met jou. Wil jij jezelf blijven ontwikkelen binnen de technische automatisering met .NET, dan gaan we deze uitdaging graag met

Bekijk vacature »

Java-softwaredeveloper

Wat je gaat doen: Dit ga je doen Daar kunnen we heel kort over zijn: software ontwikkelen met de agile-/scrumteams van toonaangevende organisaties. Zoals ministeries, gemeentes, financiële instellingen en retail- en energiebedrijven. En als het bij je past, begeleid je collega-developers in het ontwikkelproces. Doordat je tijdelijk aan een opdracht werkt, doe je in korte tijd veel mooie ervaringen op en leer je nieuwe technieken en tools kennen. Je teamleden werken bijvoorbeeld met Spring, JPA/Hibernate, AJAX, REST/JSON, GIT, AWS en TDD. Het interessante is dat jij volledig in control bent en zelf kiest welke opdrachten je oppakt. Het soort rol,

Bekijk vacature »

Freelance senior Programmeur (zzp)

Dienst Uitvoering Onderwijs Uren per week: 36,00 Standplaats: Groningen Max tarief: € 90,00 Startdatum inzet: 2-1-2023 Einddatum inzet: 1-1-2024 Wat doen we voor werk momenteel? Nieuwe applicaties: We bouwen nieuwe applicaties voor inwinnen B3/B4 scholen. Deze scholen kunnen inschrijvingen via een website aanleveren per keer of meerdere inschrijvingen via bestand. Deze inschrijvingen leggen we vast en ze kunnen ook beheerd worden. Moderniseren: Daarnaast hebben we zoals alle andere teams ook een flinke migratie voor de boeg om in de Cloud te landen. Eén applicatie (AVOID) hebben we al succesvol gemigreerd en deze draait bijna in PRD. De grootste uitdaging voor

Bekijk vacature »

Medior Frontend developer

Wat je gaat doen: Of beter nog, wat wil jij doen? Bij DPA GEOS werken onze consultants als Frontend Developer in Agile teams bij onze klanten en zijn ze verantwoordelijk voor de grotere webapplicaties. Wil jij dit ook, want we zijn op zoek naar enthousiaste Frontend Developers om ons development team te versterken. Je draagt positief bij aan de teamgeest binnen een projectteam je kijkt verder dan je eigen rol. Eventueel begeleid je ook andere ontwikkelaars in het softwareontwikkelproces. Je gaat webapplicaties maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit

Bekijk vacature »

Freelance senior ICT ontwikkelaar (zzp)

Belastingdienst B/cao Startdatum inzet: 9-1-2023 Einddatum inzet: 31-12-2023 Uren per week: 36,00 Standplaats: Apeldoorn Max tarief: € 86,00 Team LIV is op zoek naar een enthousiaste, flexibele, multitaskende en hands-on ontwikkelaar met veel ervaring in het gedeeltelijk of volledig zelfstandig bepalen van ontwikkel- en realisatie aanpak. Onze nieuwe collega moet in staat zijn te werken in een hectische omgeving waarbij er sprake is van zeer verschillen realisatietrajecten voor wat betreft(technische)diepgang, startmoment (wel/geen beschrijvingen beschikbaar) en klantcontact. De gekozen ontwikkelmethodiek dient passend te zijn voor het op te lossen vraagstuk waarbij samenwerking met de testengineer in relatie tot Systeem integratie test

Bekijk vacature »

Traineeship Mendix Developer

Wat wij bieden Een goed salaris dat meegroeit met je ervaring binnen het Young Professional programma; Thuiswerkmogelijkheden, als het past voor onze klant; Uitgebreide trainingsmogelijkheden aan de Ordina Academy; Je komt in een trainingsgroep van meerdere Young Professionals. Samen volg je trainingen, deel je ervaringen, speel je een potje tafelvoetbal en drink je na afloop gezellig een borrel (wanneer dat weer kan!); Een onvergetelijke start van je carrière met de kans om snel te leren in een ontzettend leuk team van collega’s; 20 wettelijke vrije dagen per jaar en 7 aanvullende vrije dagen via flex benefits; Keuze tussen een leaseauto

Bekijk vacature »

Java-softwaredeveloper

Wat je gaat doen: Dit ga je doen Daar kunnen we heel kort over zijn: software ontwikkelen met de agile-/scrumteams van toonaangevende organisaties. Zoals ministeries, gemeentes, financiële instellingen en retail- en energiebedrijven. En als het bij je past, begeleid je collega-developers in het ontwikkelproces. Doordat je tijdelijk aan een opdracht werkt, doe je in korte tijd veel mooie ervaringen op en leer je nieuwe technieken en tools kennen. Je teamleden werken bijvoorbeeld met Spring, JPA/Hibernate, AJAX, REST/JSON, GIT, AWS en TDD. Het interessante is dat jij volledig in control bent en zelf kiest welke opdrachten je oppakt. Het soort rol,

Bekijk vacature »

E-commerce Developer

Wil jij als Solution Architect Salesforce meebouwen aan onze E-Commerce oplossingen? Wil jij meer doen dan alleen configureren? We bouwen in onze digitale fabriek aan een platform om VDL bedrijven te digitaliseren. E-commerce speelt daarin een belangrijke rol. Agile en scrum zijn voor jou gesneden koek, want je wil net als je collega’s van het VDL Digital team snel vooruit om resultaat te boeken. In een multidisciplinair team ontwikkel je mee aan het E-Commerce platform voor de ruim 100 bedrijven binnen VDL Groep. Een mooie uitdaging! Jij wordt gelukkig van E-Commerce: Je bent als Solution Architect Salesforce onderdeel van het

Bekijk vacature »

Pagina: 1 2 volgende »

Chris PHP

Chris PHP

10/05/2012 08:14:05
Quote Anchor link
Heey,

Ik ben bezig om zelf een 'simpele' CMS te schrijven voor 2 projecten die ik nu heb. Het moet de bedoeling zijn dat dit CMS uiteraard uitgebreid wordt naarmate er de tijd voor is. Het CMS moet nu een aantal simpele taken kunnen doen.

- Een artikel aanmaken
- Een artikel bewerken
- een artikel verwijderen
- WYSIWYG editor voor dit alles (genoeg opensrouce versies beschikbaar)
- Loggen wie er wat doet.

Nu heb ik de eerste 4 punten wel onder de knie, echter wil ik een logging systeem maken waar er bijgehouden wordt wie er wat doet.

Ik moet wil de volgende punten terug kunnen zien

- IP adres van de gebruiker (makkelijk via $_SERVER['REMOTE_ADDR'] lijkt me)
- Welk bericht hij heeft aangemaakt, bewerkt of verwijderd
- Het tijdstip waarop dit is gebeurd

Mijn idee lijkt het om deze informatie in een nieuwe tabel te zetten, voor get gemak even logging gemoemt. Ik heb hier dus het ID van de gebruiker uit het tabel 'users' nodig, waaraan ik deze info koppel.

Mijn vraag is eigenlijk, heeft iemand enig idee hoe dit slim aangepakt kan worden? Het IP adres, datum en ID is geen probleem, echter hoe ik kan zien wat hij nu aangemaakt, bewerkt of verwijderd heeft ligt me wat moeilijker.

Kan ik dit gewoon na een van die drie acties een mysql_affected_rows() gebruiken? Maar hoe kan ik nu zien of er een UPDATE, INSERT of DELETE is uitgevoerd?

Alvast hartelijk dank voor de input.
 
PHP hulp

PHP hulp

03/02/2023 10:17:05
 
Gerhard l

gerhard l

10/05/2012 08:19:35
Quote Anchor link
Je weet ja wat de user gedaan heeft, je hebt waarschijnlijk waarschijnlijk voor alle 3 een apart stuk code. dan doe je iets van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?
switch($actie){
    case
'insert':
        //insert code hier
        $log = 'insert';
    break;

    case
'update':
        //update code hier
        $log = 'update';
    break;
    
    case
'delete':
        //deletecode hier
        $log = 'delete';
    break;
}

// en dan maak je hier een functie of iets van
loggin($_SESSION['id'], $artikel_id, $log); //(er bestaat al een php functie log ;p)
?>
Gewijzigd op 10/05/2012 08:24:03 door gerhard l
 
Chris PHP

Chris PHP

10/05/2012 08:24:17
Quote Anchor link
Gerard,

Ik neem aan dat je de code niet in je switch statement zet!? Als ik een swtich gebruik zet ik waar jij //.... code hier neerzet, zet ik bijv insertArticle(); waar ik na de switch de functie insertArticle(); maak.

Maar dank je voor het idee, ik had hier nog niet aan gedacht. Echter een snelle vraag, kan ik de waarde van de switch ($actie in dit geval) ook zonder $_GET doorgeven?
 
Gerhard l

gerhard l

10/05/2012 08:28:47
Quote Anchor link
Chris, soms doe ik het wel, maar wat jij doet is wel wat overzichtelijker. Je laatste vraag begrijp ik niet helemaal, het kan wel zonder $_GET maar hoe weet jij dan wat er gebeuren gaat(insert, update of delete), ik doe het zelf ook wel eens via $_POST icm een formulier.
 
Chris PHP

Chris PHP

10/05/2012 08:36:49
Quote Anchor link
Gerard,

Ja ik vind het wat overzichterlijker, echter heeft iedereen zijn eigen schrijfstyle :D. Er is niet echt een goed of fout want beide werkt namelijk, het is net wat je persoonlijk makkelijker en overzichtelijker vind.

Nou ik zat wat simpeler te denken, aangezien ik voor elke 'actie' een eigen pagina/script ga maken. Ik zelf zat eraan te denken om in het script van bijvoordbeeld INSERT te zetten dat als de query met succes is gedaan er in een array $log het volgende te zetten.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$log
= [
"actie" => "toevoegen",
"IP" => "$_SERVER['REMOTE_ADDR']",
"succes" => "Ja"];
?>


En als de query niet goed gegaan is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$log
= [
"actie" => "toevoegen",
"IP" => "$_SERVER['REMOTE_ADDR']",
"succes" => "Nee"];
?>


Dus zodra de INSERT query is afgerond, kan ik nogmaals een INSERT maken waar ik simpelweg de gegevens van de $log in de tabel logging zet.
Gewijzigd op 10/05/2012 08:40:12 door Chris PHP
 
Gerhard l

gerhard l

10/05/2012 08:42:48
Quote Anchor link
Inderaad! Jou oplossing is ook prima mogelijk, alleen klopt je code dan niet helemaal. Als je een bestand met functions o.i.d hebt zou ik daar een logfunctie van maken, en anders hier gewoon direct de insert query doen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
mysql_query("
    INSERT INTO log (
        artikel_id,
        user_id,
        ip,
        date,
        actie,
        success
    )
    VALUES(
        '".mysql_real_Escape_string($id)."',
        '".mysql_real_Escape_string($_SESSION['id'])."',
        '".mysql_real_Escape_string($_SERVER['REMOTE_ADDR'])."',
        now(),
        'toevoegen',
        'ja'
    )"
);
Gewijzigd op 10/05/2012 08:43:39 door gerhard l
 
Chris PHP

Chris PHP

10/05/2012 08:48:09
Quote Anchor link
Gerard,

Ja ik ga even kijken of een 'logging' functie te doen is. Echter als ik gewoon direct zo de query doe, moet ik er 2 maken. Ik vind dan dat mijn code te vol wordt aangezien het makkelijker kan door gewoon 1 query en een array te gebruiken.

Want ik moet dan een INSERT INTO maken zoals jou voorbeeld voor een succes ja, en weer een nieuwe als het fout is gegaan (dus een nee). Vandaar dat ik zelf aan de array dacht, dit scheelt weer een hoop regels in het script :D

Maar zoiezo hardstikke bedankt voor het meedenken!
 
Gerhard l

gerhard l

10/05/2012 08:52:59
Quote Anchor link
Graag gedaan, dit kan je trouwens gewoon oplossen met een variabele he, query succes $var = 'ja'; anders $var='nee' en zoiets zet je dan weer in je query.
 
Chris PHP

Chris PHP

10/05/2012 10:00:24
Quote Anchor link
Gerhard l op 10/05/2012 08:52:59:
Graag gedaan, dit kan je trouwens gewoon oplossen met een variabele he, query succes $var = 'ja'; anders $var='nee' en zoiets zet je dan weer in je query.


Klopt dit kan inderdaad ook met een variabel, maar dan geef ik persoonlijk de voorkeur om gelijk al deze informatie in een array te zetten.

Toevoeging op 10/05/2012 10:38:18:

Wat ik me net bedenk is dat ik alleen aan het artikel_id niet genoeg heb. Uiteraard werkt dit goed met een INSERT of een UPDATE, echter bij een DELETE zal het ID wegzijn en kan ik dus nooit meer zien wat het artikel was alleen een ID.

Wellicht verstandig om de titel en summary er ook bij te vermelden niet?
 
Jurgen B

Jurgen B

10/05/2012 10:44:42
Quote Anchor link
Of je verwijdert het artikel door een flag kolom toe te voegen, deze kan je dan op 0/1 zetten. Op deze manier kan je bijvoorbeeld het verwijderen van een artikel ongedaan maken.
 
Chris PHP

Chris PHP

10/05/2012 10:56:55
Quote Anchor link
Jurgen, ja ik zat aan ziets gelijks te denken maar dan meer een 'Display: Yes/No' idee waar je met een checkbox het wel of niet laat zien op de pagina.

Echter als de gebruiker hem delete zou hem wel helemaal weg moeten zijn. Anders zou het betekenen dat de gebruiker nooit daadwerkelijk een artikel weg zou kunnen gooien.

De logging is trouwens puur voor de admin/webdesigner en niet voor de gebruiker. Aangezien schuld afschuiven op de ontwerper snel gedaan wordt, kun je dus doormiddel van deze log precies zien wie en wat er gebeurt is.

Tevens door misschien een het artikel te 'moven' van de artikel tabel naar een deleted_artikel tabel, kun je eventuele verwijderde artikelen altijd nog 'recoveren'.

Iemand enig idee of er een 'move' statment is of moet het gedaan worden in een script?
 
Jurgen B

Jurgen B

10/05/2012 10:59:07
Quote Anchor link
Maar wat is de toegevoegde waarde van een andere tabel? Door gebruik van flags kan je eveneens filteren op verwijderde berichten en ze restoren. Juist omdat je zegt dat het alleen voor de admin is lijkt me dit een nuttige feature.
 
Ozzie PHP

Ozzie PHP

10/05/2012 11:01:33
Quote Anchor link
Je kan ook bij ieder artikel een veld 'published' en 'deleted' toevoegen. Met published bepaal je of het artikel getoond wordt op de site (0=nee, 1=ja) en met deleted verwijder je een bestand (0=niet verwijderd, 1=verwijderd). Op deze manier hoef je niks te moven. In het admin gedeelte maak je dan een functie waarmee je echt alle deleted artikelen kunt verwijderen. Dit doe je dan bijv. eens per maand.

DELETE FROM artikelen WHERE deleted=1
 
Erwin H

Erwin H

10/05/2012 11:13:18
Quote Anchor link
Ik zou een nieuwe tabel nemen. Om de reden dat je dan nooit zomaar gedelete artikelen alsnog op de site krijgt (vergeet een keer in een query die delete flag op te nemen en al die oude zijn weer zichtbaar), omdat je het dan nog wel kan recoveren en omdat je artikelen tabel niet onnodig groeit (en dus trager wordt).

Met een simpel SQL statament kan je een record uit de ene naar de andere tabel plaatsen, hierna moet je het nog wel deleten uit de artikelen tabel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
INSERT deleted_artikel (id, title, content)
SELECT id, title, content
FROM artikelen
WHERE id = 1

Let op: hier gebruik je dus INSERT en niet INSERT INTO (maw, ik ben niet een keyword vergeten...).
De volgorde van de kolommen in INSERT en SELECT bepaalt welke waarde in welke kolom terecht komt. Ga er dus niet vanuit dat het op naam gebeurt, het gaat op volgorde.

Mocht je overigens nog een extra waarde willen toevoegen, bijvoorbeeld de user_id van de gebruiker die het artikel weggooit dan kan dat ook (57190 is dus het fictieve id):
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
INSERT deleted_artikel (id, title, content, user_id)
SELECT id, title, content, 57190
FROM artikelen
WHERE id = 1
Gewijzigd op 10/05/2012 11:14:27 door Erwin H
 
Chris PHP

Chris PHP

10/05/2012 11:25:20
Quote Anchor link
Heren, Dank je allen voor de input, beide manieren zijn goed.

Echter zou ik toch voor de manier van Erwin (en mijn originele manier) gaan puur dat de artikel database schoon blijft en alleen artikelen bevat die op de site mogen.

de deleted_artikel is puur als mijn klant een fout maakt en het per ongeluk verwijderd, zodat ik het zelf alsnog kan recoveren voor hem. Dus de deleted_artikel is meer een parkeerplaats voor artikelen die de gebruiker niet meer wil.

Erwin, ik kan als ik je voorbeeld dus goed begrijp dit maken.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$move
= ("INSERT deleted_artikel (id, title, content)
         SELECT id, title, content
         FROM artikelen WHERE a_id='$a_id'"
)

$delete = ("DELETE * FROM artikel WHERE a_id='$a_id'")
?>


En dan uiteraard een if statment maken dat if ($_POST['delete'] == 1) dus de checkbox delete is gemarkeerd voer ik beide queries uit, eerst de $move en daarna de $delete?
 
Erwin H

Erwin H

10/05/2012 11:36:44
Quote Anchor link
Inderdaad, zo copieer je het naar de andere tabel en delete je het in de originele. (Alleen die * hoeft niet in het delete statement, dus gewoon 'DELETE FROM artikel WHERE....'.)

Toevoeging: ik heb nu de kolommen dezelfde naam gegeven in de originele tabel en de deleted tabel, dat hoeft natuurlijk niet. Die namen kunnen vanalles zijn.
 
Chris PHP

Chris PHP

10/05/2012 11:55:08
Quote Anchor link
Dank je Erwin, ja klopt die * hoeft idd niet zat niet helemaal op te letten ;).

Klopt je kunt er idd van maken wat je wilt, maar om het 1-op-1 aan te houden met het originele klinkt alleen maar logisch in dit geval :D

Dit is natuurlijk ook een hele mooie oplossing als je ooit gaat mirgeren naar een nieuwe of andere database structuur!

Dank je voor de tip, ik ga er vanavond mee aan de slag.
 
Dave L

Dave L

10/05/2012 12:35:22
Quote Anchor link
Ik maak altijd .txt log-bestanden aan. Een weer iets andere wijze zonder gebruik van SQL.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$logboek
= date('Y-m-d H:i:s').' SUCCES: '.$_SERVER['REMOTE_ADDR'].' - gebruiker ingelogd - User: '.$_SESSION['naam'];

// VERWERKEN in security logboek
    $logbestand = "/home/gebruiker/domains/domein.nl/logboek/log_security.txt";
    
    if($handle = fopen($logbestand, 'a')) {
            
        fwrite($handle,"$logboek");
        fwrite($handle,"\n");
        fclose($handle); //bestand afsluiten
    }
?>
 
Chris PHP

Chris PHP

10/05/2012 13:22:11
Quote Anchor link
Dave L,

Als je zelf de site gebruikt werkt dat goed, echter wanneer er mensen achterzitten die er niets vanaf weten gebruik ik liever geen logbestand.

Mijn klanten hebben natuurlijk ook zelf toegang tot hun FTP, en ja ik heb al een aantal keren meegemaakt dat ze onopzettelijk hun hele root leeg gooien. Dan heb je klanten die dit netjes melden en toegeven, echter zijn er ook die regelrecht de schuld in jou schoenen schuiven.

Vandaar dat ik dit het liefst in een database wil opslaan. Tevens bewaar ik al de site's van mijn klanten die ik ontworpen heb, zodat dit soort dingen snel op te lossen zijn. Nog een voordeel om een database te gebruiken, deze gegevens gaan minder snel verloren dan bestanden.

Maar bedankt voor je input, logbestanden hebben in verschillende situaties zeker nut!
 
Wouter J

Wouter J

10/05/2012 13:39:09
Quote Anchor link
En als je dit mooi OO wilt maken kun je eens hiernaar kijken: http://www.phphulp.nl/php/forum/topic/de-opbouw-van-een-logging-class/81508/#577390
 
Chris PHP

Chris PHP

10/05/2012 13:53:25
Quote Anchor link
Wouter,

Dank je, ik zit er inderdaad aan te denken om dit in OOP te maken. Echter heb ik OOP nog niet zovaak toegepast dus wordt gelijk een mooie uitdaging.

Dank je voor de link, deze pak ik er vanavond even bij!
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.