رفتن به مطلب

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


پست های پیشنهاد شده

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

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>

لینک به ارسال
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
لینک به ارسال

سلام.

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


<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

لینک به ارسال

سلام.

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


<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
لینک به ارسال

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

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

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

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

لینک به ارسال

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

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

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...