[PHP]Textarea via $_POST array incl. gegeven <enter>'s?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi,

Ik heb een groot webformulier.
Deze kan je opslaan in de database, of je kan een printversie opvragen.

Ik verzorg al -> addslashes en stripslashes voor het databasewerk.

De printversie bevat een nieuwe php file, met een andere opmaak, en de variabelen haal ik uit de $_POST array die van het formulier komen.

Stripslashes is dus volgens mij hier niet nodig. Maar alles werkt ok, behalve dat de <enter> tekens (dus een nieuwe regel) in de textarea's niet doorgegeven worden aan de $_POST array.

Hoe kan dit? Iemand een idee?

Acties:
  • 0 Henk 'm!

  • Dennahz
  • Registratie: November 2001
  • Laatst online: 17-09 21:50

Dennahz

Life feels like hell should.

Ehh, www.php.net/nl2br ? Of begrijp ik je ff niet :)

Twitter


Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Of je al dan niet stripslashes moet uitvoeren is afhankelijk van je PHP instellingen; magic_quotes om precies te zijn.
Bedenk wel dat je bij output naar HTML wel moet HTML-encoden en, zoals gezegd hierboven, newlines moet omzetten naar een HTML br-element.

Intentionally left blank


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik heb al geprobeerd om de waarde vanuit de $_POST array binnen de nl2br() functie te gooien, maar tevergeefs. Nog steeds geen <enter>

Ik neem aan dat ik die nl2br in de printversie moet toepassen toch?

Acties:
  • 0 Henk 'm!

  • Wacky
  • Registratie: Januari 2000
  • Laatst online: 05-09 21:19

Wacky

Dr. Lektroluv \o/

Bij invoer: nl -> br
Bij uitvoer (html): geen aanpassingen (zijn namelijk al <br>'s)
Bij uitvoer (plain text): br -> nl (plain text werkt namelijk met nl, niet met <br>)
Bij aanpassingen (db edit): br -> nl (en vervolgens weer zoals bij invoer)

Ik hoop dat 't zo duidelijk is :)

Nu ook met Flickr account


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Wacky schreef op donderdag 14 juli 2005 @ 00:14:
Bij invoer: nl -> br
Bij uitvoer (html): geen aanpassingen (zijn namelijk al
's)
Bij uitvoer (plain text): br -> nl (plain text werkt namelijk met nl, niet met
)
Bij aanpassingen (db edit): br -> nl (en vervolgens weer zoals bij invoer)

Ik hoop dat 't zo duidelijk is :)
Onhandig. Voor kleine sites kun je beter gewoon die newlines in de database laten staan, en bij het ophalen nl2br eroverheen gooien. Er staat dan minder zooi in je database, en je hoeft afhankelijk van de verschillende situaties waar je in zit weinig aanpassingen meer te doen aan je strings. Bovendien kun je die output cachen. Ik zou dus gewoon enters opslaan in je database. :)

Overigens, @barn: wat had je zelf al gezocht en gevonden? Even [google=php newlines] geeft bij de pagina al antwoord op je vraag. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
tis nog niet helemaal duidelijk.

Als ik opsla in de database en weer inlaadt vanuit de database, dan staan de <enter>'s er wel gewoon, en die worden op dezelfde manier via de $_POST array getoond.

Wat ik me net zit te bedenken... Het komt vast doordat ze in de printversie binnen <p></p> tags staan? Dan zullen er geen enters weergegeven worden. Hmmz.

Acties:
  • 0 Henk 'm!

Verwijderd

http://jasper.herejezus.nl/test.php

Wanneer nl2br aanstaat zet hij de enters in je textarea om in <br>'s in html, wat jij dus wilt hebben.
Wanneer nl2br uitstaat zie je niets van de enters die je in je textarea gebruikt, wat jij op dit moment hebt.

Dit is wat je bedoeld toch? Geef even aan wat je precies bedoeld, laat bijvoorbeeld je huidige code zien.

[ Voor 43% gewijzigd door Verwijderd op 14-07-2005 01:16 ]


Acties:
  • 0 Henk 'm!

Verwijderd

In een formulier staat een enter voor \n, dus doe je str_replace("\n", "<br />", $_POST['slkdaj']);

Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 18-09 16:28

Bosmonster

*zucht*

Verwijderd schreef op donderdag 14 juli 2005 @ 10:40:
In een formulier staat een enter voor \n, dus doe je str_replace("\n", "
", $_POST['slkdaj']);
Nuttig.. laat daar nou nl2br() voor zijn.. die ook nog eens beter werkt dan alleen \n vervangen.

Maar goed.. daar ging de rest van het topic dus al over..
Pagina: 1