PDA

View Full Version : چک کردن ایمیل تکراری در دیتابیس



spy ir
دوشنبه 04 آبان 1394, 17:30 عصر
سلام
دوستان در قسمت ثبت نام 3 تا فیلد دارم
1-ایمیل
2-پسورد
3-تکرار پسورد

در قسمت ایمیل میخوام چک کنم که ایا کاربری قبلا با اون ایمیل ثبت نام کرده یا نه؟

اول از همه داخل دیتابیس بیاد ببینه که ایا همچین ایمیلی در دیتابیس وجود داره یا نه؟ اگر وجود داشت یک پیغام نشون بده اگر هم وجود نداشت که ثبت نام انجام بشه.

من با این کد امتحان کردم ولی نشد




$q = mysql_fetch_array(mysql_query($db,"select * from register where email = '".$email."'"));
if(mysql_num_rows($q)>0){
echo "noooooo";
exit;
}
else{
$query = "insert into register (email,password,confirm_password) values ('".$email."','".$password."','".$confirm_password."')";
$result = mysqli_query($db,$query);
if($result){
echo "yes";
exit;
}

مشکل این کد کجا هستش؟ هر ایمیلی بزنیم ثبت میشه...
دوم از نظر امنیتی هم ممنون میشم بگید که مشکلی نداشته باشه

رضا قربانی
دوشنبه 04 آبان 1394, 20:44 عصر
سلام
دوستان در قسمت ثبت نام 3 تا فیلد دارم
1-ایمیل
2-پسورد
3-تکرار پسورد

در قسمت ایمیل میخوام چک کنم که ایا کاربری قبلا با اون ایمیل ثبت نام کرده یا نه؟

اول از همه داخل دیتابیس بیاد ببینه که ایا همچین ایمیلی در دیتابیس وجود داره یا نه؟ اگر وجود داشت یک پیغام نشون بده اگر هم وجود نداشت که ثبت نام انجام بشه.

من با این کد امتحان کردم ولی نشد




$q = mysql_fetch_array(mysql_query($db,"select * from register where email = '".$email."'"));
if(mysql_num_rows($q)>0){
echo "noooooo";
exit;
}
else{
$query = "insert into register (email,password,confirm_password) values ('".$email."','".$password."','".$confirm_password."')";
$result = mysqli_query($db,$query);
if($result){
echo "yes";
exit;
}

مشکل این کد کجا هستش؟ هر ایمیلی بزنیم ثبت میشه...
دوم از نظر امنیتی هم ممنون میشم بگید که مشکلی نداشته باشه



از این کد الگو بگیر
این کد برای چک کردن یوزر هست که آیا در بانک وجود داره یا خیر.



global $dbhost,$dbname,$dbuser,$dbpass;
$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);
$SearchUser = mysql_fetch_array(mysql_query("select * from `tbl_moshtari` Where `name` = '$name' and `code` = '$code' "));
if($SearchUser['user'] or $SearchUser['code']){
die('این نام کاربری قبلا ثبت شده است');

}

موفق باشید

milad_d993
سه شنبه 05 آبان 1394, 22:37 عصر
جدای از اینکه خط اول رو برای خوانایی بیشتر میشه توی چند خط قشنگ تر نوشت (کلا از کدها خوشم نیامد فک کنم مشکل داشته باشن)

من تا ب حال ندیدم فیلدی با عنوان تکرار پسورد توی بانک داشته باشیم :گیج:
:گیج::گیج::گیج:
تو فرم های ورود اطلاعات بجز text ورود پسورد یه text میزارن که کاربر پسورد رو تکرار کنه بعد با یک زبان سمت کلاینت مثل جاوااسکریپت میان چک میکنن که یکی باشه اگر درست بود اطلاعات رو درج میکنن... نباید توی بانک 2 تا فیلد پسورد بزارین

رضا قربانی
چهارشنبه 06 آبان 1394, 12:50 عصر
جدای از اینکه خط اول رو برای خوانایی بیشتر میشه توی چند خط قشنگ تر نوشت (کلا از کدها خوشم نیامد فک کنم مشکل داشته باشن)

من تا ب حال ندیدم فیلدی با عنوان تکرار پسورد توی بانک داشته باشیم :گیج:
:گیج::گیج::گیج:
تو فرم های ورود اطلاعات بجز text ورود پسورد یه text میزارن که کاربر پسورد رو تکرار کنه بعد با یک زبان سمت کلاینت مثل جاوااسکریپت میان چک میکنن که یکی باشه اگر درست بود اطلاعات رو درج میکنن... نباید توی بانک 2 تا فیلد پسورد بزارین

اگر JS رو در مرورگر غیر فعال کنند به راحتی میشه دور زد ، همیشه چک کردن رو از سرور انجام داد بهتره . مثلا ایجکسی بدون اینکه صفحه رفرش بشه از تحت سرور بررسی ها رو انجام بدید

milad_d993
چهارشنبه 06 آبان 1394, 14:48 عصر
اگر JS رو در مرورگر غیر فعال کنند به راحتی میشه دور زد ، همیشه چک کردن رو از سرور انجام داد بهتره . مثلا ایجکسی بدون اینکه صفحه رفرش بشه از تحت سرور بررسی ها رو انجام بدید
صحیح است:تشویق: :تشویق::تشویق: