PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Unrlencoding JS & PHP
Postitaja: joker 2010-05-20 13:41:36
HTML:

<input id="name" name="data[name]" value="" size="40" maxlength="250" type="text" autocomplete="off" class="chk" onBlur="compInfo('name');">


Js:

var compInfo = function(ffield)
{
var value = $.trim( $("#" + ffield).val() );

if (!(value == ""))
{
$.ajax({
url : 'index.php?&value=' + value,
success : function (data) {
result = data.split("|");
if (result['0'] == 'false')
{
//Alert error
alert (result['1']);
}}});}}


PHP script:

$sql = "SELECT COUNT(*) FROM data WHERE name LIKE '".addslashes($_GET['value']);


Probleem:
Praegu piisab sellest kui kasutaja sisestab väljale teksti vahele mõne erisümboli '&, ?, #', ning ajaxi päring läheb lolliks.

Kuidas lahendada, et kasutajal oleks võimalik väljale sisestada erisümboleid, ning oleks võimalik antud välja sisu üle Ajaxi PHP scriptiga ka kontrollida?

Viimati muudetud: 20-05-2010 13:44:55
Muutja: joker
Põhjus:

RE: Unrlencoding JS & PHP
Postitaja: k 2010-05-20 13:58:13
escape()
RE: Unrlencoding JS & PHP
Postitaja: Waher 2010-05-20 14:16:30
Ma ei plaani veel õppejõuks minna, nii et õpi nüüd siit:

ÄRA KASUTA ADDSLASHES() ESCAPEMISEKS MYSQL PÄRINGUS!

Selle jaoks on olemas turvalisem lahendus mysql_real_escape_string(). See funktsioon võtab arvesse MySQL'i ennast ja selle seadeid escapemiseks ja on tegelikult MySQL'i enda funktsioon. Loe seda: http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-re .

Mis puudutab escapemist javascriptis ja AJAX URL'i päringus, siis escape() on samasugune ooper nagu addslashes() ja see ei taga kõiki olukordi. Õigem on kasutada Javascripti encodeURIComponent() funktsiooni muutujal.

Sellega encode'd kõik päringustringil olevad muutujad ära ja saada backend'i.

Viimati muudetud: 20-05-2010 14:17:40
Muutja: Waher
Põhjus: kirjavead

RE: Unrlencoding JS & PHP
Postitaja: joker 2010-05-21 10:57:19
Tänud Waher, encodeURIComponent() lahendas probleemi.

Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.091658115387