Archief - MYSQL: enter meegeven in een database

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Cedric

Legacy Member
Ik ben momenteel bezig met een school projectje. Ik zit echter met een probleem.

Mijn kennis in asp is tamelijk weinig en ik heb al gegoogled maar daar ik niet weet welke termen te gebruiken is dit weinig succesvol

even uitleggen wat het probleem is. Ik wil een nieuwsberichtje laten toevoegen aan een website door een admin. Het probleem is dat ik geen enters kan invoeren in een textbox en wanneer ik <br> wil meegeven in de tekst zelf, krijg ik een foutmelding van gevaarlijke invoer. Is er geen mogelijkheid om gewoon wanneer je op enter drukt in het tekstvak zelf dat dit naar de database wordt meegegeven als een enter en dit dan ook zo afbeeld op de webpagina?

ik gebruik mysql met SQLyog

alvast bedankt.

Cedric

maatje

Legacy Member
wel raar, met php kan ik gemakkelijk <br> invoeren in mySQL en dan weer terugroepen en er is ne enter beschikbaar.

NeoNeke

Legacy Member
je kan je berichten die je weer uit je database haalt met php omzetten via het commanda nl2br, in je dbs zit dus je message eigenlijk al met "enters". Die enters geeft hij idd niet door naar je html-output, nu als je zo'n string door de functie nl2br haalt, zet hij <br />.

Dus gewoon aan je admin zeggen dat hij tekst tikt zoals je dat hier doet enteren wanneer je wil de output zet het wel correct

Cedric

Legacy Member
dit is de foutmelding:

potentially dangerous Request.Form value was detected from the client (txtNieuwsInhoud="tesjte<br>").
Description: Request Validation has detected a potentially dangerous client input value, and processing of the request has been aborted. This value may indicate an attempt to compromise the security of your application, such as a cross-site scripting attack. You can disable request validation by setting validateRequest=false in the Page directive or in the configuration section. However, it is strongly recommended that your application explicitly check all inputs in this case.


validateRequest=false weet ik niet staan en de uit de help wordt ik niet veel wijzer. ik gebruik visual web developer 2005

mvg

killgore

Legacy Member
werk dan met \n en voer de to html conversie nadien uit?

Obliv`

Legacy Member
met welke server side taal werkt ge nu? php of asp?

als het met asp is kan je dit doen:
bij het uitlezen van de data uit de database doe je:

Code:
Dim strBericht

strBericht = Replace(rstNieuws("bericht"), vbCrLf, "<br />")

Response.Write(strBericht)

de enters die je nu in je textarea hebt gedaan (de vbCrLf) worden nu vervangen door een <br />

Ramm

Legacy Member
inputText = Replace(inputText, chr(10), "<br />")

/edit
das dus hetzelfde als hierboven al aangegeven

Cedric

Legacy Member
Obliv` zei:
met welke server side taal werkt ge nu? php of asp?

als het met asp is kan je dit doen:
bij het uitlezen van de data uit de database doe je:

Code:
Dim strBericht

strBericht = Replace(rstNieuws("bericht"), vbCrLf, "<br />")

Response.Write(strBericht)

de enters die je nu in je textarea hebt gedaan (de vbCrLf) worden nu vervangen door een <br />


het is enkel asp en SQL. Is die vbCrLf functie ook te verkrijgen voor C#?

Cedric

Legacy Member
als ik het goed begrijp, worden de enters ingevoerd in het textvak bij het schrijven naar de database veranderd naar <br/>'s?


dit is de code:

Code:
string qryAddNieuws = "INSERT INTO tbl_nieuws (nieuwstitel, nieuwstxt, soortid) VALUES ('" + txtNieuwsTitel.Text + "', '" + txtNieuwsInhoud.Text + "', 3)";
        OdbcCommand myComNieuws = new OdbcCommand(qryAddNieuws, myCon);
        myComNieuws.ExecuteNonQuery();

ik heb al geprobeerd met de replace functie maar dat zijn blijkbaar enkel characters.

Obliv`

Legacy Member
p!mp zei:
als ik het goed begrijp, worden de enters ingevoerd in het textvak bij het schrijven naar de database veranderd naar <br/>'s?

Mja, dat kan je ook doen. Maar het is best dat je de originele tekst zo weinig mogelijk wijzigd.

Ik doe zo'n wijziging altijd 'on the fly' (bij het ophalen uit de database dus).

Cedric

Legacy Member
bedankt voor de uitleggen maar ik snap het nog steeds niet :)

dus de tekst wordt gewoon meegeven in een normale string in de database. Hoe worden die enters dan meegegeven?

En in c#, hoe kun je dan met die replace functie werken want als ik de AfTeBeeldenTekst.Replace(chr(10), "<br />") probeer te doen kent hij die chr niet.

bedankt voor jullie reply's (en geduld :))

Cedric

Legacy Member
ok na tal van forums lezen en experimenteren is het uiteindelijk toch gelukt. Ik was domweg vergeten om Regex voor Replace te zetten.


bedankt

Cedric

Legacy Member
ok na tal van forums lezen en experimenteren is het uiteindelijk toch gelukt. Ik was domweg vergeten om Regex voor Replace te zetten.


bedankt

Obliv`

Legacy Member
p!mp zei:
dus de tekst wordt gewoon meegeven in een normale string in de database. Hoe worden die enters dan meegegeven?

Die enters zijn 'onzichtbaar', maar ze zijn er wel degelijk ze :). Je moet gewoon de code van die enter (vb vbCrLf) vervangen als je het record leest.

Voor C# ken ik de equivalent niet.

Cakkie

Legacy Member
vbCrLf is gewoon een constant die eerste een carridge return en dan een linefeed bevat (0x12 en 0x10 als ik me niet vergis).

In c# kan je daar echter ook escape characters voor gebruiken, in dit geval \r (carridge return) en \n (linefeed)

Zoiets dus:
Tekst.Replace("\r\n", "<br />") ;

Boddah

Legacy Member
in C# kun je naar mijn mening het beste Environment.Newline() gebruiken.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan