رفتن به مطلب

عدم انتقال در موقع اشتباه بودن اطلاعات ورودی به صفحه دیگر .


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

سلام و خسته نباشید فراوان .

ببخشید این تاپیک را راه انداختم چون نمی دونستم چی جستجو کنم و جستجو هام نتیجه نداشت برای همین تصمیم گرفتم دوباره مزاحم اساتید بشم .

من برای سایتم می خوام قسمت ثبت نام بزارم ، برای همین طبق آموزش ها از صفحه page.php کپی گرفتم و اسمش را تغییر دادم .

بعد از اون بهش اسم دادم .


<?php
/*
Template Name: صفحه ورود
*/
?>

قسمت the_content('') را حذف کردم و فرم ورود وردپرس را گزاشتم :


<form action="<?php bloginfo('url'); ?>/wp-login.php" method="post">
<label for="user_login">شناسه : <input type="text" name="log" id="log" size="25" dir="ltr"></label>
<br>
<label for="user_pass">گـذرواژه : <input type="password" name="pwd" id="pwd" size="25" dir="ltr"></label>
<br>
<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php _e('ورود'); ?>" tabindex="100" />
<label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90" /> مرا به خاطر بسپار</label>
</form>

تا اینجا هیچ مشکلی نیست .

ولی وقتی یک کاربر در سایت عضو نشده باشه و یا اطلاعات را اشتباه وارد کنه وارد همون صفحه وردپرس میشه ، من می خوام این جوری نباشه و اگه اطلاعات اشتباه بود وارد همین صفحه ای که ساختم بشه و اونجا اگه امکانش بود بگه اشتباه هست و اگه هم نبود نگه اما به هیچ عنوان وارد صفحه وردپرس نشه .

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

تشکر ، پیشاپیش یلدای همتون هم مبارک .

لینک به ارسال

روش بهتر این هست داده ‌ها را به همین صفحه ارسال کنید

قبل از فرم (ابتدای کد فایل) با تابع wp_signon ببینید کاربر میتواند لاگین شود یا نه

http://codex.wordpress.org/Function_Reference/wp_signon

لینک به ارسال

سلام .

مرسی آقا پاسا ولی :

من چیزی ازش نفهمیدم .

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

من می خوام اگه فیلد ها را اشتباه وارد کردند به جای این که منتقل بشند به wp-login.php توی همون صفحه ای که خودم ساختند بموند و اونجا ارور را بهشون نشون بده .

میشه راهنمایم کنید باید چی کار کنم ؟؟

یا اگه امکانش باشه و ضحمت نباشه برام درست کنید ؟؟

لینک به ارسال

نشانی که لینک دادند چیز مشکلی نداشت که متوجه نشوید یک اکشن ساده بود

ولی اگر نمی تونید باهاش کار کنید بهتره از افزونه استفاده کنید تا امنیت سایتتون حفظ بشه

اگر صفحه لاگ این را بخاطر شکل صفحه نمی پسندید می تونید کاملا شخصی سازیش کنید و اگر بخاطر امنیته که این صفحه امنیتش خیلی بالاست و در ضمن هیچ هکری در حهان وجود نداره که کد فرم های وردپرس را حفظ نباشه یا نشانی صفحه ورودش رو ندونه بگذریم از اینکه اغلب هکرهای حرفه ای اصلا نیازی به این صفحه ندارند و از طریق دیتا ها و منافذی که باز می کنند نفوذ می کنند

برای شخصی سازی صفحه ورود بخونید:

[sharedmedia=tutorials:tutorials:369]

لینک به ارسال

سلام .

مرسی آقای فخار عزیز .

اما من اصلا کاری که می خوام بکنم مربوط به این نمیشه که بخوام وردپرس را از دید هکر مخفی کنم چون وقتی کاربر وارد بشه می فهمه که سیستم وردپرس هست .

من یک کار کلاسیک می خوام انجام بدم و دوست دارم صفحه ورود و ثبت نام سایتم شبیح به صفحه های خود سایت باشه و وقتی کاربر فرم ورود را اشتباه پر کرد ارور مربوط را توی همون صفحه بده درست مثل سایت گرافیک ها که سیستمش وردپرس هست .

http://www.graphicha.com/login-2/

http://www.graphicha.com/register-2/

مشاهده کنید فرم ها توی خود وب سایت هست و اگه یکی از فیلد های فرم های ورود یا ثبت نام را اشتباه وارد کنی توی همین صفحه ارور را بهت نشون میده و وارد صفحه wp-login.php نمیشه .

من هم می خواهم اینجوری باشه .

لینک به ارسال

پیوندی که برای شخصی سازی گذاشته بودم رو بخونید

کم درد سر ترین راه اینه که از افزونه استفاده کنید

http://wordpress.org/plugins/theme-my-login/

و راه مطمئن و کمی سخت تر بدی اینه که به وسیله آموزشی که در پست قبل قرار دادم استایل سایتتون رو روی صفحه لاگین پیاده کنید

بحث ارورها نیست بحث اینه که فرم ورود شما اکشنش صفحه لاگ این وردپرسه که از هر لحاظ محافظت شده است و در اون صورت باید در خود صفحه قالب براش اکشن نوشت که امنیتتون رو به خطر می ندازه و یا توی صفحه لاگین دست برد که با به روز رسانی تغییرات از بین می رند

لینک به ارسال

سلام .

مرسی آقا پاسا ولی :

من چیزی ازش نفهمیدم .

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

من می خوام اگه فیلد ها را اشتباه وارد کردند به جای این که منتقل بشند به wp-login.php توی همون صفحه ای که خودم ساختند بموند و اونجا ارور را بهشون نشون بده .

میشه راهنمایم کنید باید چی کار کنم ؟؟

یا اگه امکانش باشه و ضحمت نباشه برام درست کنید ؟؟

اکشن فرم رو خالی کنید

و کد زیر رو قبل از فرم قرار دهید


<?php
if(isset($_POST['wp-submit'])){
$creds = array();
$creds['user_login'] = $_POST['log'];
$creds['user_password'] = $_POST['pwd'];
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
else
echo "success login";
}
?>

لینک به ارسال

سلام .

واقعا یک دنیا ممنون اقا پارسا ، خیلی خیلی خیلی خوشحالم کردی ، داشتم کلا نا امید می شدم .

اما چند نکنه :

موقع لاگین کردن اگه یوزر و پس ورد را اشتباه بزنی خطا میده که : " خطا: شناسه معتبر نیست. رمزتان را فراموش کرده‌اید؟ " . ( چجوری این لینک فراموشی را حذف کنم یا منتقل کنم به صفحه خودم ؟

همین کار را برای ثبت نام هم کردم ، اما خطا نمیده و صفحه ریفرش میشه . ( برای ثبت نام همین جور هست یا من جایی اشتباه کردم یا کد متفاوت داره ) .

کد هایی که برای ثبت نام استفاده کردم این هست :


<?php
if(isset($_POST['wp-submit'])){
$creds = array();
$creds['user_login'] = $_POST['log'];
$creds['user_password'] = $_POST['pwd'];
$creds['remember'] = true;
$user = wp_signon( $creds, false );
if ( is_wp_error($user) )
echo $user->get_error_message();
else
echo "soccess login";
}
?>
<form name="registerform" id="registerform" method="post">
<p>
<label for="user_login">شناسه : <input type="text" name="user_login" id="user_login" class="input" value="" size="25" /></label>
</p>
<p>
<label for="user_email">ایــمـیـل : <input type="text" name="user_email" id="user_email" class="input" value="" size="25" /></label>
</p>
<p id="reg_passmail">رمز با نامه برای شما فرستاده خواهد شد.</p>
<br class="clear" />
<input type="hidden" name="redirect_to" value="" />
<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="نام‌نویسی" />
</form>

لینک به ارسال

با دستور str_replace خروجی خطا را تغییر دهید

برای ساخت کاربر

http://codex.wordpress.org/Function_Reference/wp_create_user

لینک به ارسال

سلام .

برای تغییر متن باید از این روش استفاده کنم درسته :


function change_post_to_article( $translated )
{
$translated = str_replace( 'مشخصات', 'تغيير مشخصات', $translated );
return $translated;
}

ولی من می خوام اون لینک ادامه را حذف کنم ، چه جوری باید اون لینک را حذف کنم ؟

در مورد کد های ثبت نام هم هرچی گشتم و تغییر دادم عمل نکرد . هر چی تغغیر می دم خطا می ده که ( پسورد را وارد کنید و ...) این 2 تا مشکل را برای من حل کنید بزرگ ترین کمک را به من کردید .

لینک به ارسال

حذف لینک

http://stackoverflow...string-with-php

برای جایگزینی لینک هم از دستور قبلی هم میتوانید استفاده کنید

برای ثبت نام هم. کد همون صفحه تابع رمز رو تولید میکند


$user_id = username_exists( $user_name );
if ( !$user_id and email_exists($user_email) == false ) {
$random_password = wp_generate_password( $length=12, $include_standard_special_chars=false );
$user_id = wp_create_user( $user_name, $random_password, $user_email );
} else {
$random_password = __('User already exists. Password inherited.');
}

فقط باید متغییرها را برابر نام فیلد ارسالی کنید

لینک به ارسال

سلام مجدد .

اقا پارسا نشد .

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

این کد هم اصلا موقع ساخت یوزر اگه یوزر تکراری باشه یا ایمیل اشباه باشه یا .. اصلان خطا نمی ده و موفع ساخت اکانت هم هیچ پیغامی نمیده ...

لطفا کمکم کنید ...

لینک به ارسال

مشکل ثبت نام و فرم را حل کردم فقط مونده حذف لینک فراموشی گذرواژه که موقع ثبت نام میده ...

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

لطفا راهنماییم کنید ..

لینک به ارسال

خطا نمیدهد؟

نام کاربر تکراری ساخته میشود؟

در حالت else میتوانید پیام را نمایش دهید

برای حذف لینک

از تابع strip_tags استفاده کنید

http://stackoverflow.com/questions/3830717/how-to-remove-a-link-from-content-in-php?answertab=active#tab-top

لینک به ارسال

مجددا صفحه سفید و پیغام خطا در کد ها را نمایش داد .

فکر نکنم این کد ها برای وردپرس باشه هر کاریش می کنم نمیشه !!!

حتما اشتباه کد قرار میدی

یه حرف اضافه کم باعث این مشکلات میشه دوباره با دقت انجام دهید

لینک به ارسال

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

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

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

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

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

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

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

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

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