2011-01-30 15 views
0

フォームの更新スクリプトを実行しています。ユーザー情報は、サインアップ時に提出​​され、ユーザー名、パス、full_name、電話のフィールドを持つユーザーdbに送信されます。たとえば、ユーザーが自分の名前を変更するためにフォームを更新すると、ユーザー名、パス、テレフィールドも更新フォームの一部になります。したがって、ユーザーが更新フォームで自分の電話番号を更新すると、ユーザー名情報とパス情報と名前情報もフォームに表示されます。問題は、ユーザー名が既に使用されていることをシステムが認識していることです。MYSQL更新値の認識

それでは、どのように私は、変更された値は、システムによってピックアップされなければならないような方法で、私のスクリプトを更新します。それとももっと良い方法がありますか?

コード:

  if (!get_magic_quotes_gpc()) { 
      $_POST['username'] = addslashes($_POST['username']); 
     } 
     $idcheck = $_POST['username']; 
     $check = mysql_query("SELECT username FROM users WHERE username = '$username'") 
      or die(mysql_error()); 
     $check2 = mysql_num_rows($check); 


     if ($check2 != 0) { 
     print("username already taken"); 
     die(''); 
      } 

基本的な問題は、それが値が既に存在していることを認識するだけで、それは、共通のIDまたはユーザー名を使用して、その同じユーザー情報ではないいくつかの他のユーザーと認識しないということです...ただ、更新スクリプトから次のコードを削除

+0

ユーザーがすることになっていますフォームでユーザー名を変更することはできますか?そうでない場合は、更新する必要はありません。 –

答えて

1

$idcheck = $_POST['username']; 
$check = mysql_query("SELECT username FROM users WHERE username = '$username'") or die(mysql_error()); 
$check2 = mysql_num_rows($check); 

if ($check2 != 0) { 
    print("username already taken"); 
    die(''); 
} 

物事はその後、問題ないはずです。

あなたがサインアップすると更新のために同じスクリプトを持っている場合、私はそれが良い習慣ですとして使用すると、2つの異なるスクリプトを作る示唆しています。

ベスト、私はあなたがユーザ名がすでにユーザーが自分のユーザー名を変更することを決定した場合にとられるかどうかを確認する意味であれば、あなたが前に掲示コードは、右だったと思う カムラン

+0

申し訳ありませんカムラン。間違ったコードを貼り付けた今更新されました。 – AAA

+0

OK、更新されたコードで私の答えを編集します)= – thesocialgeek

+0

とbtwは、フォームに投稿されたデータを常にクリーンアップします。 $ idcheck = $ _POST ['username']; $ idcheck = mysql_real_escape_string($ _ POST ['username'])のようなものでなければなりません。 – thesocialgeek

1

は、単にコードのこの部分を実行しますユーザー名は罰金(または古いユーザー名を残し、すでに撮影したユーザ名の警告をエコーし​​ながら、それは他のfiledsを変更することができます)です念のために実行されていることになるUPDATE文、前に今投稿

+0

私は更新ステートメントの前にこのコードを実行しています。 – AAA

+1

[OK]を、ので、私はright..Ohつもりはないことを理解することはできません、と私はmysql_real_escape_stringの右つもりはないが、ユーザーがユーザー名を変更しないことを決定したとき、それはユーザ名でエコーを土台ことは何addlsashes –

+0

より良いだろうと信じてフィールドを更新フィールドに追加します。だから、フォームが既存のユーザー名をチェックして送信されると、... – AAA

関連する問題