PDA

View Full Version : پیغام در صورت مساوی نبودن دو مقدار



omidparkour
یک شنبه 24 شهریور 1392, 10:24 صبح
سلام
من یک فرم عضویت طراحی کردم که 2 تا فیلد پسورد داره و میخوام وقتی که کاربر مقداری که داخل فیلد پسورد مینویسه و اون یکی فیلد مساوی نبود یک پیغام بده(متنی نباشه پیغامش مسیج باشه)
دقیقا مثل چیزی که توی فرم عضویت همه ی سایت ها هست
چطوری باید بنویسم؟؟؟؟؟
خودم این کد رو نوشتم نشد:


if (!$password = $password1){
die('پسوردها همخوانی ندارند');}

فرزند کوروش
یک شنبه 24 شهریور 1392, 10:30 صبح
if ($password != $password1){
die('پسوردها همخوانی ندارند');

}

omidparkour
یک شنبه 24 شهریور 1392, 10:34 صبح
سلام
ممنون فکر کنم اون کدی که دادین کار کرد اما دو مشکل دیگه
یکی اینکه وقتی پیغام میده داخل یک صفحه ی دیگه مینویسه و درست هم نمینوسه اینجوری مینویسه:عضویت شما با موفقیت انجام شد!
پسوردها همخوانی ندارند
مشکل چیه؟؟؟؟؟؟
دومین مشکل هم اینکه الان فقط پیغام میده درصورتی که کاربر رو در پایگاه داده ثبت کرده من میخوام در حین اینکه پیغام میده کاربر رو در پایگاه داده ثبت نکنه
چطوری؟؟؟؟؟؟؟؟

omidparkour
یک شنبه 24 شهریور 1392, 11:23 صبح
کمک
کسی نیست جواب بده

omidparkour
یک شنبه 24 شهریور 1392, 12:45 عصر
چرا کسی جواب نمیده
منم مثل بقیه مشکل دارم دیگه

فرزند کوروش
یک شنبه 24 شهریور 1392, 13:21 عصر
اسپم نفرستید

یکی اینکه وقتی پیغام میده داخل یک صفحه ی دیگه مینویسه و درست هم نمینوسه اینجوری مینویسه:عضویت شما با موفقیت انجام شد!
پسوردها همخوانی ندارند
این به دلیل یونیکد صفحتون هست. یونیکد رو به utf8 تغییر بدین

داخل یک صفحه ی دیگه مینویسه
داخل صفحه دیگه نمینویسه بل که اجازه اجرای ادامه کد رو نمیده به این شکل تغییر بدید

if ($password != $password1){
echo 'پسوردها همخوانی ندارند';

}


دومین مشکل هم اینکه الان فقط پیغام میده درصورتی که کاربر رو در پایگاه داده ثبت کرده من میخوام در حین اینکه پیغام میده کاربر رو در پایگاه داده ثبت نکنه
چطوری؟؟؟؟؟؟؟؟
با یه else مشخص کنید که اگر کاربر دو فیلد رو درست وارد کرده بود ثبت شه

if ($password != $password1){
echo 'پسوردها همخوانی ندارند';
}else{
///کد مربوط به ثبت در دیتابیس

}

omidparkour
یک شنبه 24 شهریور 1392, 15:22 عصر
سلام
من یونیکد صفحه ام رو از همون اول utf8_persian_ci گذاشتم اما الان اینجوریه
مشکل کجاست؟؟؟؟؟؟

omidparkour
یک شنبه 24 شهریور 1392, 15:25 عصر
من الان این کد رو نوشتم و درصورتی هردو پسوردمساوی هم هستند بازهم میگه پسورد ها مساوی نیست
مشکل چیه؟؟؟


if ($password != $password1){
echo 'password not ';
}else{

if ($check_error != 1){
mysql_query("INSERT INTO register (username,password,password1,email,site) VALUES('$username','$password','$password1','$emai l','$site')")
or die(mysql_error());
echo "عضویت شما با موفقیت انجام شد!<br />";
}

}

omidparkour
یک شنبه 24 شهریور 1392, 15:33 عصر
یک مشکل دیگه این که
داخل php my admin وقتی داده های داخل جدول register(که همون عضویت) هست رو میبینم دو فیلد password , password1 مقدار های متفاوتی دارند درصورتی که باید مساوی باشند و نکته ی جالب اینه که مقدار داخل password1‌دقیقا همون مقداری هست که من وارد کردم داخل فیلد و password مقدارش چرت و پرت هست
مشکل چیه؟؟؟؟؟؟؟؟؟

parsboy
یک شنبه 24 شهریور 1392, 15:55 عصر
یک مشکل دیگه این که
داخل php my admin وقتی داده های داخل جدول register(که همون عضویت) هست رو میبینم دو فیلد password , password1 مقدار های متفاوتی دارند درصورتی که باید مساوی باشند و نکته ی جالب اینه که مقدار داخل password1‌دقیقا همون مقداری هست که من وارد کردم داخل فیلد و password مقدارش چرت و پرت هست
مشکل چیه؟؟؟؟؟؟؟؟؟
باسلام
دوست عزیز یه جستجو کنید:
http://barnamenevis.org/showthread.php?356992-%D9%BE%D8%B1%D8%B3%D8%B4%D9%87%D8%A7%DB%8C-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1%DB%8C&p=1576424&viewfull=1#post1576424
درضمن نیازی نیست شما هم پسورد و هم تکرار رو ذخیره کنید خودپسوردکافیست.
مقدار داخل فیلدها هم چرت و پرت نیست احتمالا هش کردید.
موفق باشید.

omidparkour
یک شنبه 24 شهریور 1392, 16:48 عصر
سلام دوست عزیز


من الان این کد رو نوشتم و درصورتی هردو پسوردمساوی هم هستند بازهم میگه پسورد ها مساوی نیست
مشکل چیه؟؟؟


if ($password != $password1){
echo 'password not ';
}else{

if ($check_error != 1){
mysql_query("INSERT INTO register (username,password,password1,email,site) VALUES('$username','$password','$password1','$emai l','$site')")
or die(mysql_error());
echo "عضویت شما با موفقیت انجام شد!";
}

}


مشکل این چیه؟؟؟؟؟

Yashar1989
یک شنبه 24 شهریور 1392, 18:40 عصر
سلام دوست عزیز

مشکل این چیه؟؟؟؟؟
مشکلش اینه که فیلد password شما به صورت hash شده رمز رو ذخیره میکنه
توی دستور باید بنویسی در صورتی که فیلد password با hash فیلد password1 مساوی باشه فلان چیزو خروجی بگیر
یا باید فیلد password هم تنظیم کنی به صورت hash ذخیره کنه

omidparkour
یک شنبه 24 شهریور 1392, 19:37 عصر
سلام
یعنی چی hash ؟؟؟؟؟
میشه کدش رو بگین دقیق

فرزند کوروش
دوشنبه 25 شهریور 1392, 09:42 صبح
شما برای ذخیره سازی پسورد اون رو بصورت md5 در میاری؟

این دو تا $password و $password1
کجا مقدار دهی میشه؟ اون تیکه کد رو بزار

omidparkour
دوشنبه 25 شهریور 1392, 11:08 صبح
سلام
md5 یعنی چه؟؟؟؟؟؟؟؟

فرزند کوروش
دوشنبه 25 شهریور 1392, 11:25 صبح
این دو تا $password و $password1
کجا مقدار دهی میشه؟ اون تیکه کد رو بزار

omidparkour
دوشنبه 25 شهریور 1392, 13:48 عصر
هر کدوم داخل یک فیلد جدا تو بانک اطلاعات

Yashar1989
دوشنبه 25 شهریور 1392, 13:58 عصر
هر کدوم داخل یک فیلد جدا تو بانک اطلاعات
منظورش این که دستوری که میگی این 2 تا فیلد تو دیتابیس ذخیره بشن رو اینجا بذار

thacker
دوشنبه 25 شهریور 1392, 15:48 عصر
اینجوری استفاده کن ...


if ($password != $password1){
$pm = ' password not ';
}else{

if ($check_error != 1){
mysql_query("INSERT INTO register (username,password,email,site) VALUES($username,md5($password),$email,$site)")
or die(mysql_error());
$pm = ' عضویت شما با موفقیت انجام شد! ';
}

}


بعد اونجایی که میخواین پیام رو نشون بدید این رو بزارید :


if($pm) { echo $pm; }

فرزند کوروش
سه شنبه 26 شهریور 1392, 09:46 صبح
منظورم اینه که کجا اون دو تا متغیر مقدار دهی میشن ینی این [/php]$password1 =$_POST['password1'];[php]

omidparkour
سه شنبه 26 شهریور 1392, 09:50 صبح
این کل کدم


<?php
$connect=mysql_connect("localhost","root","");
if ( ! $connect )
{
die( 'متاسفانه اتصال برقرار نشد:' . mysql_error( ) ) ;
}

$select=mysql_select_db("blog", $connect);
if ( ! $select )
{
die( 'متاسفانه پایگاه داده شناسایی نشد:' . mysql_error( ) ) ;
}
$username = $_POST['username'];
$password = $_POST['password'];
$password1 = $_POST['password1'];
$email= $_POST['email'];
$site = $_POST['site'];

$check_error = 0;

if (!isset($username) || $username == ''){
echo "فیلد نام کاربری نباید خالی باشد!";
$check_error = 1;
}

elseif (!isset($password) || $password == ''){
echo "فیلد کلمه عبور نباید خالی باشد!";
$check_error = 1;
}

elseif (preg_match('/^[a-zA-Z0-9 _-]+$/', $username) === 0){
echo "نام کاربری دارای کاراکترهای غیر مجاز است!";
$check_error = 1;
}

$username = mysql_real_escape_string($username);
$password = md5($password);
if ($password != $password1){
$pm = ' password not ';
if($pm) { echo $pm; }
}else{

if ($check_error != 1){
mysql_query("INSERT INTO register (username,password,email,site) VALUES($username,md5($password),$email,$site)")
or die(mysql_error());
$pm = ' عضویت شما با موفقیت انجام شد! ';
}

}
mysql_close($connect);
?>

omidparkour
سه شنبه 26 شهریور 1392, 09:54 صبح
thacker اون کدی که شما دادی و هم تست کردم اما باز کلا میگه password not

فرزند کوروش
سه شنبه 26 شهریور 1392, 10:04 صبح
مشکل اینه

$password = md5($password);

شما اومدی پسورد رو md5 کردی یعنی اونو کد یا هش کردی.
اینو تست کن



<?php
$connect=mysql_connect("localhost","root","");
if ( ! $connect )
{
die( 'متاسفانه اتصال برقرار نشد:' . mysql_error( ) ) ;
}

$select=mysql_select_db("blog", $connect);
if ( ! $select )
{
die( 'متاسفانه پایگاه داده شناسایی نشد:' . mysql_error( ) ) ;
}
$username = $_POST['username'];
$password = $_POST['password'];
$password1 = $_POST['password1'];
$email= $_POST['email'];
$site = $_POST['site'];

$check_error = 0;

if (!isset($username) || $username == ''){
echo "فیلد نام کاربری نباید خالی باشد!";
$check_error = 1;
}

elseif (!isset($password) || $password == ''){
echo "فیلد کلمه عبور نباید خالی باشد!";
$check_error = 1;
}

elseif (preg_match('/^[a-zA-Z0-9 _-]+$/', $username) === 0){
echo "نام کاربری دارای کاراکترهای غیر مجاز است!";
$check_error = 1;
}

$username = mysql_real_escape_string($username);
$password = md5($password);
if ($password != md5($password1)){
$pm = ' password not ';
if($pm) { echo $pm; }
}else{

if ($check_error != 1){
mysql_query("INSERT INTO register (username,password,email,site) VALUES($username,$password,$email,$site)")
or die(mysql_error());
$pm = ' عضویت شما با موفقیت انجام شد! ';
}

}
mysql_close($connect);
?>

omidparkour
سه شنبه 26 شهریور 1392, 11:28 صبح
سلام
الان درصورتی که پسورد غلط باشه اون پیغام رو میده و درغیر اینصورت این پیغام رو
Unknown column 'dsafds' in 'field list'
مشکل چیه؟؟؟؟

فرزند کوروش
سه شنبه 26 شهریور 1392, 11:43 صبح
فقط همین یدونه دستور اینسرت وجود داره ؟؟


mysql_query("INSERT INTO register (username,password,email,site) VALUES('$username','$password','$email','$site')")

دستور بالارو جایگذین کن

omidparkour
سه شنبه 26 شهریور 1392, 12:26 عصر
سلام
الان درست شد
اما یه مشکل
من چون دوتا فیلد پسورد دارم و تو جفتشون 4 وارد کردم اما توی بانکم یکشی خالی و دیگریa87ff679a2f3e71d9181a67b7542122c ذخیره شده
چرا؟

فرزند کوروش
سه شنبه 26 شهریور 1392, 13:17 عصر
این مشکل نیست
1-نیازی نیست هر دوتا فیلد پسورد رو وارد کنید.فقط یدونش کافیه(اون که خالی هست رو کلا فیلدشو پاک کن)
2- وقتی از تابع md5 استفاده میکنی ، این تابع میاد ورودی رو هش میکنه. یعنی اینکه پسورد رو طوری ذخیره میکنه که اگه مثلا کسی دیتابیست رو حک کرد و به فیلد پسوردها دسترسی داشت نتونه بفهمه که پسورد اصلی چی هست.
3-شما برای اینکه به پسورد دسترسی داشته باشی باید ورودیت هم بصورت md5 در بیاری

omidparkour
سه شنبه 26 شهریور 1392, 14:57 عصر
چطوری؟؟؟؟؟؟؟