Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Kako da resim problem sa Error: unterminated string literal?

  • 13 odgovora
  • 3.308 pregleda

Najnovija ↓

Kako da resim problem sa Error: unterminated string literal? 06.11.2008. u 12:42 · pre 218 meseci #1
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>
Potpis
djLapac
Re: Kako da resim problem sa Error: unterminated string literal? 06.11.2008. u 13:34 · pre 218 meseci #3
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; ?>))
Potpis
djLapac
Re: Kako da resim problem sa Error: unterminated string literal? 06.11.2008. u 16:59 · pre 218 meseci #6
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...
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Kako da resim problem sa Error: unterminated string literal? 06.11.2008. u 18:15 · pre 218 meseci #8
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;
    } 
Potpis
djLapac
Re: Kako da resim problem sa Error: unterminated string literal? 07.11.2008. u 03:57 · pre 218 meseci #9
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/
Re: Kako da resim problem sa Error: unterminated string literal? 07.11.2008. u 07:25 · pre 218 meseci #11
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>
Potpis
djLapac
Re: Kako da resim problem sa Error: unterminated string literal? 07.11.2008. u 08:33 · pre 218 meseci #12
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.
Potpis
http://norway.dakipro.com/
Re: Kako da resim problem sa Error: unterminated string literal? 07.11.2008. u 10:27 · pre 218 meseci #13
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.
Potpis
djLapac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme