PDA

View Full Version : سوال: مشکل در فرم ثبت نام



yasin5
یک شنبه 29 اردیبهشت 1392, 14:42 عصر
با سلام من میخوام وقتی کاربر نام کاربری را انتخاب کرد که از قبل موجود بوده پیغام دهد این نام کاربری انتخاب شده است



<p>&nbsp;</p>
<?php
session_start();
require('config/config.php');
mysql_query("set names 'UTF8'");
$query="select * from member where fname='".$_POST['fname']."'";
$result=mysql_query($query);
if ((mysql_num_rows($result))>0)
{
header('location:register.php?msg=1');
}
if (( strlen($_POST['fname'])==0) || (strlen($_POST['email'])==0) ||(strlen($_POST['username'])==0)||(strlen($_POST['pass'])==0)||(strlen($_POST['repass'])==0))



{
header('location:register.php?msg0=1');
}
if ($_POST['pass']!=$_POST['repass'])
{
header('location:register.php?msg1=1');
}
if(($_POST['fname'] == '')|| ($_POST['email'] == '')||($_POST['username'] == '')||($_POST['pass'] == '')||($_POST['repass'] == ''))

{
echo ' تمام فیلد ها کامل شود';
}
else {


$query="insert into member (fname,email ,username, pass,repass)values('".$_POST['fname']."','".$_POST['email']."','".$_POST['username']."','".md5($_POST['pass'])."','".md5($_POST['repass'])."')";
mysql_query($query) or die(mysql_error());
mysql_close($connect);

$_SESSION['fname']=$_POST['fname'];
$_SESSION['lname']=$_POST['lname'];
$_SESSION['email']=$_POST['email'];
$_SESSION['username']=$_POST['username'];
$_SESSION['pass']=$_POST['pass'];
$_SESSION['repass']=$_POST['repass'];

header('location:complete.php');

}

?>

mahmod2000
یک شنبه 29 اردیبهشت 1392, 15:04 عصر
اگه میخواید بدونه اینکه صفحه رفرش بشه این کار رو بکنید

باید از ajax استفاده کنید

کد jquery :

// Check Username For Register
$("#username_user").blur(function(e){
$("#showPeighamUsernamme").html('در حال بررسی نام کاربری...');
var username_user = $("#username_user").val();

$.post('ajaxusers.php'
,{username_users : username_user}
,function(datausername)
{
$("#showPeighamUsernamme").html(datausername);
});

});


کد ajaxusers.php :


require('config/config.php');
mysql_query("set names 'UTF8'");
if(isset($_POST['username_users']) && !empty($_POST['username_users']))
{
$query="select username from member where username='".$_POST['username_users']."' limit 1";
$result=mysql_query($query);
$rowRes = mysql_fetch_assoc($result);
if($rowRes['username'] != '')
echo "<span style='color:red'>متاسفانه نام کاربری تکراری است.. نام دیگری انتخاب کنید</span>";
else
echo "<span style='color:green'>نام کاربری مجاز به ثبت است..</span>";

}


من فرض رو بر این گرفتم که شما با دستورات jquery آشنا هستید

موفق باشید

Tarragon
یک شنبه 29 اردیبهشت 1392, 16:26 عصر
سلام
این GET ها ی رجیستر به ای معنی هستند:
msg0 : وجود نام کاربری
msg1 : برابر نبودن دو رمز عبور
msg2 : خالی بودن فیلدها
در ضمن شما چه نیازی دارید که تکرار پسوردی رو در دیتابیس ذخیره می کنید؟



<?php
session_start();
require('config/config.php');
mysql_query("set names 'UTF8'");
$query="select * from member where fname='".$_POST['fname']."'";
$result=mysql_query($query);
if (mysql_num_rows($result) > 0)
{
header('location:register.php?msg0=1');
exit();
}
if (( strlen($_POST['fname'])==0) || (strlen($_POST['email'])==0) ||(strlen($_POST['username'])==0)||(strlen($_POST['pass'])==0)||(strlen($_POST['repass'])==0))

{
header('location:register.php?msg1=1');
exit();
}
if ($_POST['pass']!=$_POST['repass'])
{
}
if(($_POST['fname'] == '')|| ($_POST['email'] == '')||($_POST['username'] == '')||($_POST['pass'] == '')||($_POST['repass'] == ''))

{
header('location:register.php?msg2=1');
exit();
}
else {


$query="insert into member (fname,email ,username, pass,repass)values('".$_POST['fname']."','".$_POST['email']."','".$_POST['username']."','".md5($_POST['pass'])."','".md5($_POST['repass'])."')";
mysql_query($query) or die(mysql_error());
mysql_close($connect);

$_SESSION['fname']=$_POST['fname'];
$_SESSION['lname']=$_POST['lname'];
$_SESSION['email']=$_POST['email'];
$_SESSION['username']=$_POST['username'];
$_SESSION['pass']=$_POST['pass'];
$_SESSION['repass']=$_POST['repass'];

header('location:complete.php');
}

?>