PDA

Bekijk Volledige Versie : Textformats MySQL



Anbert.NL
07/11/03, 12:15
Ik wil graag een enkel php bestand maken die alle tekst die ik daar naar
binnen gooi bewerkt. Denk aan linebreaks, stripslashes en smileys. Nu kan
dit vast met een post dmv een formulier, maar is dit de enige manier. En hoe
ga ik te werk als het veld al in een formulier staat??

Bestaat er al iets dergelijks? Dan hoef ik het wiel niet opnieuw uit te
vinden.

Maarten Wierda
07/11/03, 12:30
"Anbert.NL" wrote:

> Ik wil graag een enkel php bestand maken die alle tekst die ik daar naar
> binnen gooi bewerkt.

Waar naar binnen gooi?

> Denk aan linebreaks, stripslashes en smileys. Nu kan
> dit vast met een post dmv een formulier, maar is dit de enige manier.

Kan ook via GET lijkt mij.

> En hoe
> ga ik te werk als het veld al in een formulier staat??

Welk veld?

> Bestaat er al iets dergelijks? Dan hoef ik het wiel niet opnieuw uit te
> vinden.

Geen idee, ik begrijp namelijk absoluut niet wat je wilt. Kun je
misschien wat meer aandacht schenken aan de vraagstelling?

--
Cheers, Maarten Wierda

"Music is first, lyrics are secondary."

Ronald Paul
07/11/03, 12:45
"Anbert.NL" <a.smedes@chello.nl> schreef:

>Ik wil graag een enkel php bestand maken die alle tekst die ik daar naar
>binnen gooi bewerkt. Denk aan linebreaks, stripslashes en smileys. Nu kan
>dit vast met een post dmv een formulier, maar is dit de enige manier. En hoe
>ga ik te werk als het veld al in een formulier staat??
>
>Bestaat er al iets dergelijks? Dan hoef ik het wiel niet opnieuw uit te
>vinden.

Met een beetje creativiteit kom ik tot de conclusie dat je een soort
UBB-tags wilt implementeren. Zoek op deze term met Google en je komt
vast wel wat bruikbaars tegen. Ik adviseer je wel om de newlines,
smiley's en weet ik allemaal niet wat, pas op het laatste moment om te
vormen, want dan hoeft het prces niet omkeerbaar te zijn. Zet dus
alles wat de gebruiker invoert zonder conversie in de database.

Succes!

--
Groet, Ronald

Anbert.NL
09/11/03, 01:30
> >Ik wil graag een enkel php bestand maken die alle tekst die ik daar naar
> >binnen gooi bewerkt. Denk aan linebreaks, stripslashes en smileys. Nu kan
> >dit vast met een post dmv een formulier, maar is dit de enige manier. En
hoe
> >ga ik te werk als het veld al in een formulier staat??

> Met een beetje creativiteit kom ik tot de conclusie dat je een soort
> UBB-tags wilt implementeren. Zoek op deze term met Google en je komt
> vast wel wat bruikbaars tegen. Ik adviseer je wel om de newlines,
> smiley's en weet ik allemaal niet wat, pas op het laatste moment om te
> vormen, want dan hoeft het prces niet omkeerbaar te zijn. Zet dus
> alles wat de gebruiker invoert zonder conversie in de database.

Ik heb de UBB-tags afhandeling in een funtie gezet n.l. :

function ubbreplace( $var )
{
$var = preg_replace( "/<\/?[^\\<>|\/]*>/", "", $var );
$var = preg_replace( "/\[b\](.+)\[\/b\]/", "<b>\\1</b>", $var );
$var = preg_replace( "/\[u\](.+)\[\/u\]/", "<u>\\1</u>", $var );
$var = preg_replace( "/\[i\](.+)\[\/i\]/", "<i>\\1</i>", $var );
$var = preg_replace( "/\[url=(.+)\](.+)\[\/url\]/", "<a
href=\"\\1\">\\2</a>", $var );
$var = preg_replace(
"/(([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)([\.a-zA-Z0-9_-]+))/", "<a
href=\"mailto:\\2@\\3\\4\">\\1</a>", $var );
return $var;
}

Nu wil ik er ook graag voor zorgen dat de zinnen na x aantal karakter worden
afgekapt na een heel woord? Heef hier iemand een regeltje voor liggen? Ik
krijg dit niet voor elkaar.

Gr,
Anbert "PhP newbeeeeeee"

Ronald Paul
09/11/03, 02:15
"Anbert.NL" <a.smedes@chello.nl> schreef:

>Nu wil ik er ook graag voor zorgen dat de zinnen na x aantal karakter worden
>afgekapt na een heel woord? Heef hier iemand een regeltje voor liggen? Ik
>krijg dit niet voor elkaar.

Ik weet niet exact waar de uitvoer naartoe gaat, maar waarom zou je
harde enters willen toevoegen op plaatsen waar de gebruiker deze
hoogstwaarschijnlijk niet bedoeld heeft? Waarom voldoet het
'word-wrappen' van browsers niet?

--
Groet, Ronald

Anbert.NL
09/11/03, 03:00
> >Nu wil ik er ook graag voor zorgen dat de zinnen na x aantal karakter
worden
> >afgekapt na een heel woord? Heef hier iemand een regeltje voor liggen? Ik
> >krijg dit niet voor elkaar.
>
> Ik weet niet exact waar de uitvoer naartoe gaat, maar waarom zou je
> harde enters willen toevoegen op plaatsen waar de gebruiker deze
> hoogstwaarschijnlijk niet bedoeld heeft? Waarom voldoet het
> 'word-wrappen' van browsers niet?

Kijk eens naar http://www.anbert.nl/gastenboek.php en je ziet waarom. Wel
iets naar benedenscrollen, lange regels zijn funest voor de opmaak.

Ronald Paul
09/11/03, 03:15
"Anbert.NL" <anbert@flashmail.com> schreef:

>Kijk eens naar http://www.anbert.nl/gastenboek.php en je ziet waarom. Wel
>iets naar benedenscrollen, lange regels zijn funest voor de opmaak.

Ik heb even de vrijheid genomen er een 'lang' berichtje op te zetten,
want het gastenboek was leeg. Ik zie echter geen enkel probleem
verschijnen met de opmaak. Ik vermoed dat je regels bedoeld die geen
spaties bevatten en daarom door browsers niet gewrapped worden.
Correct?

--
Groet, Ronald

Anbert.NL
09/11/03, 03:15
> >Kijk eens naar http://www.anbert.nl/gastenboek.php en je ziet waarom. Wel
> >iets naar benedenscrollen, lange regels zijn funest voor de opmaak.
>
> Ik heb even de vrijheid genomen er een 'lang' berichtje op te zetten,
> want het gastenboek was leeg. Ik zie echter geen enkel probleem
> verschijnen met de opmaak. Ik vermoed dat je regels bedoeld die geen
> spaties bevatten en daarom door browsers niet gewrapped worden.
> Correct?

Klopt, je was er net voordat ik er een nieuw voorbeeld in zette. Als je nog
1 keer op refresh gedrukt had had je het gezien. Maar het zijn inderdaad de
woorden met spaties.

Ronald Paul
09/11/03, 03:30
"Anbert.NL" <anbert@flashmail.com> schreef:

>> Ik heb even de vrijheid genomen er een 'lang' berichtje op te zetten,
>> want het gastenboek was leeg. Ik zie echter geen enkel probleem
>> verschijnen met de opmaak. Ik vermoed dat je regels bedoeld die geen
>> spaties bevatten en daarom door browsers niet gewrapped worden.
>> Correct?
>
>Klopt, je was er net voordat ik er een nieuw voorbeeld in zette. Als je nog
>1 keer op refresh gedrukt had had je het gezien. Maar het zijn inderdaad de
>woorden met spaties.

Je bedoeld natuurlijk die zonder spaties. Tis al laat he :-)

Gebruik voor het opbreken van te lange woorden iets als dit:

$var = preg_replace('/(\S{50})/', "$0\n", $var);

Het zet een newline tussen elke 50 karakters van een woord langer dan
diezelfde 50 karakters. Hierna, en dat merkte ik ook al toen ik het
testberichtje plaatste, moet je ook nog even nl2br() toepassen.

--
Groet, Ronald

Anbert.NL
12/11/03, 17:15
> >> Ik heb even de vrijheid genomen er een 'lang' berichtje op te zetten,
> >> want het gastenboek was leeg. Ik zie echter geen enkel probleem
> >> verschijnen met de opmaak. Ik vermoed dat je regels bedoeld die geen
> >> spaties bevatten en daarom door browsers niet gewrapped worden.
> >> Correct?

> >Klopt, je was er net voordat ik er een nieuw voorbeeld in zette. Als je
nog
> >1 keer op refresh gedrukt had had je het gezien. Maar het zijn inderdaad
de
> >woorden met spaties.

> Je bedoeld natuurlijk die zonder spaties. Tis al laat he :-)
> Gebruik voor het opbreken van te lange woorden iets als dit:
> $var = preg_replace('/(\S{50})/', "$0\n", $var);
> Het zet een newline tussen elke 50 karakters van een woord langer dan
> diezelfde 50 karakters. Hierna, en dat merkte ik ook al toen ik het
> testberichtje plaatste, moet je ook nog even nl2br() toepassen.

DANK!!! Ik heb het "preg_replace" een beetje door en heb via google een
reeks uit wat voorgebakken UBB fucties gejat. ;) Nu heb ik wel iets
anders... Het is nu al een behoorlijke uitgebreidde functie geworden en wil
hem eigenlijk in een appart php bestand zetten, maar als ik " include
"bestand.php" gebruik dan ziet hij de functie niet. Ik zal het wel op een
andere manier moeten doen, vast iets met "global" ofzo... Ik zal nog ff
zoeken, het is zwaar om een newbee te zijn...

Ronald Paul
12/11/03, 18:15
"Anbert.NL" <anbert@flashmail.com> schreef:

>Het is nu al een behoorlijke uitgebreidde functie geworden en wil
>hem eigenlijk in een appart php bestand zetten, maar als ik " include
>"bestand.php" gebruik dan ziet hij de functie niet.

Staan er PHP-tags in deze aparte .php ('<?php' en '?>')?

--
Groet, Ronald

Anbert.NL
12/11/03, 20:00
"Ronald Paul" <usenet@rcpaul.nl> schreef in bericht
news:vfp4rv8fu87obbkdmkj7tg8b9nc05b7t3k@4ax.com...
> "Anbert.NL" <anbert@flashmail.com> schreef:

> >Het is nu al een behoorlijke uitgebreidde functie geworden en wil
> >hem eigenlijk in een appart php bestand zetten, maar als ik " include
> >"bestand.php" gebruik dan ziet hij de functie niet.

> Staan er PHP-tags in deze aparte .php ('<?php' en '?>')?

Ja, ik denk van; ik haal ze meteen weg... Dat werkt dus ook niet!?

Ronald Paul
12/11/03, 20:15
"Anbert.NL" <anbert@flashmail.com> schreef:

>> Staan er PHP-tags in deze aparte .php ('<?php' en '?>')?
>
>Ja, ik denk van; ik haal ze meteen weg... Dat werkt dus ook niet!?

Klopt :-) Ik dacht dat ze er niet in stonden, maar ze moeten er juist
wél in staan. De include(..)-functie-aanroep staat zelf ook in
PHP-code neem ik aan?

>Het is nu al een behoorlijke uitgebreidde functie geworden en wil
>hem eigenlijk in een appart php bestand zetten, maar als ik " include
>"bestand.php" gebruik dan ziet hij de functie niet.

Waaraan merk je dat hij de functie niet 'ziet'? Wordt de include(..)
per ongeluk conditioneel (bijvoorbeeld in een if-constructie)
uitgevoerd misschien?

--
Groet, Ronald

Ronald Paul
12/11/03, 21:45
"Anbert.NL" <anbert@flashmail.com> schreef:

>> Waaraan merk je dat hij de functie niet 'ziet'? Wordt de include(..)
>> per ongeluk conditioneel (bijvoorbeeld in een if-constructie)
>> uitgevoerd misschien?
>
>Ik krijg de volgende melding in de pagina :
>
>Fatal error: Call to undefined function: ubbtexthandler()

[..]

Controleer of de namen van de functies in de aanroep en in de
definitie exact overeenkomen (ook in hoofdlettergebruik). En vindt de
include plaats voor de functieaanroep zelf? echo anders eens iets in
die include, dan weet je zeker dat hij ook daadwerkelijk geïnclude
wordt.

--
Groet, Ronald

Daniel Tryba
12/11/03, 23:00
Anbert.NL <anbert@flashmail.com> wrote:
>> Klopt :-) Ik dacht dat ze er niet in stonden, maar ze moeten er juist
>> w?l in staan. De include(..)-functie-aanroep staat zelf ook in
>> PHP-code neem ik aan?
>
> Ja die staat er in : include "http://www.anbert.nl/aaa/bbb.php";

Je include dus de _output_ van het php script en niet het php script
zelf, gebruik dus gewoon de locale file.

--

Daniel Tryba

Marcus
13/11/03, 12:00
Anbert.NL wrote:
>> >Ik wil graag een enkel php bestand maken die alle tekst die ik daar naar
>> >binnen gooi bewerkt. Denk aan linebreaks, stripslashes en smileys. Nu kan
>> >dit vast met een post dmv een formulier, maar is dit de enige manier. En
> hoe
>> >ga ik te werk als het veld al in een formulier staat??
>
>> Met een beetje creativiteit kom ik tot de conclusie dat je een soort
>> UBB-tags wilt implementeren. Zoek op deze term met Google en je komt
>> vast wel wat bruikbaars tegen. Ik adviseer je wel om de newlines,
>> smiley's en weet ik allemaal niet wat, pas op het laatste moment om te
>> vormen, want dan hoeft het prces niet omkeerbaar te zijn. Zet dus
>> alles wat de gebruiker invoert zonder conversie in de database.
>
> Ik heb de UBB-tags afhandeling in een funtie gezet n.l. :
>
> function ubbreplace( $var )
> {
> $var = preg_replace( "/<\/?[^\\<>|\/]*>/", "", $var );
> $var = preg_replace( "/\[b\](.+)\[\/b\]/", "<b>\\1</b>", $var );
> $var = preg_replace( "/\[u\](.+)\[\/u\]/", "<u>\\1</u>", $var );
> $var = preg_replace( "/\[i\](.+)\[\/i\]/", "<i>\\1</i>", $var );
> $var = preg_replace( "/\[url=(.+)\](.+)\[\/url\]/", "<a
> href=\"\\1\">\\2</a>", $var );

hier \[url=[^"]+)\] van maken, anders heb je een leuke XSS bug.

> $var = preg_replace(
> "/(([a-zA-Z0-9_-]+)@([a-zA-Z0-9_-]+)([\.a-zA-Z0-9_-]+))/", "<a
> href=\"mailto:\\2@\\3\\4\">\\1</a>", $var );
> return $var;
> }

Dit beschrijft lang niet alle mailadressen.

Mark

Anbert.NL
13/11/03, 23:00
"Daniel Tryba" <news_nl.internet.www.server-side@canopus.nl> schreef in
bericht news:bou9l3$4gc$2@news.tue.nl...
> Anbert.NL <anbert@flashmail.com> wrote:
> >> Klopt :-) Ik dacht dat ze er niet in stonden, maar ze moeten er juist
> >> w?l in staan. De include(..)-functie-aanroep staat zelf ook in
> >> PHP-code neem ik aan?

> > Ja die staat er in : include "http://www.anbert.nl/aaa/bbb.php";

> Je include dus de _output_ van het php script en niet het php script
> zelf, gebruik dus gewoon de locale file.

Je bedoelt dus dat ik deze functie in elk php bestand waar ik deze functie
wil gebruiken de hele reeks code moet stampen... Ik kan mij eigenlijk niet
voorstellen dat er geen andere manier is, maar misschien vergis ik mij.

Anbert.NL
13/11/03, 23:30
"Ronald Paul" <usenet@rcpaul.nl> schreef in bericht
news:b065rvoa3afjhv4vrq8a00hjrvq9qo4fnd@4ax.com...
> "Anbert.NL" <anbert@flashmail.com> schreef:
>
> >> Waaraan merk je dat hij de functie niet 'ziet'? Wordt de include(..)
> >> per ongeluk conditioneel (bijvoorbeeld in een if-constructie)
> >> uitgevoerd misschien?
> >Ik krijg de volgende melding in de pagina :
> >Fatal error: Call to undefined function: ubbtexthandler()

> Controleer of de namen van de functies in de aanroep en in de
> definitie exact overeenkomen (ook in hoofdlettergebruik). En vindt de
> include plaats voor de functieaanroep zelf? echo anders eens iets in
> die include, dan weet je zeker dat hij ook daadwerkelijk geïnclude
> wordt.

Check, check alles ok. Heeft Daniel gelijk???

Ronald Paul
13/11/03, 23:30
"Anbert.NL" <anbert@flashmail.com> schreef:

>Check, check alles ok. Heeft Daniel gelijk???

Ja, maar je interpreteerd zijn oplossing verkeerd. In jou code staat
nu iets als

include "http://www.anbert.nl/aaa/bbb.php";

PHP gaat nu vrolijk http://www.anbert.nl/aaa/bbb.php ophalen en
hetgeen includen wat jij zelf krijgt te zien als je met een reguliere
browser die URL bezoekt. Het probleem zit hem hier in: als er in deze
bbb.php alleen maar functiedefinities staan zal dit niets zijn. En
zelfs als dit wel iets zou zijn, is het onwaarschijnlijk dat dit
PHP-code is.

Wat Daniel bedoeld is dat je in plaats van een HTTP-URL een direct
(relatief of absoluut) pad moet opgeven naar waar het bestand fysiek
op de harde schijf staat.

Stel dat aaa.php deze bbb.php wil includen, dan doe je dus gewoon

include "bbb.php";

als bbb.php in dezelfde directory staat als aaa.php.

--
Groet, Ronald

Daniel Tryba
14/11/03, 20:00
Anbert.NL <anbert@flashmail.com> wrote:
>> > Ja die staat er in : include "http://www.anbert.nl/aaa/bbb.php";
>
>> Je include dus de _output_ van het php script en niet het php script
>> zelf, gebruik dus gewoon de locale file.
>
> Je bedoelt dus dat ik deze functie in elk php bestand waar ik deze functie
> wil gebruiken de hele reeks code moet stampen... Ik kan mij eigenlijk niet
> voorstellen dat er geen andere manier is, maar misschien vergis ik mij.

Ik zie dat Roland al uitgebreider heeft uitgelegt wat ik hierboven in 1
regel beschreef

--

Daniel Tryba