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:
Een opgeslagen witregel zien
- meon
- Administrator
- Berichten: 16609
- Lid geworden op: 18 feb 2003, 22:02
- Twitter: meon
- Locatie: Bree
- Uitgedeelde bedankjes: 564 keer
- Bedankt: 759 keer
- Contacteer:
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:
Daar zal het wel mee lukken zeker
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
- All Your Base
- Plus Member
- Berichten: 190
- Lid geworden op: 17 sep 2002, 11:57
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.
- Pi R²
- Elite Poster
- Berichten: 811
- Lid geworden op: 03 jan 2003, 17:15
- Locatie: Sint-Niklaas
- Contacteer:
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"]);
Lang Leve Mijn Eigen! Het geheim voor een lang leven: niet stoppen met ademen
- meon
- Administrator
- Berichten: 16609
- Lid geworden op: 18 feb 2003, 22:02
- Twitter: meon
- Locatie: Bree
- Uitgedeelde bedankjes: 564 keer
- Bedankt: 759 keer
- Contacteer:
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...
- Pi R²
- Elite Poster
- Berichten: 811
- Lid geworden op: 03 jan 2003, 17:15
- Locatie: Sint-Niklaas
- Contacteer:
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.
Lang Leve Mijn Eigen! Het geheim voor een lang leven: niet stoppen met ademen
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
?
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
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
- meon
- Administrator
- Berichten: 16609
- Lid geworden op: 18 feb 2003, 22:02
- Twitter: meon
- Locatie: Bree
- Uitgedeelde bedankjes: 564 keer
- Bedankt: 759 keer
- Contacteer:
Ik ben niet zeker, maar volgens mij kan dat met de vergelijkbare functie replace()
Dan krijg je iets als:
Nu ben ik wel niet zeker dat de newline character in ASP ook "\n" is...
--meon
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
lang geleden maar is dat niet vbcrlf (carriage return line feed) in Microsoft apps
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 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
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 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
- meon
- Administrator
- Berichten: 16609
- Lid geworden op: 18 feb 2003, 22:02
- Twitter: meon
- Locatie: Bree
- Uitgedeelde bedankjes: 564 keer
- Bedankt: 759 keer
- Contacteer:
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