Milad Rafi

درخواست تغیرات با php در فرم عضویت

6 پست در این موضوع قرار دارد

سلام . من یه فرم ثبت نام به صورت زیر توی سایتم استفاده میکنم و میخوام دوتا کار انجام بده

1-میخواستم کاری کنم که کابری که عضو میشه و مثلا یه یوزر به نام test وارد میکنه , با php ( اگه اشتباه نکنم با خاصیت post ) اون یوزر tset اول @linefa.me قرار بگیره و به عنوان ایمیل کاربر ثبت بشه .مثل test@linefa.me

تقریبا همون ایمیل فیک میخوام هنگام ثبت نام توی شناسه کاربر ثبت بشه به خاطر این که اواتار های کاربران رو از اواتار تصادفی گرااوتار استفاده میکنم و الان کاربرایی که بدون ایمیل هستن همشون یه اواتار دارند ( نمیخوام فیلد ایمیل توی فرم نشون داده بشه)

2- چجوری میشه کاربر بعد از عضویت خودکار وارد سایت بشه و نیاز به ورود نباشه؟ الان کاربر که عضو میشه سایت متن "ثبت نام با موفقیت انجام شد. میتوانید از فرم ورود بالا وارد شوید." رو نمایش میده و کابر باید خودش وارد سایت بشه

کد فرم :


<?php
$err=null;
$succ=null;
global $wpdb, $PasswordHash, $current_user, $user_ID;
if(isset($_POST['task']) && $_POST['task'] == 'register' ) {
$pwd1 = $wpdb->escape(trim($_POST['pwd1']));
$pwd2 = $wpdb->escape(trim($_POST['pwd2']));
$username = $wpdb->escape(trim($_POST['username']));
$first_name = $wpdb->escape(trim($_POST['first_name']));

if(is_user_logged_in()) {
$err = 'برای ثبت نام نباید لاگین باشید.';
}
elseif( $pwd1 == "" || $pwd2 == "" || $username == "") {
$err = 'لطفا تمامی فیلد های زیر را پر کنید';
} else if($pwd1 <> $pwd2 ){
$err = 'پسورد های وارد شده نا همسان هستند.';
} else {
$user_id = wp_insert_user( array ('user_pass' => apply_filters('pre_user_user_pass', trim($_POST['pwd1'])), 'user_login' => apply_filters('pre_user_user_login', $username), 'first_name' => apply_filters('pre_user_first_name', $first_name), 'role' => 'subscriber' ) );
if( is_wp_error($user_id) ) {
$err = 'خطا در ساخت اکانت';
} else {
do_action('user_register', $user_id);
$succ = 'ثبت نام با موفقیت انجام شد. میتوانید از فرم ورود بالا وارد شوید.

';
}

}

}

?>

<style>
.inp-register{
border: 1px solid #cacaca;
width: 300px;
height: 30px;
margin: 10px;
font-family: 'BKoodakBold','Tahoma';
font-size: 13pt;}
#box-regiter-form{
width:322px;
margin:auto;
margin: 50px auto 80px auto;}
#btn-regi{
float: left;
font-family: 'BTitrTGEBold';
font-size: 16pt;
font-weight: normal;
background-color: #000;
color: #fff;
border: 0;
margin:10px;
padding:0 24px;
cursor: pointer;}
#msg-b{
margin: 0 10px;
padding: 5px;
font-family: 'BYEKAN','Tahoma';
text-align: center;}
.cptch_block{
margin-top: -19px !important;
margin-right: 0 !important;}
#cptch_input{
width: 34px !important;
border: 1px solid #CACACA;
height: 24px;
text-align: center;
font-size: 13pt !important;
direction: rtl !important;}
</style>

<div id="box-regiter-form">
<?php
if($err)
echo '<div id="msg-b" style="border:1px solid red;">'.$err.'</div>';

if($succ)
{
echo '<div id="msg-b" style="border:1px solid rgb(15, 236, 15);">'.$succ.'</div>';
}
else
{
?> <center><h2>عضویت</h2><br><strong><span style="color: #ff0000;">در صورتی که عضو سایت نیستید از فرم زیر اقدام به عضویت کنید</span></strong><br><span style="color: #ff0000;">توجه کنید این اکانت سایت با اکانت لاین شما هیچ ارتباطی ندارد.و این دو از هم جدا هستند</span></strong></center>
<form method="post">
<input class="inp-register" type="text" value="<?php echo $_POST['username']; ?>" name="username" id="username" placeholder="یوزر نیم|نام کاربری" /><br>
<input class="inp-register" type="text" value="<?php echo $_POST['first_name']; ?>" name="first_name" id="first_name" placeholder="نام شما" /><br>
<input class="inp-register" type="password" value="<?php echo $_POST['pwd1']; ?>" name="pwd1" id="pwd1" placeholder=" رمز عبور " /><br>
<input class="inp-register" type="password" value="<?php echo $_POST['pwd2']; ?>" name="pwd2" id="pwd2" placeholder=" تکرار رمز عبور " /><br>
<button id="btn-regi" type="submit" name="btnregister" class="button" >ثبت نام</button>
<input type="hidden" name="task" value="register" />
<?php comment_id_fields(); ?>
<?php do_action('comment_form', $post->ID); ?>
</form>
<?php
}
?>
</div>
</div>
<?php get_template_part('pagination'); ?>
</div>

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

1. قسمت اول سوال اول : این کار را باید با جاوا اسکریپت انجام دهی برای نمونه شما المان زیر را به فرمتون اضافه می نمایید:
 

و کد زیر را به قسمت جاوا اسکریپت :

 $(document).ready(function(){ $("#username").keyup(function(){ var user=$("#username").val(); $("#uemail").val(user+"@linefa.me"); }); }); 

و در قسمت ذخیره هم به شکل زیر دریافتش می کنی :

 $uemail = $wpdb->escape($_POST['uemail']); 

قسمت دوم سوال اول : نفهمیدم منظورت چیه . سوال دوم : اینجا

ممنون

کد رو به صورت زیر استفاده کردم ولی کار نکرد و ایمیل ثبت نشد. قسمت های قرمز رنگ رو اضافه کدم

برای سوال دوم همیشه یه توضیح بدید که چطور استفاده کنم؟؟؟ ریاد با php اشنایی ندارم

<script type='text/javascript' src='http://linefa.me/for...s.js;></script>

<?php

$err=null;

$succ=null;

global $wpdb, $PasswordHash, $current_user, $user_ID;

if(isset($_POST['task']) && $_POST['task'] == 'register' ) {

$pwd1 = $wpdb->escape(trim($_POST['pwd1']));

$pwd2 = $wpdb->escape(trim($_POST['pwd2']));

$username = $wpdb->escape(trim($_POST['username']));

$first_name = $wpdb->escape(trim($_POST['first_name']));

$nickname = $wpdb->escape(trim($_POST['nickname']));

$uemail = $wpdb->escape($_POST['uemail']);

if(is_user_logged_in()) {

$err = 'برای ثبت نام نباید لاگین باشید.';

}

elseif( $pwd1 == "" || $pwd2 == "" || $username == "") {

$err = 'لطفا تمامی فیلد های زیر را پر کنید';

} else if($pwd1 <> $pwd2 ){

$err = 'پسورد های وارد شده نا همسان هستند.';

} else {

$user_id = wp_insert_user( array ('user_pass' => apply_filters('pre_user_user_pass', trim($_POST['pwd1'])), 'user_login' => apply_filters('pre_user_user_login', $username), 'nickname' => apply_filters('pre_user_nickname', $nickname), 'first_name' => apply_filters('pre_user_first_name', $first_name), 'uemail' => apply_filters('pre_user_uemail', $uemail), 'role' => 'subscriber' ) );

if( is_wp_error($user_id) ) {

$err = 'خطا در ساخت اکانت';

} else {

do_action('user_register', $user_id);

$succ = 'ثبت نام با موفقیت انجام شد. میتوانید از فرم ورود بالا وارد شوید.

';

}

}

}

?>

<style>

.inp-register{

border: 1px solid #cacaca;

width: 300px;

height: 30px;

margin: 10px;

font-family: 'BKoodakBold','Tahoma';

font-size: 13pt;}

#box-regiter-form{

width:322px;

margin:auto;

margin: 50px auto 80px auto;}

#btn-regi{

float: left;

font-family: 'BTitrTGEBold';

font-size: 16pt;

font-weight: normal;

background-color: #000;

color: #fff;

border: 0;

margin:10px;

padding:0 24px;

cursor: pointer;}

#msg-b{

margin: 0 10px;

padding: 5px;

font-family: 'BYEKAN','Tahoma';

text-align: center;}

.cptch_block{

margin-top: -19px !important;

margin-right: 0 !important;}

#cptch_input{

width: 34px !important;

border: 1px solid #CACACA;

height: 24px;

text-align: center;

font-size: 13pt !important;

direction: rtl !important;}

</style>

<div id="box-regiter-form">

<?php

if($err)

echo '<div id="msg-b" style="border:1px solid red;">'.$err.'</div>';

if($succ)

{

echo '<div id="msg-b" style="border:1px solid rgb(15, 236, 15);">'.$succ.'</div>';

}

else

{

?> <center><h2>عضویت</h2><br><strong><span style="color: #ff0000;">در صورتی که عضو سایت نیستید از فرم زیر اقدام به عضویت کنید</span></strong><br><span style="color: #ff0000;">توجه کنید این اکانت سایت با اکانت لاین شما هیچ ارتباطی ندارد.و این دو از هم جدا هستند</span></strong></center>

<form method="post">

<input class="inp-register" type="text" value="<?php echo $_POST['username']; ?>" name="username" id="username" placeholder="یوزر نیم|نام کاربری" /><br>

<input class="inp-register" type="text" value="<?php echo $_POST['first_name']; ?>" name="first_name" id="first_name" placeholder="نام شما" /><br>

<input class="inp-register" type="number" value="<?php echo $_POST['nickname']; ?>" name="nickname" id="nickname" placeholder="شماره شما" /><br>

<input class="inp-register" type="password" value="<?php echo $_POST['pwd1']; ?>" name="pwd1" id="pwd1" placeholder=" رمز عبور " /><br>

<input class="inp-register" type="password" value="<?php echo $_POST['pwd2']; ?>" name="pwd2" id="pwd2" placeholder=" تکرار رمز عبور " /><br>

<input type="hidden" name="uemail" id="uemail">

<button id="btn-regi" type="submit" name="btnregister" class="button" >ثبت نام</button>

<input type="hidden" name="task" value="register" />

<?php comment_id_fields(); ?>

<?php do_action('comment_form', $post->ID); ?>

</form>

<?php

}

?>

</div>

</div>

<?php get_template_part('pagination'); ?>

</div>

ویرایش شده در توسط LINEFA
0

به اشتراک گذاری این پست


لینک به پست

سلام.

از این روش پیش برو (آیدی های اینپوت ها رو درست کن)


<input id="fval" type="text" onfocusout="myFunction()">
Enter your name: <input type="text" id="fname">



<script>
function myFunction() {
var firva = document.getElementById('fval').value;
var x = document.getElementById("fname");
var sva = document.getElementById('fname').value;
x.value = firva + "@linefa.ir";
}
</script>

برای امتحان:

http://onlinehtmltools.com/live-html-editor/editor.html

1

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

سلام.

از این روش پیش برو (آیدی های اینپوت ها رو درست کن)


<input id="fval" type="text" onfocusout="myFunction()">
Enter your name: <input type="text" id="fname">



<script>
function myFunction() {
var firva = document.getElementById('fval').value;
var x = document.getElementById("fname");
var sva = document.getElementById('fname').value;
x.value = firva + "@linefa.ir";
}
</script>

برای امتحان:

http://onlinehtmltoo...tor/editor.html

ممنون اقای زینلی درست شد

فقط امکانش نیست کاری کرد که فیلد ایمیل نشون داده نشه؟ خودم تست کردم و به جای hidden , text گزاشتم ولی کار نکرد ( فیلد ایمیل مخفی شد ولی ایمیل با نام یورر کاربر هنگام ثبت نام ثبت نشد)

و این که چجوری میتونم کاری کنم کاربر بعد از عضوت خودکار وارد سایت بشه و نیاز نباشه دستی لوگ این کنه ؟؟؟

ویرایش شده در توسط LINEFA
0

به اشتراک گذاری این پست


لینک به پست

ممنون اقای زینلی درست شد

فقط امکانش نیست کاری کرد که فیلد ایمیل نشون داده نشه؟ خودم تست کردم و به جای hidden , text گزاشتم ولی کار نکرد ( فیلد ایمیل مخفی شد ولی ایمیل با نام یورر کاربر هنگام ثبت نام ثبت نشد)

و این که چجوری میتونم کاری کنم کاربر بعد از عضوت خودکار وارد سایت بشه و نیاز نباشه دستی لوگ این کنه ؟؟؟

با CSS بهش کد opacity:0; بده ، ولی بهتره که اینکار رو نکنی ، چون یه کاربر شاید خواست که بالفرض ایمیل خودش رو بذاره ، این بانک ایمیل های واقعی برات سود محسوب میشه.

1

به اشتراک گذاری این پست


لینک به پست

اها. بله درست میگید. میزارم باشه

دوستان این رو چطوری میشه انجام داد

چجوری میتونم کاری کنم کاربر بعد از عضویت خودکار وارد سایت بشه و نیاز نباشه دستی لوگ این کنه ؟؟؟

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری