login  Naam:   Wachtwoord: 
Registreer je!
 Forum

veilig in database zetten (Opgelost)

Offline W0etah - 24/06/2007 13:22
Avatar van W0etahPHP beginner Hallo, ik zet alles wat er gepost wordt zo in de database:
  1. $bericht = mysql_real_escape_string(nl2br($_POST['bericht']));

$bericht wordt dus in de db gezet.

Maar wanneer een lid: "<noscript>" intypt, dan is alles omzeep.

Hoe kan ik nu alles veilig uit de database halen?

25 antwoorden

Gesponsorde links
Offline vinTage - 24/06/2007 13:38 (laatste wijziging 24/06/2007 13:38)
Avatar van vinTage Nieuw lid die nl2br eruit halen, en echoen dmv htmlentities en nl2br.
Offline W0etah - 24/06/2007 13:44
Avatar van W0etah PHP beginner moet ik dan eerst wat ik uit mijn db haal door mijn ubb parser halen of eerst die htmlentities
Offline vinTage - 24/06/2007 13:46
Avatar van vinTage Nieuw lid
  1. echo htmlentities(ubb($bericht));

Mss wil je ook nog andere dingen doen.
Offline W0etah - 24/06/2007 13:50 (laatste wijziging 24/06/2007 14:13)
Avatar van W0etah PHP beginner
  1. $post = $topics['bericht'];
  2. $post = htmlentities(nl2br($post));
  3. $post = ubb($post);


ik heb het nu zo gedaan, maar nu zet hij de ubb niet meer om, enkel de smileys.
Offline vinTage - 24/06/2007 14:16
Avatar van vinTage Nieuw lid Je function ubb is wel zo geschreven dat je wel bepaalde html elementen om moet zetten ?
Offline MindPrison - 24/06/2007 14:16
Avatar van MindPrison PHP gevorderde
  1. $post = nl2br(htmlentities($post));

nl2br() na htmlentities! Lost dit al wat op?
Offline W0etah - 24/06/2007 14:19 (laatste wijziging 24/06/2007 14:19)
Avatar van W0etah PHP beginner @mindprison, dat lost niks op

@vintage, ja, sommige html elementen worden omgezet.

  1. $bericht = preg_replace("#<b>(.*?)</b>#", "<strong>\\1</strong>" , $wat);

dus de <b> is de ubb, dat mensen gebruiken tijdens het maken van hun topic.

maar de functie ubb wordt toch als laatste uitgevoerd?
Offline vinTage - 24/06/2007 14:22
Avatar van vinTage Nieuw lid
  1. echo htmlentities(nl2br(ubb($topics['bericht'])));
zou goed moeten zijn volgens mij.
Offline W0etah - 24/06/2007 14:24 (laatste wijziging 24/06/2007 14:26)
Avatar van W0etah PHP beginner nope, dan zet hij niks meer om

edit
de ubb codes
http://www.plaatscode.be/5725/

het topic zelf
http://www.plaatscode.be/5726/
Offline MindPrison - 24/06/2007 14:30
Avatar van MindPrison PHP gevorderde Oké, je code gaal langs geen kanten werken zo. Je gebruikt namelijk <> tags en die worden omgezet...
Zoals ik ook al zij moet nl2br() altijd na htmlentities, anders wordt deze ook omgezet.

Je doet dus zo:
  1. <?php
  2. $post = $topics['bericht'];
  3. $post = nl2br(htmlentities($post));
  4. $post = ubb($post);
  5. ?>

En dan als ubb parser:
  1. <?php
  2. $bericht = preg_replace("/&lt;b&gt;(.+?)&lt;\/b&gt;/", "<strong>\\1</strong>" , $wat);
  3. ?>

Dit zal werken, al kan je beter met [] ubb tags werken.
Offline W0etah - 24/06/2007 14:37
Avatar van W0etah PHP beginner @mindprison, ik heb die < verandert naar [

maar nu zie ik op mijn scherm gewoon dit staan: test

nog altijd hetzelfde als met die <
Offline vinTage - 24/06/2007 14:41
Avatar van vinTage Nieuw lid Ik weet het ook niet meer hoor, mss is je ubb niet helemaal jofel ?

probeer deze eens (ik ben héél slecht in regex, maar deze gebruik ik ook (dolfjes ubb class)

  1. "#\[b\](.*?)\[/b\]#i","<b>\\1</b>"
Offline W0etah - 24/06/2007 14:46
Avatar van W0etah PHP beginner pff, nee dat doet het ook niet
Offline vinTage - 24/06/2007 14:49 (laatste wijziging 24/06/2007 14:51)
Avatar van vinTage Nieuw lid
Citaat:
maar nu zie ik op mijn scherm gewoon dit staan: test
eh, moest dat niet dan ?

edit: doe eens zo
Offline W0etah - 24/06/2007 14:50
Avatar van W0etah PHP beginner ja, bij mij staat er dan [*b]test[/b]

dat kwam door de ubb van hier
Offline vinTage - 24/06/2007 14:51
Avatar van vinTage Nieuw lid gebruik ook eens stripslashes VOOR je ubb
Offline W0etah - 24/06/2007 14:53
Avatar van W0etah PHP beginner nee, dat lost ook niks op
Offline vinTage - 24/06/2007 14:58 (laatste wijziging 24/06/2007 15:02)
Avatar van vinTage Nieuw lid Was ook maar een wanhoops poging, ik snap niet waarom het niet werkt 

ow, ubb(htmlentities($post)); ?
Ik zit net in mijn scripts te kijken en daar doe ik wel eerst ubb'en.

Offline W0etah - 24/06/2007 15:04 (laatste wijziging 24/06/2007 15:06)
Avatar van W0etah PHP beginner ik snap niet waarom hij de smileys wel omzet

edit: @hierboven, nope dat doet het ook niet
Offline MindPrison - 24/06/2007 16:17 (laatste wijziging 24/06/2007 16:18)
Avatar van MindPrison PHP gevorderde Oké, ik wil het wel even fixen, maar plaats hier dan eens deze 3 dingen zoals ze nu zijn:
1) Je script
2) Je UBB parser
3) Wat in je db zit (de tekst dus)

Dan zal ik even alles nakijken en aanpassen.
Offline W0etah - 24/06/2007 16:22 (laatste wijziging 24/06/2007 16:56)
Avatar van W0etah PHP beginner het script topic.php, dit toont alle reacties van een topic:
http://www.plaatscode.be/5728/

de ubb parser:
http://www.plaatscode.be/5729/

dit staat in de db:
http://img520.i...ng1po3.png
Offline MindPrison - 24/06/2007 17:11 (laatste wijziging 24/06/2007 17:14)
Avatar van MindPrison PHP gevorderde Ziezo, hier zijn ze. Vanaf nu moet je wel met de correcte ubb tags werken, dus enz.
Ik heb wat uitleg bij de url parser gezet, dan weet je wat ie zal parsen...

Het script: http://www.plaatscode.be/5733/
De ubb parser: http://www.plaatscode.be/5735/

Ik merkte wel dat de teksten in je db wat teveel slashes bevatten, je moet geen slashes meer toevoegen bij het posten, want ik denk dat autoslashes aan staan...
Offline W0etah - 24/06/2007 17:19 (laatste wijziging 24/06/2007 17:59)
Avatar van W0etah PHP beginner hartelijk dank, maar het werkt niet

ik heb die ubb gekopieerd, ook het script aangepast.

Ik test het uit, ik plaats een topic met deze code:
  1. [b]test[/b]


wat zie ik staan in het topic zelf:
Citaat:
Door W0utR - 24-06-2007 17:18:17
[b*]test


edit:
zonder het *tje


edit:

ok, nu werkt het wel, maar hij doet raar

dit zie ik staan als ik gewoon [b*] typ
Citaat:
[<trong>][<strong>b]


ik zie nu nog fouten, mijn smileys zijn zo: ":blij:"
dan haalt hij die "i" weg en blijft er gewoon dit staan: "blj"
Offline MindPrison - 24/06/2007 18:24 (laatste wijziging 24/06/2007 18:26)
Avatar van MindPrison PHP gevorderde Sorry, ik had nog een foutje gemaakt. Dit moet het eerste deel zijn:
  1. <?php // ubb
  2. $bericht = preg_replace("/\[b\](.+?)\[\/b\]/is", "<strong>\\1</strong>" , $bericht);
  3. $bericht = preg_replace("/\[i\](.+?)\[\/i\]/is", "<em>\\1</em>" , $bericht);
  4. $bericht = preg_replace("/\[s\](.+?)\[\/s\]/is", "<s>\\1</s>" , $bericht);
  5. $bericht = preg_replace("/\[u\](.+?)\[\/u\]/is", "<u>\\1</u>" , $bericht);
  6. ?>


Wat zijn je smilies exact? (ik kan het niet lezen met die domme smilie)
Offline W0etah - 24/06/2007 18:34 (laatste wijziging 24/06/2007 19:02)
Avatar van W0etah PHP beginner ah merci, nu werkt alles goed.

Enkel nog 1 probleem.

Als er niks tussen de tags staat, dan toont hij de tags gewoon

[b*], dan gaat hij het ook zo tonen

edit
opgelost, ik heb die +? vervangen door *?
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.285s