ارجاع به صفحه قبل

سلام من این رو نوشتم برای اینکه اگه اطلاعات تکراری بود به صفحه قبل برگرده و مشکل رو گوشزد کنه.اما مشکلش اینه که قسطی عمل میکنه:D یه دفعه عمل می کنه و یه دفعه هم اسم تکراری رو ثبت می کنه.به نظر شما چرا اینجوریه
کد:
PHP:
 $link=include_once("../config.php");
$numsql="SELECT * FROM register";
$qur=@mysql_query($numsql);    
$num=@mysql_fetch_array($qur);
if($user==$num['name'])
{
header("LOCATION:register1.php?have=false");
exit;
}
if($mail==$num['email'])
{
header("LOCATION:register1.php?nomail=false");
exit;
}
اینم صفحه ثبت نام که خطاها رو چاپ میکنه
PHP:
if(isset($_REQUEST['have']))
        {
        print("<table width=95% border=0 align=center bgcolor=#CC3333><tr><td><div align=right>این نام وجود دارد</div></td></tr></table>");

if(isset($_REQUEST['nomail']))
        {
        print("<table width=95% border=0 align=center bgcolor=#CC3333><tr><td><div align=right>شما قبلا ثبت نام کرده اید!!!ایمیل شما قبلا در سیستم ثبت شده 
است</div></td></tr></table>");
        }
 

Masoud1365

مدیر انجمن
سلام من این رو نوشتم برای اینکه اگه اطلاعات تکراری بود به صفحه قبل برگرده و مشکل رو گوشزد کنه.اما مشکلش اینه که قسطی عمل میکنه:D یه دفعه عمل می کنه و یه دفعه هم اسم تکراری رو ثبت می کنه.به نظر شما چرا اینجوریه
کد:
PHP:
 $link=include_once("../config.php");
$numsql="SELECT * FROM register";
$qur=@mysql_query($numsql);    
$num=@mysql_fetch_array($qur);
if($user==$num['name'])
{
header("LOCATION:register1.php?have=false");
exit;
}
if($mail==$num['email'])
{
header("LOCATION:register1.php?nomail=false");
exit;
}
اینم صفحه ثبت نام که خطاها رو چاپ میکنه
PHP:
if(isset($_REQUEST['have']))
        {
        print("<table width=95% border=0 align=center bgcolor=#CC3333><tr><td><div align=right>این نام وجود دارد</div></td></tr></table>");

if(isset($_REQUEST['nomail']))
        {
        print("<table width=95% border=0 align=center bgcolor=#CC3333><tr><td><div align=right>شما قبلا ثبت نام کرده اید!!!ایمیل شما قبلا در سیستم ثبت شده 
است</div></td></tr></table>");
        }

به نظر من شما کوئریتون رو عوض کنید !
PHP:
selet * from register where name='$name'
اگر تعداد سطر رکوردهایی که گرفتید از صفر بیشتر بود معلوم میشه که تکراری در غیر این صورت باید ثبت بشه.
موفق باشید
 
من کوئری رو هم عوض کردم ولی نمی دونم چرا درست عمل نمیکنه.
یه بار عمل می کنه یه بار نام تکراری رو وارد دیتابیس می کنه
 

I.NoBody

Active Member
من کوئری رو هم عوض کردم ولی نمی دونم چرا درست عمل نمیکنه.
یه بار عمل می کنه یه بار نام تکراری رو وارد دیتابیس می کنه
اگر شما پیشنهاد آقا مسعود رو اجرا کنی، نباید مشکلی داشته باشی.

راستی آقا مسعود فکر میکنم نقل قول تاپیک قبل برای جواب شما نیازی نیست :wink:
 
PHP:
$numsql="SELECT * FROM register WHERE (name=$user AND email=$mail);
$qur=@mysql_query($numsql);    
$num=@mysql_fetch_array($qur);
if($user==$num['name'])
{
header("LOCATION:register1.php?have=false");
exit;
}
if($mail==$num['email'])
{
header("LOCATION:register1.php?nomail=false");
exit;
مگه این نباید باشه؟
خب یه بار عمل می کنه یه بار نه
 

I.NoBody

Active Member
PHP:
$numsql="SELECT * FROM register WHERE (`name`='$user' OR `email`='$mail');
$qur=@mysql_query($numsql);    
$num=@mysql_numrows($qur);
if($num>0)
{
header("LOCATION:register1.php?have=false");
exit;
}
 
ممنون
خب این یه چیز کلی چاپ می کنه .یعنی برای ایمیل و نام به صورت جداگانه عمل نمی کنه
من برای اینکه اگه مثلا نام کاربری تکراری بود اینو نوشتم
PHP:
 if($num['name']>0)
{
header("LOCATION:register1.php?have=false");
exit;
}
اما باز هم درست عمل نمیکنه اگه منو راهنمایی کنین ممنون می شم
 

Masoud1365

مدیر انجمن
تعداد سطرهای برگشتی در متغیر $num ذخیره میشه نه در $num['name'] .
 

I.NoBody

Active Member
ممنون
خب این یه چیز کلی چاپ می کنه .یعنی برای ایمیل و نام به صورت جداگانه عمل نمی کنه
من برای اینکه اگه مثلا نام کاربری تکراری بود اینو نوشتم
PHP:
 if($num['name']>0)
{
header("LOCATION:register1.php?have=false");
exit;
}
اما باز هم درست عمل نمیکنه اگه منو راهنمایی کنین ممنون می شم
فکر می کنم شما اصلاً راه حل ها رو نمی خونید.
شما راه حل رو بخونید، بعدش برای خودتون customizeش کنید
 
سلام
من این رو امتحان کردم اما با وجود mysql_num_rows دیگه هیچ نامی ثبت نمی شه حتی اگه تکراری نباشه!!!
یعنی شما می گین برای اینکه ما ببینیم مثلا مقدار x در جدول وجود داره یا نه نباید از mysql_fetch_assoc استفاده کرد؟
به هر حال من قاطی کردم و حتی به راهی هم که شما گفتین رفتم ولی جواب نداد
 

Masoud1365

مدیر انجمن
در یک جای کد هاتون اشتباهی صورت گرفته وگرنه برای اینکه نام تکراری ثبت نشه باید از همین روشی که گفته شد استفاده کنید . کدهاتون رو به دقت بررسی کنید . این یک الگوریتم بسیار ساده داره !
[/php] select * from register where name = '$name' or email = '$email'
PHP:
اگر تعداد سطرهای برگتشتی این کوئری بزرگتر از صفر باشه مشخص میشه که نام یا ایمیل تکراری هست و گرنه باید ثبت بشه.
همون طور که گفتم اشتباه شما ممکن است در جای دیگری باشه به هر حال از این روش با دقت استفاده کنید اگر نشد بگید تا یه فکر دیگه بکنیم
موفق باشید.
 
کد من دقیقا همونیه که تو پست اول گذاشتم .البته با روش شما هم امتحان کردم ولی بازم جواب نداد
 

Masoud1365

مدیر انجمن
توی پست های بعدی دوستان واستون کد گذاشتن از اونها استفاده کنید
 

جدیدترین ارسال ها

بالا