2009-04-29 6 views
0

iamに渡すと、簡単な挿入スクリプト機能を使用して、登録HTMLページの値をPHPページに渡すことができます。ここ は私のスクリプトです:javascript/ajaxを使用してパスワードの値をPHPページ

function insert() { 
// Optional: Show a waiting message in the layer with ID login_response 
document.getElementById('insert_response').innerHTML = "Just a second..." 
// Required: verify that all fileds is not empty. Use encodeURI() to solve some issues about character encoding. 
var dispname= encodeURI(document.getElementById('disp_name').value); 
var firstname= (document.getElementById('first_name').value); 
var lastname= (document.getElementById('last_name').value); 
var gender= (document.getElementById('genderreg').value); 
var day= (document.getElementById('day').value); 
var month= (document.getElementById('month').value); 
var year= (document.getElementById('year').value); 
var country= (document.getElementById('countryreg').value); 
var city= (document.getElementById('cityreg').value); 
var suburb= (document.getElementById('suburbreg').value); 
var email= (document.getElementById('emailreg').value); 
var password= (document.getElementById('regpassword').value); 
var code= (document.getElementById('code').value); 
var service= (document.getElementById('termservice').value); 

// Set te random number to add to URL request 
nocache = Math.random(); 
// Pass the login variables like URL variable 
http.open('get', 'register_insert.php?site_url='+dispname+'&fname= '+firstname+'&lname= '+lastname+'&gender= '+gender 
      +'&day= '+day+'&month= '+month+'&year= '+year+'&country= '+country+'&city= '+city+'&suburb= '+suburb 
      +'&email= '+email+'&password= '+password+'&code= '+code+'&service= '+service+'&nocache= '+nocache); 
http.onreadystatechange = insertReply; 
http.send(null); 
} 

私はちょうどそれがPHPのページにHTMLからこのようなパスワード値を渡すのは良いpraticeある小さな疑問を持っています。それが良いアイデアではない場合、それを行う理由が何であるか。

あらかじめsugesstionsに感謝します。

答えて

4

ええ、通常、私はすぐに誰かがjavascriptライブラリに行くことを提案しませんが、私はAJAXの例外を作成します。クロスブラウザーで動作するようなことをすることは、それほど価値のないことです。 jQueryのために移動し、自分自身にストレスのヒープを保存してください。

また、jQueryフォームプラグインを見てみましょう。これは非常に簡単な方法ですべてを行います。サイトはhttp://malsup.com/jquery/form/です。

しかし、あなたの質問に答えるために、私はPOSTデータを使用します。一般的な経験則では、何かを取得している場合はGETを使用しますが、送信または変更する場合はPOSTを使用します。

var fields = {'disp_name', 'first_name', 'last_name', 'genderreg' /* etc ... */ ]; 
var values = {}; 
for (var i = 0, l = fields.length; i < l; ++i) { 
    values[fields[i]] = document.getElementById(fields[i]).value; 
} 

http.open(
    'get', 
    'register_insert.php' 
    + '?site_url=' + values.dispname 
    + '&fname=' + values.first_name 
    + '&lname=' + values.last_name /* etc */ 
); 

...しかし、それは本当に私が思うことは重要ではありません。

別の迅速なポインタは、コードはこのような何かを行うことによって、より多く見やすく作ることができるということです。

3

送信この方法でのパスワードは、通常の送信からGETを経由したものと変わりありません。ただし、一般的にはPOSTを使用します。 getを使うことの欠点は、パスワードがURLに現れることです。セキュリティを気にする人は、SSLを使用する必要があります。

jQueryのようなJSライブラリを使用することを検討してください。これはあなたが上でやっていることをとても簡単にします。

+4

SSLを使用しているかどうかにかかわらず、URL/GETにパスワードを渡さないと、パスワードが記録され、別の盗難の可能性があります。 – cgp

関連する問題