Toon posts:

[php] enter escapen voor in javascript

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een script waarbij er een waarde uit de db wordt gehaald en mbv php in een javascript wordt gezet. Ik heb alle belangrijke tekens zoals ' en " al ge escaped met ereg replace, alleen de Enters wil hij er niet uit halen

ik heb nu dit

$comment_text_escaped = ereg_replace ("\n", "\r", $comment_text);

\r is dus een enter in javascript

het probleem is dat dit script niet werkt, ook als ik enters probeer te vervangen door spaties..

ik ken de manual van ereg_replace alleen bij het escapen van enters gaat het dus fout :(

iemand hulp?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:13
Ten eerste is ereg_replace een beetje een zinloze functie als je toch geen reguliere expressies gebruikt. Dan kun je beter str_replace of strtr gebruiken.

Ten tweede zal 't JavaScript worst wezen op welke manier de coderegels gescheiden worden. Zowel karater 10 als 13 worden beschouwd als whitespace en genegeert. Als je newlines wil gebruiken in variabelen, behoor je dat te doen met door \n in te voeren en niet door fysieke newlines in de code in te voegen.

Tenslotte lijkt me dat ereg_replace wel werkt, alleen is het nogal ongebruikelijk dat je \r als newline character wil gebruiken. Normaal gesproken is 't \r\n of alleen \n, maar voor zover ik weet nooit allen \r.

PS. Als jij toevallig Cradle of Fear op je HDD hebt staan moeten we even wat regelen =)

Verwijderd

Topicstarter
hmm dit werkt ook niet..

$comment_text_escaped = ereg_replace ("\n", "\r\n", $comment_text);

maar het probleem is dus dat in de source er een fysieke newline staat en daardoor krijg ik een error dat de tekenreeks niet is afgesloten

een fysieke newline is toch \n dus ik zie niet precies wat ik nou fout doe ;(

enige concrete antwoorden?

Verwijderd

Topicstarter
Op vrijdag 08 maart 2002 01:32 schreef Soultaker het volgende:
PS. Als jij toevallig Cradle of Fear op je HDD hebt staan moeten we even wat regelen =)
is dat niet een trailer ergens van? ik heb hem vaak zien staan bij share progs.. heb wel stuk of 5 clips

Verwijderd

Topicstarter
Op vrijdag 08 maart 2002 01:38 schreef Dani-Filth het volgende:

[..]

is dat niet een trailer ergens van? ik heb hem vaak zien staan bij share progs.. heb wel stuk of 5 clips
Trouwens, dit was een warez request, dus als je me niet snel helpt meld ik je aan bij SU >:)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:13
Misschien kun je eens \n vervangen door \\n?
code:
1
str_replace("\n","\\n",$comment_text);

Cradle of Fear is een horrorfilm met onder andere Dani in de hoofdrol. Ik ben wel benieuwd wat dat geworden is, maar ik wil er geen 70 piek (sorry, Euro 31,76) voor neertellen. Er is op andere wijze helaas niet aan te komen.
Trouwens, dit was een warez request, dus als je me niet snel helpt meld ik je aan bij SU
Ik heb niet gezegd dat ik 'm wil kopiëren als je 'm hebt =)

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:13
Op vrijdag 08 maart 2002 01:46 schreef Splatter het volgende:
http://www.php.net/manual/en/function.trim.php
Op zich wel nuttig, maar ik kan me in dit geval voorstellen dat je die newline juist wel wil behouden. Ik moet echter bekennen dat het me nog steeds niet HELEMAAL duidelijk is wat er mis gaat.

Misschien kan er even een stukje code bij ofzo? (JavaScript code waarin de fout zit, etc.).

Verwijderd

Topicstarter
Op vrijdag 08 maart 2002 01:44 schreef Soultaker het volgende:
Misschien kun je eens \n vervangen door \\n?
code:
1
str_replace("\n","\\n",$comment_text);

Cradle of Fear is een horrorfilm met onder andere Dani in de hoofdrol. Ik ben wel benieuwd wat dat geworden is, maar ik wil er geen 70 piek (sorry, Euro 31,76) voor neertellen. Er is op andere wijze helaas niet aan te komen.
[..]

Ik heb niet gezegd dat ik 'm wil kopiëren als je 'm hebt =)
hmm werkt nog steeds niet.. hij stopt die \n er wel in alleen de enter staat er nog steeds voor.. erg raar

Verwijderd

Topicstarter
Op vrijdag 08 maart 2002 01:50 schreef Soultaker het volgende:

[..]

Op zich wel nuttig, maar ik kan me in dit geval voorstellen dat je die newline juist wel wil behouden. Ik moet echter bekennen dat het me nog steeds niet HELEMAAL duidelijk is wat er mis gaat.

Misschien kan er even een stukje code bij ofzo? (JavaScript code waarin de fout zit, etc.).
ok..
code:
1
<a href=\"#Post comment\" onclick=\"Quote('$comment_text_escaped')\">Reply</a>

als je op reply drukt moet hij dus de text in een form stoppen, (de quote) maar als mensen een enter gebruiken in hun tekst klopt de javascript niet meer

dit is dus de output
code:
1
2
3
<a href="#Post comment" onclick="Quote('dit is een tekst

en hier nog meer tekst')">Reply</a>

die enter zorgt dus voor de fout en moet weg, die functie trim heb ik al geprobeerd maar helpt ook nix ;(

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15:13
Ok, ik heb 't werkend gekregen door toch ereg_replace te gebruiken en zowel \n als \r\n te laten vervangen door \\n (wat dus in de code een enkele \n wordt). In principe zou een browser altijd \r\n moeten sturen (zal wel in een RFC'tje staan ergens), maar je weet maar nooit natuurlijk.

Ziehier het resultaat:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<html>

<?php
    if(isset($msg))
    {
  $msg_esc=ereg_replace("\r?\n","\\n",$msg);
  print "<script language=JavaScript>alert('$msg_esc');</script>";
    }
?>

<body>
<form>
<textarea name=msg></textarea>
<input type=submit>
</form>
</body>
</html>

En waar blijven m'n w4r3z nu? ;)

edit:
Links vervangen door broncode, anders zijn ze morgen weer verdwenen.

  • Splatter
  • Registratie: December 2000
  • Laatst online: 26-11-2021
Op vrijdag 08 maart 2002 02:02 schreef Dani-Filth het volgende:

[..]
die functie trim heb ik al geprobeerd maar helpt ook nix ;(
Jah, sorry ik had het verhaal niet helemaal gelezen.
Ik dacht dat je gewoon alle newlines eruit wou hebben.

probeer eens:

$comment_text_escaped = ereg_replace ("\\n", " ", $comment_text);

dat zou toch wel moeten werken.
Een \r zou ik niet gebruiken want dat is ook een Carriage return in PHP.
Zie hier.

Edit: ah soultaker had het al voor elkaar ;)

Verwijderd

Topicstarter
Op vrijdag 08 maart 2002 02:13 schreef Soultaker het volgende:
Ok, ik heb 't werkend gekregen door toch ereg_replace te gebruiken en zowel \n als \r\n te laten vervangen door \\n (wat dus in de code een enkele \n wordt). In principe zou een browser altijd \r\n moeten sturen (zal wel in een RFC'tje staan ergens), maar je weet maar nooit natuurlijk.

Ziehier het resultaat:
http://maks.student.utwente.nl/~maks/test.php

En de broncode:
http://maks.student.utwente.nl/~maks/test.phps

En waar blijven m'n w4r3z nu? ;)
whaa hij werkt :) thnx man, de w4r3z worden geregeld , ik geef een seintje als ik het heb
Pagina: 1