Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Kako da resim problem sa Error: unterminated string literal?

[es] :: Javascript i AJAX :: Kako da resim problem sa Error: unterminated string literal?

[ Pregleda: 2247 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
212.200.65.*

Sajt: www.websolutions.co.rs


Profil

icon Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 11:42 - pre 188 meseci
Imam puno problema sa jednom glupavom sitnicom. Evo da cu primer jedne php stranice u kojoj cete videti u cemu je problem.
Kada se klikne na link greska on mi izbaci Error: unterminated string literal.
Kako da se resim ovoga?

Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <script language="JavaScript">
    function onerror(msg, URL, lineNum) {
          var errWind = window.open("","errors","HEIGHT=270,WIDTH=400")
          var wintxt = "<HTML><BODY BGCOLOR=RED>"
          wintxt += "<B>An error has occurred on this page.  Please report it to Tech Support.</B>"
          wintxt += "<FORM METHOD=POST ACTION=mailTo:[email protected]>"
          wintxt += "<TEXTAREA COLS=45 ROWS=8 WRAP=VIRTUAL>"
          wintxt += "Error: " + msg + "\n"
          wintxt += "URL: " + URL + "\n"
          wintxt += "Line: " + lineNum + "\n"
          wintxt += "Client: " + navigator.userAgent + "\n"
          wintxt += "-----------------------------------------\n"
          wintxt += "Please describe what you were doing when the error occurred:"
          wintxt += "</TEXTAREA><P>"
          wintxt += "<INPUT TYPE=SUBMIT VALUE='Send Error Report'>"
          wintxt += "<INPUT TYPE=button VALUE='Close' onClick='self.close()'>"
          wintxt += "</FORM></BODY></HTML>"
          errWind.document.write(wintxt)
          errWind.document.close()
          return true
    }
</script>
  <title></title>
  </head>
  <body>
  <?php 
  $tekst="errt\nĆŽĆŽĐŠĐš676666361223232132n"; 
  ?>
  <a href='#' onClick="window.alert('<?php echo $tekst;?>')">greska</a>
  </body>

djLapac
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 11:55 - pre 188 meseci
U promenljivoj $text ti smeta ono "\n" jer dobijaš renderovan JS gde se string lomi u dva reda a to ne sme.

Probaj sa staviš "\\n" i stavi dupli navodnik umesto jednostruki.
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
212.200.65.*

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 12:34 - pre 188 meseci
Znam ja kako da to resim iz php-a
ali ova promenjiva $text se prihvata iz forme, alink se nalazi u smarty tepmlate-u. Mene interesuje da li u Java Scriptu postoji neka funkcija koju bi koristio da izbegnem ovu gresku. Tipa window.open(naziv_funkcije(<?php echo $text; ?>))

djLapac
 
Odgovor na temu

Miroslav Ćurčić
ex mVeliki
Novi Sad

Član broj: 19034
Poruke: 1118
*.adsl.beotel.net.



+19 Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 12:43 - pre 188 meseci
Običan str_replace bi trebalo da uradi posao, probaj ovo:

window.open(naziv_funkcije("<?php echo str_replace("\n", '\n', $text); ?>"))

mada ima i JS funkciju "replace".
"The quieter you become, the more you are able to hear."
Blog | PowerCMS
 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
212.200.65.*

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 13:39 - pre 188 meseci
:)
Ne izbacuje gresku samo kada je u tekstu \n vec i niz drugih specijalnih karaktera, zatio nisam hteo da ispravljam gresku sa str_replace, verujem da ima neko lepse resenje u JS
djLapac
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 15:59 - pre 188 meseci
umesto:
Code:

  <a href='#' onClick="window.alert('<?php echo $tekst;?>')">greska</a>

pisi:
Code:

  <a href='#' onClick="window.alert('<?php echo addslashes($tekst);?>')">greska</a>


to bi trebalo da ti resi problem...
 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
*.westend.com.

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 16:12 - pre 188 meseci
E sada kako da pozvovem addslashes funkciju u smartiju?
Ja sam napravio tu funkciju u java scriptu, ali kada je upotrebim da je mi istu gresku
djLapac
 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
*.p3-gmbh.de.

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?06.11.2008. u 17:15 - pre 188 meseci
Evo kako izgledaju te funkcije u JS- u koje sam ja koristio ali ne ide,
Code:

    function addslashes(str) {
      str=str.replace(/\'/g,'\\\'');
      str=str.replace(/\"/g,'\\"');
      str=str.replace(/\\/g,'\\\\');
      str=str.replace(/\0/g,'\\0');
      return str;
    }
    
    function stripslashes(str) {
      str=str.replace(/\\'/g,'\'');
      str=str.replace(/\\"/g,'"');
      str=str.replace(/\\\\/g,'\\');
      str=str.replace(/\\0/g,'\0');
      return str;
    } 

djLapac
 
Odgovor na temu

Man-Wolf
Mihailo Joksimovic
Beograd

Član broj: 17016
Poruke: 873
*.eunet.yu.



+13 Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?07.11.2008. u 02:57 - pre 188 meseci
Code:

function addslashes(str){return(str+'').replace(/([\\"'])/g,"\\$1").replace(/\0/g,"\\0");}


Odmah da napomenem, nisam ovo ja pisao, nego sam pre nekog vremena trazio "zamenu" za neku PHP-ovu funkciju u JS-u i naleteo sam na neki projekat ciji je cilj da sve PHP funkcije prevede u JS.

Vise informacija na ovoj adresi: http://kevin.vanzonneveld.net/techblog/article/phpjs_licensing/
 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
212.200.65.*

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?07.11.2008. u 06:14 - pre 188 meseci
Ova tvoja funkcija ima error. negde ti fali ' ili " ili \.
Ja nisam uspeo da provalim gde.
djLapac
 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
212.200.65.*

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?07.11.2008. u 06:25 - pre 188 meseci
Evo samo da vam demonstriram da ne radi nijedna od ovih funkcija addslashes, takodje ni kada koristim addslashesfunkciju iz php opet imam istu gresku. Stvarno ne znam da li postoji uopste resenje za ovo. Samo kliknite na linkove i videcete da opet javlja gresku.
Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <meta http-equiv="content-type" content="text/html; charset=windows-1250">
  <meta name="generator" content="PSPad editor, www.pspad.com">
  <script language="JavaScript">
    function onerror(msg, URL, lineNum) {
          var errWind = window.open("","errors","HEIGHT=270,WIDTH=400")
          var wintxt = "<HTML><BODY BGCOLOR=RED>"
          wintxt += "<B>An error has occurred on this page.  Please report it to Tech Support.</B>"
          wintxt += "<FORM METHOD=POST ACTION=mailTo:[email protected]>"
          wintxt += "<TEXTAREA COLS=45 ROWS=8 WRAP=VIRTUAL>"
          wintxt += "Error: " + msg + "\n"
          wintxt += "URL: " + URL + "\n"
          wintxt += "Line: " + lineNum + "\n"
          wintxt += "Client: " + navigator.userAgent + "\n"
          wintxt += "-----------------------------------------\n"
          wintxt += "Please describe what you were doing when the error occurred:"
          wintxt += "</TEXTAREA><P>"
          wintxt += "<INPUT TYPE=SUBMIT VALUE='Send Error Report'>"
          wintxt += "<INPUT TYPE=button VALUE='Close' onClick='self.close()'>"
          wintxt += "</FORM></BODY></HTML>"
          errWind.document.write(wintxt)
          errWind.document.close()
          return true
    }
    function addslashes1(str){
    return(str+'').replace(/([\\"'])/g,"\\$1").replace(/\0/g,"\\0");
    }
    
    function addslashes(str) {
      str=str.replace(/\'/g,'\\\'');
      str=str.replace(/\"/g,'\\"');
      str=str.replace(/\\/g,'\\\\');
      str=str.replace(/\0/g,'\\0');
      return str;
    }
    
</script>
  <title></title>
  </head>
  <body>
  <?php 
  $tekst="errt\nĆŽĆŽĐŠĐš676666361223232132n";
  $tekst2=addslashes("errt\nĆŽĆŽĐŠĐš676666361223232132n");  
  ?>
  <a href='#' onClick="window.alert(addslashes1('<?php echo $tekst;?>'))">greska kada koristim addslashes1 funkciju iz JS</a><br />
  <a href='#' onClick="window.alert(addslashes('<?php echo $tekst;?>'))">greska kada koristim addslashes funkciju iz JS</a><br />
  <a href='#' onClick="window.alert('<?php echo $tekst2;?>')">greska kada koristim addslashes funkciju iz PHP</a><br />
  </body>
</html>

djLapac
 
Odgovor na temu

dakipro
Dalibor Jovic
Web Developer
Bergen, Norway

Član broj: 31848
Poruke: 1792
*.adsl.beotel.net.

Sajt: norway.dakipro.com


+190 Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?07.11.2008. u 07:33 - pre 188 meseci
Ne znam zasto ti ovo sad ne radi u js, ali znam da smarty ima addslashes po defaultu: {$promenjiva|addslashes}.
Svejedno, pogledaj source ove stranice, ja za sve primere dobijem
Code:

onclick="alert('errt
CŽCŽÐŠÐš676666361223232132n')"

sto ce reci da je ispostovan \n, tj html je napravio novi red na kraju. Ja sam za ovakve stvari koristio custom php funckiju nl2br2, koja zameni \n sa <br /> ali ne doda novu liniju kao sto to genericka nl2br funkcija cini.
Ako pak stavis
Code:

  $tekst2=addslashes('errt\nCŽCŽÐŠÐš676666361223232132n'); 

znaci sa jednostrukim navodnicima, php nece ispostovati \n, ali ce se to ipak pokazati u alertu i dobices alert('errt\nCŽCŽÐŠÐš676666361223232132n') koji ce da radi, tako da mislim da ce ti neka vrsta modifikovane nl2br u phpu zavrsiti posao. Ima na php forumu i primer toga, potrazi, obican str_replace mislim da je.

 
Odgovor na temu

nezki
Miodrag Lapcevic
Beograd

Član broj: 101503
Poruke: 438
212.200.65.*

Sajt: www.websolutions.co.rs


Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?07.11.2008. u 09:27 - pre 188 meseci
Da li mi verujete da jos nisam uspeo da resim problem :(
Zato sam odlucio da sada sve opisem ovde:
Ovako ja imam jedan template u Smartiju u kome izmedju ostalog imam i linkove
Code:

{section name=list loop=$list}
<a href="#" onClick='alert( "{$list[list].opis|addslashes}");return false;'>Pogledaj opis</a><br />
{/section}

Kada se klikne na jedan od linkova iskoci alert u kome pise opis, a opis se iscita iz baze i prosledi Smarty template-u.
Opis se u bazu unosi iz CMS-a iz jednog textarea polja
Query za unos opisa ide ovako:
Code:

$opis= htmlspecialchars($_POST['opis'], ENT_QUOTES);
$query = "UPDATE tabela SET opis='".$opis."' WHERE id=$id ";

U php.ini je magic_quotes_gpc = Off
Provalio sam da kada god prilikom unosa opisa, tj kucanja teksta u textarea polju u CMS-u udarim enter i takav opis unesem u bazu ili ako upotrebim navodnike u tekstu opisa, posle kada na sajtu kliknem na link da pogledam opis on mi izbacuje onu glupu gresku Error: unterminated string literal

Molim vas pomozite mi poludecu vise od ove gluposti.

djLapac
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Kako da resim problem sa Error: unterminated string literal?07.11.2008. u 14:36 - pre 188 meseci
kad upisujes u bazu, ukoliko ti je magic quotes iskljucen obavezno provuci string kroz addslashes, a kad stampas to iz baze onda koristi addcslashes($text, "\\\"\n\r'") to bi trebalo da ti resi problem
 
Odgovor na temu

[es] :: Javascript i AJAX :: Kako da resim problem sa Error: unterminated string literal?

[ Pregleda: 2247 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.