2016-09-19 10 views
0

javascript関数からパラメータを起動しようとしていますが、空白があると引用符で問題が発生しているようです。SyntaxError:スペースが空白の文字列リテラルがありません

これはMozillaの

SyntaxError: unterminated string literal

の誤差であり、これは私がMozillaとコードのリターンを分析する場合、私は、私が試したこの

<a id="test')" where="" intervention="" from="" onclick="lancement('script/php/postgres_query.php',0,'DELETE" id="supprimer" class="bouton">Supprimer la fiche</a> 

をした私のコード

$requete = pg_query($dbconnect,"SELECT '<table id=''id1''><col width=''30%''/><col width=''20%''/><col width=''30%''/><col width=''20%''/><tr></tr><tr><td id=''fiche'' colspan=4>Caract</td></tr><tr><td>Stat</td><td>'||coalesce(stat,'')||'</td><td>Service1</td><td>'||coalesce(serv,'')||'</td></tr><tr><td>Date1</td><td>'||coalesce((substring(CAST(date1 AS character varying) from 9 for 2)||'/'||substring(CAST(date1 AS character varying) from 6 for 2)||'/'||substring(CAST(date1 AS character varying) from 1 for 4)),'')||'</td><td>Heure fin</td><td>'||coalesce(heure_fin,'')||'</td></tr><tr><td>Heure début</td><td>'||coalesce(heure_debut,'')||'</td><td>Durée</td><td>'||coalesce(duree::varchar,'')||'</td></tr><tr><td colspan=2><a onclick=document.getElementById(''affichage_popup'').style.display=''none''; class=''bouton'' id=''retour''>Retour</a></td><td colspan=2><a onclick=lancement(''script\\\php\\\postgres_query.php'',0,''DELETE FROM table WHERE id=2''); class=''bouton'' id=''supprimer''>Supprimer la fiche</a></td></tr></table>' AS fiche FROM table") 

です空白を '/ s'のような正規表現に置き換えることは同じことです。

+0

ここにエラーがありますonclick = "lancement( 'script/php/postgres_query.php'、0、 'DELETE" '、閉じていません)'なぜ同じアンカータグに2つのIDがあるのですか – brk

+0

'onclick = lancement( ''スクリプト\\\ php \\ postgres_query.php ''、0、 '' DELETEFROMtableWHEREid = 2 '');'、Mozillaのコードリターンは良いです: 'onclick =" lancement( 'スクリプト/ php/postgres_query.php '、0、' 'DELETEFROMtableWHEREid = 2 "'、私はIDとバリスのクラスを1つ持っています' –

+0

また、そのコードがSQLインジェクションに対して非常に脆弱であることに注意する価値があります。 – vlaz

答えて

1

なぜpg_escape_stringを使用しなかったのですか? http://php.net/manual/en/function.pg-escape-string.php

$requete = pg_query($dbconnect,"SELECT '".pg_escape_string("<table ... </table>")."' AS fiche FROM table"); 

は、しかし、私は正しい...あなたはHTML SQLステートメントで使用することを冗談で表示されている場合...ので、誰もがあなたなステートメントを変更してDBをハックすることができます...あなたは何かについてSQL Injection

を聞いていました
+0

が残っていれば、この関数を使うとコードを書くのが簡単になります。ありがとうございます!しかし、それは解決策ではありません:-(同じことですが、実際にはボタンをクリックする前にこのコード '36970 'をクリックし、そのボタンをクリックすると... –

+0

最後に、あなたの助けを借りて、 SQLインジェクションを使用しないでください。これは安全性が高く、最終的にはより簡単です! –

関連する問題