mrasoul 86 ارسال شده در دی 93 مالک گزارش بازنشر ارسال شده در دی 93 مشکل پابرجاست . الان یه نکته ای به ذهنم رسید . شاید اگه بشه action رو در فرم تغییر بدی تا حدودی مشکلات حل بشه . چون action اون روی wp-login.php قرار داره . که این باعث میشه اول بره تو داشبورد بعد ریدایرکت بشه تو خود صفحه لوگین . اگه این اکشن تغییر کنه شاید بشه یه کارایی کرد نقل قول لینک به ارسال
بیتفا 74 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 افزونه user pro فکر کنم مشکلتون رو حل کنه 1 نقل قول لینک به ارسال
Parsa 23463 ارسال شده در دی 93 گزارش بازنشر ارسال شده در دی 93 لطفا قوانین را بخوانیدبحث درباره محصولات تجاری ممنوع استمیتوانید referer را به عنوان آدرس بازگشت ارسال کنید به صفحه لاگینمثلا<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_REFERER"] ?>" /> 1 نقل قول لینک به ارسال
mrasoul 86 ارسال شده در دی 93 مالک گزارش بازنشر ارسال شده در دی 93 لطفا قوانین را بخوانیدبحث درباره محصولات تجاری ممنوع استمیتوانید referer را به عنوان آدرس بازگشت ارسال کنید به صفحه لاگینمثلا<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_REFERER"] ?>" />این یک خط کد کوتاه واقعا دوای درد من بود . اما یه مشکل دیگه ؟! وقتی پسورد اشتباه داده میشه ارجاع داده میشه به wp-login ÷یشفرض وردپرس و من نمیخوام این ارجاع صورت بگیره . و اینکه من روی wp-admin پسورد میزارم پس این ارجاع بیهوده است . چطور میتونم جلوی این ارجاع رو بگیرم و این که تو همون صفحه بمونه و پیغام پسورد اشتباه بده نقل قول لینک به ارسال
mrasoul 86 ارسال شده در دی 93 مالک گزارش بازنشر ارسال شده در دی 93 الان که داشتم صفحه رو طراحی میکردم فهمیدم وقتی روی رمز عبور خود را فراموش کرده اید کلیک میکنم میره به صفحه ی wp-login.php . و من میخوام این قسمت رو هم خودم طراحی کنم تا به صفحه ای که من میخوام بره نه wp-login نقل قول لینک به ارسال
mrasoul 86 ارسال شده در دی 93 مالک گزارش بازنشر ارسال شده در دی 93 اگه بشه یک فرم ریست پسورد ساخت تقریبا مشکل حل میشه نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 در گام بعدی برای این صفحه ورود میخوام امکان ریست پسورد رو اضافه کنم . کامل مستقل از صفحه wp-login و همچنین کاری کنم موقعه ای که پسوردر اشتباه زده به صفحه wp-login نره و تو همون صفحه بمونه و بگه رمز یا پسورد اشتباهه نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 واقعا من جواب این سوال ها رو کجا پیدا کنم ؟! نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 یعنی واقعا کسی نمیتونه کمک کنه که چطور ؟صفحه فراموشی رمز عبور بسازم و برای این صفحه ، صفحه ریست پسورد بسازم که کلا نسبت به wp-login مجزا بشه ؟ افزونه میخوام . کدهاش رو میخوامبعد از اینکارا کاری کنم وقتی رمز عبور رو اشتباه وارد میکنه کاربر به صفحه wp-login نره و تو همین صفحه لاگین خودم پیغام بده نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در بهمن 93 گزارش بازنشر ارسال شده در بهمن 93 از کد های زیر بعنوان یک قالب برگه (page temeplate) استفاده کنید :<div class="wrapper"><?phpglobal $wpdb;$error = '';$success = '';// check if we're in reset formif( isset( $_POST['action'] ) && 'reset' == $_POST['action'] ){$email = trim($_POST['user_login']);if( empty( $email ) ) {$error = 'Enter a username or e-mail address..';} else if( ! is_email( $email )) {$error = 'Invalid username or e-mail address.';} else if( ! email_exists( $email ) ) {$error = 'There is no user registered with that email address.';} else {$random_password = wp_generate_password( 12, false );$user = get_user_by( 'email', $email );$update_user = wp_update_user( array ('ID' => $user->ID,'user_pass' => $random_password));// if update user return true then lets send user an email containing the new passwordif( $update_user ) {$to = $email;$subject = 'Your new password';$sender = get_option('name');$message = 'Your new password is: '.$random_password;$headers[] = 'MIME-Version: 1.0' . "\r\n";$headers[] = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$headers[] = "X-Mailer: PHP \r\n";$headers[] = 'From: '.$sender.' < '.$email.'>' . "\r\n";$mail = wp_mail( $to, $subject, $message, $headers );if( $mail )$success = 'Check your email address for you new password.';} else {$error = 'Oops something went wrong updaing your account.';}}if( ! empty( $error ) )echo '<div class="message"><p class="error"><strong>ERROR:</strong> '. $error .'</p></div>';if( ! empty( $success ) )echo '<div class="error_login"><p class="success">'. $success .'</p></div>';}?><!--html code--><form method="post"><fieldset><p>Please enter your username or email address. You will receive a link to create a new password via email.</p><p><label for="user_login">Username or E-mail:</label><?php $user_login = isset( $_POST['user_login'] ) ? $_POST['user_login'] : ''; ?><input type="text" name="user_login" id="user_login" value="<?php echo $user_login; ?>" /></p><p><input type="hidden" name="action" value="reset" /><input type="submit" value="Get New Password" class="button" id="submit" /></p></fieldset></form></div> 1 نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 مطمئنا با کلیک بر روی دکمه تشکر نمیشود به خاطر اینکار از شما قدردانی کرد اما واقعا کمک بسیار بزرگی را انجام دادید.و اما سوال دیگری که دارم ؟! چطور میشه وقتی که کاربر پسورد اشتباه زد به صفحه ی wp-login ریدایرکت نشود و تو همون صفحه لاگین که ساختم بماند؟ نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در بهمن 93 گزارش بازنشر ارسال شده در بهمن 93 باید یه صفحه لاگین جدید ایجاد کنید ، مثل کد قبلی که بهتون دادم کد زیر را در قالب برگه پیاده کنید :<div class="wrapper"><?php global $wpdb; $err = ''; $success = ''; if(isset($_POST['task']) && $_POST['task'] == 'login' ) { //We shall SQL escape all inputs to avoid sql injection. $username = $wpdb->escape($_POST['log']); $password = $wpdb->escape($_POST['pwd']); $remember = $wpdb->escape($_POST['remember']); if( $username == "" || $password == "" ) { $err = 'Please don\'t leave the required field.'; } else { $user_data = array(); $user_data['user_login'] = $username; $user_data['user_password'] = $password; $user_data['remember'] = $remember; $user = wp_signon( $user_data, false ); if ( is_wp_error($user) ) { $err = $user->get_error_message(); exit(); } else { wp_set_current_user( $user->ID, $username ); do_action('set_current_user'); echo '<script type="text/javascript">window.location='. get_bloginfo('url') .'</script>'; exit(); } } }?><form method="post"> <h2>Already have an account? Please login.</h2> <p> <?php if( !empty($sucess) ) echo $sucess; if( !empty($err) ) echo $err; ?> </p> <p><label for="log">Email</label> <input type="text" name="log" id="log" value="" /></p> <p><label for="pwd">Password</label> <input type="password" name="pwd" id="pwd" value="" /></p> <p><input type="submit" value="Login" class="button" /></p> <label><input type="checkbox" name="remember" value="true" /> Remember Me</label> <input type="hidden" name="task" value="login" /></form></div> نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 از کد های زیر بعنوان یک قالب برگه (page temeplate) استفاده کنید :<div class="wrapper"><?phpglobal $wpdb;$error = '';$success = '';// check if we're in reset formif( isset( $_POST['action'] ) && 'reset' == $_POST['action'] ){$email = trim($_POST['user_login']);if( empty( $email ) ) {$error = 'Enter a username or e-mail address..';} else if( ! is_email( $email )) {$error = 'Invalid username or e-mail address.';} else if( ! email_exists( $email ) ) {$error = 'There is no user registered with that email address.';} else {$random_password = wp_generate_password( 12, false );$user = get_user_by( 'email', $email );$update_user = wp_update_user( array ('ID' => $user->ID,'user_pass' => $random_password));// if update user return true then lets send user an email containing the new passwordif( $update_user ) {$to = $email;$subject = 'Your new password';$sender = get_option('name');$message = 'Your new password is: '.$random_password;$headers[] = 'MIME-Version: 1.0' . "\r\n";$headers[] = 'Content-type: text/html; charset=iso-8859-1' . "\r\n";$headers[] = "X-Mailer: PHP \r\n";$headers[] = 'From: '.$sender.' < '.$email.'>' . "\r\n";$mail = wp_mail( $to, $subject, $message, $headers );if( $mail )$success = 'Check your email address for you new password.';} else {$error = 'Oops something went wrong updaing your account.';}}if( ! empty( $error ) )echo '<div class="message"><p class="error"><strong>ERROR:</strong> '. $error .'</p></div>';if( ! empty( $success ) )echo '<div class="error_login"><p class="success">'. $success .'</p></div>';}?><!--html code--><form method="post"><fieldset><p>Please enter your username or email address. You will receive a link to create a new password via email.</p><p><label for="user_login">Username or E-mail:</label><?php $user_login = isset( $_POST['user_login'] ) ? $_POST['user_login'] : ''; ?><input type="text" name="user_login" id="user_login" value="<?php echo $user_login; ?>" /></p><p><input type="hidden" name="action" value="reset" /><input type="submit" value="Get New Password" class="button" id="submit" /></p></fieldset></form></div>یه سوال دیگه این خط دور فرم از کجا اومده و چرا نمیره؟!باید یه صفحه لاگین جدید ایجاد کنید ، مثل کد قبلی که بهتون دادم کد زیر را در قالب برگه پیاده کنید :صفحه لاگین دارم ! اما میخوام کار کنم ریدایرکت به wp-login صورت نگیره وقتی پسورد اشتباه زده میشه . میوام تو همین صفحه پیغام اشتباه داده بشه نقل قول لینک به ارسال
Parsa 23463 ارسال شده در بهمن 93 گزارش بازنشر ارسال شده در بهمن 93 بهتره از افزونه استفاده کنیدhttps://wordpress.org/plugins/nice-login-register-widget/screenshots/https://wordpress.org/plugins/custom-login/screenshots/https://wordpress.org/plugins/wp-custom-login/screenshots/ نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 بهتره از افزونه استفاده کنیدhttps://wordpress.org/plugins/nice-login-register-widget/screenshots/https://wordpress.org/plugins/custom-login/screenshots/https://wordpress.org/plugins/wp-custom-login/screenshots/نه افزونه فکر خوبی نیست . این فرم کارش تمومه به لطف دوستان امکاناتی که میخوام بهش اضافه شده . اگر بخوام از افزونه استفاده کنم مجددا باید ظاهرش رو با ظاهر قالبم ست کنم که هم زمان بره و هم تو برخی از افزونه ها این کار سخته نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در بهمن 93 گزارش بازنشر ارسال شده در بهمن 93 یه سوال دیگه این خط دور فرم از کجا اومده و چرا نمیره؟!صفحه لاگین دارم ! اما میخوام کار کنم ریدایرکت به wp-login صورت نگیره وقتی پسورد اشتباه زده میشه . میوام تو همین صفحه پیغام اشتباه داده بشهتگ <fieldset> را از داخل فرم پاک کنید ، اگه خط دور نرفت دیگه مربوط میشه به استایل قالبتونبرای مورد دوم باید مقدار خاصیت action را در فرم ورود برابر با صفحه لاگینی که ساختید بکنید (البته نام مقادیری که ارسال میشن با نام مقادیر فیلد های فرم ورود باید یکی باشه) 1 نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 تگ <fieldset> را از داخل فرم پاک کنید ، اگه خط دور نرفت دیگه مربوط میشه به استایل قالبتونبرای مورد دوم باید مقدار خاصیت action را در فرم ورود برابر با صفحه لاگینی که ساختید بکنید (البته نام مقادیری که ارسال میشن با نام مقادیر فیلد های فرم ورود باید یکی باشه)یعنی action="login"خوب با اینکار فکر کنم دیگه فرم ورود کار نکنه چون اکشنی براش تعریف شده . من فقط کد فرم ورود رو پیدا کردم و اون رو توی یک صفحه وارد کردم و فرم ساختم نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در بهمن 93 گزارش بازنشر ارسال شده در بهمن 93 برای این مورد شما باید کدی که برای صفحه لاگین بهتون دادم استفاده کنید و هر فرم ورود دیگه ای که در سایتتون هست action برابر با صفحه لاگین بشه نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 برای این مورد شما باید کدی که برای صفحه لاگین بهتون دادم استفاده کنید و هر فرم ورود دیگه ای که در سایتتون هست action برابر با صفحه لاگین بشهاگه من اکشن فرم ورود خودمو بزارم login.php خوب این فرم کار نمیکنه اصلاو راستی کدهای شما برای فرم ورود کار نکرد نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 یعنی واقعا نمیشه شرطی را قرار داد که در صورتی که نام کاربری یا پسورد اشتباه بود تو همین صفحه بمونه و یک پیغام رو نشون بده؟ نقل قول لینک به ارسال
استاد اعظم 900 ارسال شده در بهمن 93 گزارش بازنشر ارسال شده در بهمن 93 کدی که بهتون دادم تست شده بود ،اما به طریق زیر هم میشه انجام دادکد زیر را در قالب برگه بزارید :<?phpif(isset($_GET['login']) && $_GET['login'] == 'failed'){?><div id="login-error" style="background-color: #FFEBE8;border:1px solid #C00;padding:5px;"><p>Login failed: You have entered an incorrect Username or password, please try again.</p></div><?php}?><form name="loginform" id="loginform" action="<?php echo get_option('siteurl'); ?>/wp-login.php" method="post"><p class="login-username"><label for="user_login">شناسه</label><input type="text" name="log" id="user_login" class="input" value="" size="20" /></p><p class="login-password"><label for="user_pass">رمز</label><input type="password" name="pwd" id="user_pass" class="input" value="" size="20" /></p><p class="login-remember"><label><input name="rememberme" type="checkbox" id="rememberme" value="forever" /> مرا به خاطر بسپار</label></p><p class="login-submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="ورود" /><input type="hidden" name="redirect_to" value="<?php echo get_option('siteurl'); ?>" /></p></form>و برای اینکه وقتی کاربر رمز و یوزر را اشتباه وارد میکند دوباره به همین صفحه لاگین شود کد زیر را به functions.php قالبتون اضاف کنید(در خط 2 و 9 بجای login آدرس صفحه لاگشنتون را وارد کنید):function login_failed() { $login_page = home_url( '/login/' ); wp_redirect( $login_page . '?login=failed' ); exit; } add_action( 'wp_login_failed', 'login_failed' ); function verify_username_password( $user, $username, $password ) { $login_page = home_url( '/login/' ); if( $username == "" || $password == "" ) { wp_redirect( $login_page . "?login=failed" ); exit; } } add_filter( 'authenticate', 'verify_username_password', 1, 3);البته این افزونه همه کار هایی که میخواهید بکنید را انجلم میده (در قالبتون) : https://wordpress.or.../theme-my-login 1 نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 دقیقا کاری که گفتین انجام دادم . اما ...اصلا نمیتوانم وارد صفحه ی localhost/wordpress/wp-admin بشم هربار اقدام به اینکار میکنم با پیغام پسورد یا شناسه اشتباه مواجه میشم . یعنی وقتی میخوام از داخل صفحه wp-admin وارد سایت شم با این پیغام مواجه میشم و همچنین وقتی هم که وارد میشم با این پیغام مواجه میشم .یجورایی انگار نمیزاره من از صفحه wp-admin استفاده کنم برای ورود و وقتی هم از خود صفحه لاگین که ساختم وارد میشم و در صورت درست بودن نام کرابری هم پیغام اشتباه رو نشون میده نقل قول لینک به ارسال
mrasoul 86 ارسال شده در بهمن 93 مالک گزارش بازنشر ارسال شده در بهمن 93 (ویرایش شده) و البته مشکل دیگه اینه که وقتی نام کرابری یا رمز و اشتباه میزنی و بعد تصحیح میکنی و وارد میکنی تو همون صفحه لاگین میمونیمن با این یه تیکه کد کاری کرده بودم که کاربر مثل اگه توی صفحه اصلی یا ادامه مطلب روی دکمه لاگین بزنه و بخواد وارد سایت بشه بعد از وارد شدن برگرده به جایی که قبلا بوده حالا یا صفحه اصلی یا ادامه مطلب .<input type="hidden" name="redirect_to" value="<?php echo $_SERVER["HTTP_REFERER"] ?>" />اما خوب با کد شما وقتی که کاربر رمز و اشتباه و بزنه و تصحیح کنه و وارد شه تو همون صفحه میمونه و ریدیارکت صورت نمیگیره . بهنظر خیلی پیچیده شده و کار سختیهو همچنین به مشکلات بالا بیافزایید :شما کدی رو برای درخواست رمز عبور به من دادین تو صفحات قبل .این کد 3 مشکل داره1- وقتی کاربر شناسه وارد میکنه این کد ایراد میگیره و به نظر فقط با ایمیل کار میکنه .2- برای کاربران یاهو پسورد ارسال نمیکنه این در صورتی ست که خود وردپرس در قسمت wp-login ایمیل را راسال میکند .3- مشکل دیگه اینه که خود وردپرس لینک تصحیح رمز ارسال میکنه اما این کد پسورد رو ارسال میکنه . ویرایش شده بهمن 93 توسط mrasoul نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .