0

誰かが以下のコードを手伝ってくれませんか。登録クエリを作成しようとしていますが、送信すると次の行でエラーが発生します。

$insert_query = "insert into members (First_name, last_name, Address_1, Address_2, Postcode, Email, Membership_Number, Password) values('$fname','$lname','$address1','$address2','$postcode','$email','$member','$password')";

他のフィールド名は正常に送信されるため、これは first_name にのみ影響します。

あなたの助けは大歓迎です!!

    <?php
$con = mysql_connect("localhost","root","") or die(mysql_error());
$select_db = mysql_select_db("thistlehc",$con);
if(isset($_POST['register']))

 $fname = mysql_real_escape_string($_POST['fname']);
 $lname = mysql_real_escape_string($_POST['lname']);
 $address1 = mysql_real_escape_string($_POST['address1']);
 $address2 = mysql_real_escape_string($_POST['address2']);
 $postcode = mysql_real_escape_string($_POST['postcode']);
 $email = mysql_real_escape_string($_POST['email']);
 $member = mysql_real_escape_string($_POST['member']);
 $password = mysql_real_escape_string($_POST['password']);

 $query = "select membership_number from members where membership_number='$member'";
 $link = mysql_query($query)or die(mysql_error());
     $num = mysql_num_rows($link);

     if ($num>0){
      echo 'Membership Number already exists'; //Membership number already taken
     }

     else {
     $insert_query = "insert into members (First_name, last_name, Address_1, Address_2, Postcode, Email, Membership_Number, Password) values('$fname','$lname','$address1','$address2','$postcode','$email','$member','$password')";
     $result = mysql_query($insert_query)or die(mysql_error());
     echo "Registered Successfully!";
     }

?>
4

1 に答える 1

2

ifステートメントの内容をカプセル化するのを忘れたように見えます。

if(isset($_POST['register']))

実行するコードを中括弧で囲んでいないため、直後の最初の行のみが実行されます。あなたの場合、ifステートメントは一見偽を返し、行定義$fnameは実行されなかったため、未定義の変数です。

これに似たものを使いたい -

if(isset($_POST['register'])){
 $fname = mysql_real_escape_string($_POST['fname']);
 $lname = mysql_real_escape_string($_POST['lname']);
 $address1 = mysql_real_escape_string($_POST['address1']);
 ...
}
于 2013-01-05T22:55:58.607 に答える