[PHP] Newlines meenemen in variabelen?

Pagina: 1
Acties:

Onderwerpen


Anoniem: 102014

Topicstarter
Ik heb dus een soort cmssysteempje, maar ik wil dus dat als hij de text uit de database haalt, hij ook de "\n"'s die ik erbij heb gezet meeneemt en ook overneemt als newlines (niet als <br>'s, maar als newlines, zo blijft de source wat netter). Maar als ik het gewoon echo, krijg ik allemaal dingen als Welkom!\n in plaats van Welkom! en dan een nieuwe regel in mijn source.

Hoe kan ik dus \n's meenemen als newline characters in variabelen als ik ze echo?

Dank! _/-\o_

P.S.: Heb op het forum gezocht, alleen daar zijn alleen maar gevallen met \n omzetten naar <br \> wat ik dus NIET wil.

  • Johnny
  • Registratie: December 2001
  • Laatst online: 11-06 16:06

Johnny

ondergewaardeerde internetguru

Waarschijnlijk 'escape' je een keertje teveel voordat je de gegevens opslaat. Als de magic_quotes instelling van PHP aan staat worden er automatisch backslashes voor speciale tekens toegevoegd bij het ontvangen van gegevens uit een formulier. Je kan dat omzeilen door die instelling uit te zetten of na het ontvangen de functie stripslashes() te gebruiken, maar let wel op dat wanneer je gegeven sopslaat in een database bepaalde tekens zoals ' wel een backslash moeten hebben omdat ze anders je query gaan verpesten.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

Of je gebruikt single quotes in plaats van double quotes.

En volgens mij moet je wel nl2br gebruiken om die newlines weer te geven in html.

Systeem | Garmin Connect


Anoniem: 102014

Topicstarter
Ik ben volgens mij niet helemaal duidelijk geweest :P Ik heb als test de gegevens even handmatig in de database ingevoerd, dus er is gewoon een rij met id = 1 en text = "Welkom!<br>\n" En als output krijg ik dus
Welkom!
\n

En in de source staat gewoon "Welkom!<br>\n" en daardoor krijg ik dus hele lelijke sourcecode die totaal onoverzichtelijk is. Dat is het enige wat mij dwarszit ;)

  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 18-05 10:18

JayVee

shibby++!

Brakkie schreef op woensdag 13 september 2006 @ 17:07:
Of je gebruikt single quotes in plaats van double quotes.
Hoe bedoel je dat? Als er een waarde uit de db komt en in een variabele opgeslagen wordt kan je die niet tussen single quotes zetten. Het wordt of
PHP:
1
echo 'Hallo ' . $bericht;
of
PHP:
1
echo "Hallo $bericht";

Ik denk dat je de fout moet zoeken bij wat Johnny heeft genoemd" escaping dmv magic_quotes.

ASCII stupid question, get a stupid ANSI!


  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Anoniem: 102014 schreef op woensdag 13 september 2006 @ 17:12:
Ik ben volgens mij niet helemaal duidelijk geweest :P Ik heb als test de gegevens even handmatig in de database ingevoerd, dus er is gewoon een rij met id = 1 en text = "Welkom!<br>\n" En als output krijg ik dus
Welkom!
\n

En in de source staat gewoon "Welkom!<br>\n" en daardoor krijg ik dus hele lelijke sourcecode die totaal onoverzichtelijk is. Dat is het enige wat mij dwarszit ;)
Je hebt dus de \n letterlijk als tekst in de database gezet?
Dat gaat inderdaad niet werken. Je zal ook echt op enter moeten drukken om een 'echte' \n in je database te krijgen. :)

Edit:
Aangenomen dat je het via PHPmyAdmin ofzo hebt ingevoerd. :)

[ Voor 4% gewijzigd door Gonadan op 13-09-2006 17:16 ]

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • JayVee
  • Registratie: Mei 2002
  • Laatst online: 18-05 10:18

JayVee

shibby++!

Anoniem: 102014 schreef op woensdag 13 september 2006 @ 17:12:
[...] dus er is gewoon een rij met id = 1 en text = "Welkom!<br>\n"
Er is nu ook geen "\n" character maar de string "\n" in de database gezet! Voer eens een query uit om de waarde in te voeren:
SQL:
1
INSERT INTO test VALUES (2, 'Tehst \n berichtje');

(weet trouwens niet zeker of dit gaat werken zo! heeft iemand een tip?) :$

[ Voor 8% gewijzigd door JayVee op 13-09-2006 17:17 ]

ASCII stupid question, get a stupid ANSI!


Anoniem: 102014

Topicstarter
Maar ik kan dus via phpMyAdmin (dus zonder queries te gebruiken maar gewoon via de lollie/teddyberen GUI) geen newlines invoeren in een varchar? Lijkt me toch sterk of niet?

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Anoniem: 102014 schreef op woensdag 13 september 2006 @ 17:23:
Maar ik kan dus via phpMyAdmin (dus zonder queries te gebruiken maar gewoon via de lollie/teddyberen GUI) geen newlines invoeren in een varchar? Lijkt me toch sterk of niet?
Dan moet je het veld van varchar naar text veranderen, dan kan je er lekker enters in kloppen ;)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • Brakkie
  • Registratie: Maart 2001
  • Niet online

Brakkie

blaat

JayVee schreef op woensdag 13 september 2006 @ 17:14:
[...]

Hoe bedoel je dat? Als er een waarde uit de db komt en in een variabele opgeslagen wordt kan je die niet tussen single quotes zetten. Het wordt of
PHP:
1
echo 'Hallo ' . $bericht;
of
PHP:
1
echo "Hallo $bericht";

Ik denk dat je de fout moet zoeken bij wat Johnny heeft genoemd" escaping dmv magic_quotes.
Ik zat met mn hoofd bij het html mailtje wat ik laatste aan het opstellen was, my bad :X

Systeem | Garmin Connect


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 11-06 21:17

Janoz

Moderator Devschuur®

!litemod

Anoniem: 102014 schreef op woensdag 13 september 2006 @ 17:23:
Maar ik kan dus via phpMyAdmin (dus zonder queries te gebruiken maar gewoon via de lollie/teddyberen GUI) geen newlines invoeren in een varchar? Lijkt me toch sterk of niet?
Nee, dat kan niet. Bij phpmyadmin hebben ze (om logische redenen) gekozen om een textregel ipv textarea te gebruiken in het standaard edit veld.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Janoz schreef op woensdag 13 september 2006 @ 17:33:
[...]

Nee, dat kan niet. Bij phpmyadmin hebben ze (om logische redenen) gekozen om een textregel ipv textarea te gebruiken in het standaard edit veld.
Behalve dan bij een TEXT veld, dan gebruiken ze wel textarea :)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Anoniem: 102014

Topicstarter
Gonadan schreef op woensdag 13 september 2006 @ 17:35:
[...]

Behalve dan bij een TEXT veld, dan gebruiken ze wel textarea :)
Ah, top! Bedankt, gebruik nu gewoon TEXT ipv VARCHAR. _/-\o_

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Anoniem: 102014 schreef op woensdag 13 september 2006 @ 17:50:
Ah, top! Bedankt, gebruik nu gewoon TEXT ipv VARCHAR. _/-\o_
Dan wel alleen voor het testen hè?
Uiteindelijk wel de typen gebruiken die het best bij het gebruik passen ;)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


Anoniem: 102014

Topicstarter
Gonadan schreef op woensdag 13 september 2006 @ 17:53:
[...]

Dan wel alleen voor het testen hè?
Uiteindelijk wel de typen gebruiken die het best bij het gebruik passen ;)
Denk dat het type "TEXT" eigenlijk het best bij het gebruik passen, aangezien hierin de main text van elke pagina wordt opgeslagen. Of is het gewoon simpelweg beter om een varchar te gebruiken?

  • Gonadan
  • Registratie: Februari 2004
  • Nu online

Gonadan

Admin Beeld & Geluid, Harde Waren
Anoniem: 102014 schreef op woensdag 13 september 2006 @ 17:59:
Denk dat het type "TEXT" eigenlijk het best bij het gebruik passen, aangezien hierin de main text van elke pagina wordt opgeslagen. Of is het gewoon simpelweg beter om een varchar te gebruiken?
Ga jij de hele site in de database opslaan? :X

Dan is TEXT inderdaad wel geschikt en kan je hem vol gas volknallen. ;)

Look for the signal in your life, not the noise.

Canon R6 | 50 f/1.8 STM | 430EX II
Sigma 85 f/1.4 Art | 100-400 Contemporary
Zeiss Distagon 21 f/2.8


  • frickY
  • Registratie: Juli 2001
  • Laatst online: 09-06 21:17
Je hebt magic_quotes_runtime aanstaan.
PHP past dan automatisch addslashes() toe op je database SELECT's.

Zet die uber irritante functionaliteit uit, of als je scripts daar niet op geschreven zijn gebruik je stripslashes alvorens je je var echo-ed.

edit:

Ahh..je voegde de "\n" toe in phpmyadmin in een textveld? Dan klopt het dat het niet werkt

[ Voor 17% gewijzigd door frickY op 13-09-2006 18:13 ]


Anoniem: 102014

Topicstarter
Gonadan schreef op woensdag 13 september 2006 @ 18:02:
[...]

Ga jij de hele site in de database opslaan? :X

Dan is TEXT inderdaad wel geschikt en kan je hem vol gas volknallen. ;)
Tja, hoe anders? Ik wil het liefst gewoon tekstvelden kunnen editen, of raad je dan aan om textbestanden te gebruiken die je in nonaccesable dirs zet?

  • Johnny
  • Registratie: December 2001
  • Laatst online: 11-06 16:06

Johnny

ondergewaardeerde internetguru

Anoniem: 102014 schreef op woensdag 13 september 2006 @ 18:27:
[...]


Tja, hoe anders? Ik wil het liefst gewoon tekstvelden kunnen editen, of raad je dan aan om textbestanden te gebruiken die je in nonaccesable dirs zet?
Er is een verschil tussen 'hele site' en de tekstuele inhoud van alle pagina's, dat laatste is geen probleem, maar afbeeldingen, JavaScript, CSS, templates en andere zooi is er in doen is meestal een minder goed idee.

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


  • Gomez12
  • Registratie: Maart 2001
  • Laatst online: 17-10-2023
Anoniem: 102014 schreef op woensdag 13 september 2006 @ 18:27:
[...]


Tja, hoe anders? Ik wil het liefst gewoon tekstvelden kunnen editen, of raad je dan aan om textbestanden te gebruiken die je in nonaccesable dirs zet?
Maak gewoon in je cms systeem ook een behoorlijke edit module. Zodat je het niet via phpmyadmin hoeft in te kloppen.

IMHO gebruik je phpmyadmin alleen voor noodingrepen die je niet via je normale invoer kunt doen. Als je iets 1x per maand ( of meer ) moet doen dan moet je hier gewoon een fatsoenlijke pagina voor bouwen en niet aanrommelen in phpmyadmin.

Anoniem: 102014

Topicstarter
Op die manier, ja ik ga ook nog een editpage maken, ik wilde het alleen even testen
Pagina: 1