Pagina 1 van 1

Een opgeslagen witregel zien

Geplaatst: 05 maa 2003, 20:03
door Pi R²
weer een stomme-newbie-PHP-vraag :

als ge een gastenboek, nieuwssyteem, ... hebt waar ge tekst in kunt schrijven, en je typt in het tekstvak een witregel, dan wordt met die witregel of return geen rekening gehouden als je die query terug uitleest.


Vb. Slaag dit op in Mysql via formulierke :

--------------
Ik ben zot

En ik ook
--------------

=> dat wordt als je dat opvraagt:

-------------- Ik ben zot En ik ook --------------

:arrow: Mijn boeiende vraag is nu : hoe lost ge dat op? :arrowl:

Geplaatst: 05 maa 2003, 20:19
door meon
Dat is een veel voorkomende vraag.
Bovendien moet je oppassen met html-tags (had je daar al rekening mee gehouden?). Stel dat ik in je bericht "</td></tr></table>" zou typen, en je layout steekt in een tabel, dan zou het tonen van dat bericht je hele layout overhoop halen.

In ieder geval, dat is makkelijk op te lossen. Voor jouw eigenlijke probleem moeten we de carriage return (\n) vervangen door een harde enter in html (<br>). Daar gebruiken we de functie ereg_replace() voor.
Voor het tweede probleem, dat met de html-tags is een specifieke functie: htmlentities().

Als we alles samen zetten (en ik ga er gemakshalve van uit dat de naam van je inputveld "bericht" is) krijgen we:

Code: Selecteer alles

<? $nieuw_bericht = ereg_replace("\n","<br>",htmlentities($_POST["bericht"])); ?>
Daar zal het wel mee lukken zeker ;-)

Geplaatst: 05 maa 2003, 20:58
door All Your Base
je kan ook eens proberen je bericht tussen een <pre> tag te steken, dan wordt er wel rekening gehouden met extra spaties en returns. aan de hand van css stylesheets kan je eventueel nog het lettertype en marges en dergelijke van de <pre> tag aanpassen.

Geplaatst: 05 maa 2003, 21:28
door Pi R²
ha bedankt allemaal. Van prutsers die daar een tabel insteken die de lay-out om zeep helpt, of zelfs javascriptjes insteken, daar heb ik komaf mee gemaakt met htmlspecialchars($_POST["bericht"]);

Geplaatst: 06 maa 2003, 19:23
door airzimmy
nl2br http://be2.php.net/manual/nl/function.nl2br.php php heeft heel veel functies mijn vrienden ;)

Geplaatst: 06 maa 2003, 20:40
door meon
Bwa, da's een functie die eigenlijk hetzelfde doet als wat ik opgaf. Vrij nutteloze functie dus. Bovendien heb je bij het mijne meer controle. Enfin, het is gewoon nog een alternatief, al ben ik meer voor ereg_replace te vinden...

Geplaatst: 08 maa 2003, 09:56
door Pi R²
Ja, maar ik moet dienen ereg_replace nog een paar keer gebruiken om smileykes om te zetten naar image-tags... Als ge dan toch met ereg_replace bezig zijt, kunt ge beter alles zo houden.

asp?

Geplaatst: 08 maa 2003, 10:22
door CrAtOr
hallo!

Kan er iemand mij redden en zeggen dat dit ook op een of andere manier mogelijk is in asp??

of hou ik me dan maar bij de

Code: Selecteer alles

<pre> 
?

grtz, CrAtOr

Editted by SeNsEi Ze0n
code zet je best tussen [ code] en [ /code] tags (zonder spaties)
ik heb je volgende post berwijdert om het leesbaar te houden

Geplaatst: 08 maa 2003, 11:33
door Erik
hi,

in asp ben ik niet zo thuis maar ik ben der van overtuigd dat het mogelijk is ik heb echter geen idee hoe :roll:

Geplaatst: 08 maa 2003, 17:27
door meon
Ik ben niet zeker, maar volgens mij kan dat met de vergelijkbare functie replace()

Dan krijg je iets als:

Code: Selecteer alles

<%
response.write(Replace(Request.Form("bericht"),"\n","<br />"))
%>
Nu ben ik wel niet zeker dat de newline character in ASP ook "\n" is...

--meon

Geplaatst: 08 maa 2003, 17:56
door airzimmy
lang geleden maar is dat niet vbcrlf (carriage return line feed) in Microsoft apps

Geplaatst: 09 mei 2003, 20:41
door Spirit Wolf
Hei,

ben toevallig van de forum skynet op deze terechtgekomen om voor php support te zoeken. Skynet zelf ondersteunt dit blijkbaar dus niet, damn.

Maar heb toevallig wel hier gevonden hoe je kan zorgen dat de enters er wel komen in te staant :-D so thnx. Ben echt een heel newbie op gebied van php en als eerste heb ik een guestbook gekozen om te maken. Maar die enters werken blijkbaar alleen voor de nieuwe posts. Ik heb gewoon wat gebrabbel er eerst ingestoken voor dat ik jullie eenvoudige code had. Nu met die code van jullie wordt dit alleen toegepast op de nieuwe posts, is dit normaal???

p.s.: hoe krijg je smiley's in je guestbook??? dat lijkt me leuk. Let wel, wil dat allemaal zelf doen, wil niet met die installatiepakketen waarbij je praktisch niks werkt heb, ik wil echt het zelf programmeren.

Ik denk dat ik me ook maar eens snel hier ga registreren, lijken veel oplossingen te vinden te zijn

bye
Spirit Wolf

Geplaatst: 10 mei 2003, 00:37
door meon
Spirit Wolf schreef:Nu met die code van jullie wordt dit alleen toegepast op de nieuwe posts, is dit normaal???
Vooral eerst welkom op het forum!

De breaks worden omgezet bij het posten (opslaan in database), niet bij hen inlezen uit de database. Bijgevolg zullen enkel nieuwe posts die omzetting hebben, en zullen de oude posts blijven zoals ze zijn (daar verandert immers niets aan).

De oude posts automatisch doen verwerken is ook quasi een onmogelijke opdracht, "\ n" wordt namelijk niet opgeslagen en valt gewoon weg: je kan dus niet meer achterhalen waar ooit een newline heeft gestaan.

De smileyvraag is al beantwoord in een andere topic heb ik gezien, daar ga ik dan geen dubbel antwoord op geven ;-)