login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Replace variable (Opgelost)

Offline joppie - 26/10/2008 22:56 (laatste wijziging 26/10/2008 23:00)
Avatar van joppieNieuw lid Hoi,

Ik zit met een probleem.
Ik ben bezig een blog te maken.

Wat ik nu heb is dat je als admin of moderator de reactie van users kunt aanpassen. En dat er dan bij komen te staan door wie en waarom hij gewijzigd is. Dit word gewoon geupdate in een mysql database.
Maar als hij dan nog een keer gewijzigd wordt, mag er maar 1 keer staan door wie en waarom de hij gewijzigdt is.
Dat is op dit moment niet zo.
Dit word nu elke keer dat de reactie wordt aangepast er nogmaals bij geplaasts.

Tuurlijk kun je dit gewoon verwijderen, maar ik wil graag dat dit automatisch gebeurt.
Ik zat zelf te denken aan een
Maar daarvoor moet je wel weten wat er vervangen moet worden.
En omdat deze gegevens altijd verschillend zijn gaat dit dus niet werken. Wie heeft een idee hoe het wel kan.

Wat trouwens ook zou kunnen is de laatste 3 regels verwijderen. Maar ik heb geen idee hoe ik dat zou moeten doen.

13 antwoorden

Gesponsorde links
Offline djb - 26/10/2008 23:08
Avatar van djb PHP beginner Het lijkt me dat er wel een zins opbouw in die regel zit.
Dus Dit bericht is door *** gewijzigd op *****.

misschien kan je dan met preg_replace werken 
http://nl.php.net/preg_replace

Kan je misschien een voorbeeld ook geven? of de link waar het staat?

Groetjes jeroen
Offline joppie - 26/10/2008 23:12 (laatste wijziging 27/10/2008 00:32)
Avatar van joppie Nieuw lid Ik heb hem nog niet online staan.
Maar dit is een voorbeeld van wat hij er neerzet als hij als gewijzigd word:

Laatst gewijzigd: 2008-10-26 23:11:12
Door: admin
Reden: test.

Ik heb ook al gekeken naar preg_replace, maar daar kom ik niet uit.
Offline djb - 27/10/2008 04:02
Avatar van djb PHP beginner Wat je dan het best kunt doen is het volgende:

<!-- begin wijziging -->
Laatst gewijzigd: 2008-10-26 23:11:12
Door: admin
Reden: test.
<!-- einde wijziging -->
dat neerzetten 
En dan van <!-- begin.....-->
tot <!-- einde....-->
Eruit filteren 
Offline Kr4nKz1n - 27/10/2008 08:51
Avatar van Kr4nKz1n Onbekend Uhmz.... Gebruik een ander veld?

Gewoon nog een veld gebruiker met Edit ofzo. Daarin zet je die gedoe en deze update je. Zo wordt het ook geen opsomming. Maar het kan wel. 
Offline joppie - 27/10/2008 09:46
Avatar van joppie Nieuw lid
djb schreef:
Wat je dan het best kunt doen is het volgende:

<!-- begin wijziging -->
Laatst gewijzigd: 2008-10-26 23:11:12
Door: admin
Reden: test.
<!-- einde wijziging -->
dat neerzetten 
En dan van <!-- begin.....-->
tot <!-- einde....-->
Eruit filteren 


En dat kun je doen met preg_replace?
Want zoals ik al zei heb ik daar al wel naar gekeken, maar snap het nog niet.
Offline Martijn - 27/10/2008 10:09
Avatar van Martijn Crew PHP ik neem aan dat je het nu in het tekstbericht zelf opslaat.
Als je dat verbouwd, een extra 2 kolommen maakt in je db (last_edit,last_person), en het daar steeds inzet, en indien het nog een keer word geedit het gewoon update ipv nieuw erbij komt
Offline joppie - 27/10/2008 10:43
Avatar van joppie Nieuw lid Ja dat is zo. Dat is wel het makkelijkst.
Maar ik wil ook wel graag weten hoe ik dat dan met preg_replace kan doen. Leer ik alleen maar meer van. En het komt altijd nog wel eens van pas.
Offline Martijn - 27/10/2008 10:44
Avatar van Martijn Crew PHP prep_replace hier toepassen is een beetje nutteloos.... maar als je het wilt leren, zoals ik het altijd doe, is een werkende regel zoeken die lijkt op wat ik doe, en dan aanpassen naar wat ik wil
Offline henver - 27/10/2008 11:05 (laatste wijziging 27/10/2008 16:24)
Avatar van henver HTML gevorderde
  1. $update = 'UPDATE blog_reacties SET bericht=' . $_POST['bericht'] . ', edit_by=' . $_POST['user'] . ', edit_date=' . time() . ', edit_reason=' . $_POST['reason'] . ' WHERE blogid=' . $_GET['id'];
  2. mysql_query($update);
Offline Kr4nKz1n - 27/10/2008 15:24
Avatar van Kr4nKz1n Onbekend Geen single quotes? Geen SQL-injection tegen gaan?

Dat van die SQL-injection begrijp ik enig zins dat je dat nu niet doet. Maar ik zou wel single quotes gebruiken 
Offline henver - 27/10/2008 16:23
Avatar van henver HTML gevorderde Oeps sorry, foutje xD
En SQL-injection moet ie zelf doen vind ik...
Offline Diko - 27/10/2008 18:12
Avatar van Diko PHP interesse
Kr4nKz1n schreef:
Geen single quotes? Geen SQL-injection tegen gaan?

Dat van die SQL-injection begrijp ik enig zins dat je dat nu niet doet. Maar ik zou wel single quotes gebruiken 


Toevoeging: ipv '. time() .' te gebruiken zou ik voor NOW() gaan ;)
Offline joppie - 27/10/2008 23:35 (laatste wijziging 27/10/2008 23:36)
Avatar van joppie Nieuw lid Bedankt voor jullie reacties.

Ik heb uiteindelijk gewoon een extra veld in de mysql server aangemaakt, die hij elke keer kan updaten.

*En ik vind persoonlijk NOW() ook handiger om te gebruiken.*
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.201s