PDA

View Full Version : فرم ثبت نام



jalaladdin
پنج شنبه 07 مرداد 1389, 12:32 عصر
برای فرم ثبت نام این کد را نوشتم که هنگامی که کاربر نام کاربری و ایمیل تکراری را وارد کرد با جاوا اسکریپت آن خطا ها را به کاربر نشان میدهد چگونه دستور شرط را تغییر دهم تا هنگامی کاربر اطلاعات تکراری وارد کرد خطا ها را زیر همان فیلد با خط قرمز نشان دهد؟

<?php


$con=mysql_pconnect("localhost","root","");
if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);


$sql = "SELECT count(*) FROM users WHERE username = '{$_POST[username]}'";

$result = mysql_query($sql);

$e=mysql_query($sql);
$rec = mysql_fetch_array($result);


if($rec[0]!=0){
echo"<script>alert('نام کاربری تکراری می باشد')</script>";
echo "<meta http-equiv='refresh' content='0; URL=register.html'>"; exit();

}
?>
<?php
$sql = "SELECT count(*) FROM users WHERE email = '{$_POST[email]}'";
$result = mysql_query($sql);
$e=mysql_query($sql);
$re = mysql_fetch_array($e);
if($re[0]!=0){
echo"<script>alert(' آدرس ایمیل تکراری می باشد')</script>";
echo "<meta http-equiv='refresh' content='0; URL=register.html'>"; exit();
}

else{
$sql="insert into users(username,email,password,repassword)
values('$_POST[username]','$_POST[email]',('$_POST[password]'))";



$result = mysql_query($sql);

if($result)
{
echo mysql_affected_rows().'<b> عضویت شما با موفقیت انجام شد </b>';

}


mysql_close($con);


}
?>

bestirani2
پنج شنبه 07 مرداد 1389, 13:29 عصر
اگه منظورتون رو درست فهمیده باشم
این سوال اصلاً به php مربوط نیست و به css مربوط هست
زیر فیلدتون یک span باز کنید و Style کی بهش میدهید یا display:block باشه یا clear:both
البته با css جاهای مختلفی میتونی قرار بدی و ظاهر قشنگتری بدی که پیشنهاد میکنم آموزش های مربوط به css رو بخوانید

binyaft
پنج شنبه 07 مرداد 1389, 16:33 عصر
اول خطا ها رو بریز توی یک متغیر بعد زیر هر فیلدی که خواستی چاپ کن
برای زیبایی و همخوانی هم از CSS استفاده کنید

jalaladdin
پنج شنبه 07 مرداد 1389, 17:41 عصر
سلام بر دوستان محترم ممنون از راهنماییتان منظور من این است که هنگامی که کاربر اطلاعات تکراری وارد کرد پیغام خطا را زیر همان فیلد نشان دهد نه اینکه خطاها را در پنجره دیگری نشان دهد شما به این دستور شرطی نگاه کنید
if($re[0]!=0){
echo"<script>alert(' آدرس ایمیل تکراری می باشد')</script>";
echo "<meta http-equiv='refresh' content='0; URL=register.html'>"; exit();
}
برای نشان دادن خطای ایمیل تکراری این دستور شرط بدین صورت نوشتم و خطا را زیر همان فرم ثبت نام نشان میدهد
if($re[0]!=0){
echo" آدرس ایمیل تکراری می باشد";

}
اما برای شرط اول که خطای نام کاربری را نشان میدهد کد را بدین صورت نوشتم هم خطای نام کاربری را میدهد وهم دستور elseاجرا میشود (عضویت شما با موفقیت انجام شد)

if($rec[0]!=0){
echo"نام کاربری تکراری می باشد";
}
چگونه این کد را تغییردهم که وقتی کاربر نام تکراری وارد کرد دستور else اجرا نشه؟

mohmadd
پنج شنبه 07 مرداد 1389, 18:31 عصر
فکر کنم دو تا شرط جدا استفاده کردی برای همین
این کدو ویرایش کردم ببین درست کار میکنه :


<?php
$con=mysql_pconnect("localhost","root","");
if(!$con)
{die('could not connect');}
mysql_select_db("register",$con);


$sql = "SELECT count(*) FROM users WHERE username = '{$_POST[username]}'";
$sql1 = "SELECT count(*) FROM users WHERE email = '{$_POST[email]}'";
$result = mysql_query($sql);
$result1 = mysql_query($sql1);

$rec = mysql_fetch_array($result);
$re = mysql_fetch_array($result1);

if($rec[0]!=0 or $re[0]!=0)
{
echo"<script>alert('نام کاربري يا ايميل درسيستم موجود است')</script>";
echo "<meta http-equiv='refresh' content='0; URL=register.html'>";
}
else
{
$sql="insert into users(username,email,password,repassword)values('$ _POST[username]','$_POST[email]',('$_POST[password]'))";
$result = mysql_query($sql);
if($result)
{
echo mysql_affected_rows().'<b> عضویت شما با موفقیت انجام شد </b>';
}
mysql_close($con);
}
?>

jalaladdin
پنج شنبه 07 مرداد 1389, 21:07 عصر
سلام دوست گرامی این کد را ازقبل نوشتم من میخواهم خطای نام کاربری وایمیل جدا گانه به کاربر نشان دهد یعنی اگر نام کاربری تکراری بود خطای نام تکراری نشان دهد واگر ایمیل تکراری بود خطای ایمیل تکراری را به کاربر نشان دهد نه هر دو!