رفتن به مطلب
alimir

نمایش نتیجه ارسال فرم بدون استفاده از GET

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

سلام،

اگه ما یه فرمی داشته باشیم که به یک فایل پی اچ پی action داده شده، چطور میتونیم از متدی غیر از GET برای نمایش وضعیت پیغام استفاده کنیم؟!؟

مثلا اگه عملیات به درستی انجام شد، پیغام موفقیت رو به طریقی غیر از GET به فایل اصلی بفرستیم.

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


لینک به ارسال

بجز GET یک متد دیگه وجود داره که POST است


<form method="post" action="">

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


لینک به ارسال

بجز GET یک متد دیگه وجود داره که POST است


<form method="post" action="">

ممنون آقای فخار،

ولی منظور من استفاده از متد GET یا POST در فرم html نبود! در واقع من در یک فایل php یه فرمی رو آماده کردم و این فرم به سورس یک فایل php دیگه action داده شده. حالا وقتی که اطلاعات ارسالی رو از فرم html دریافت میکنم یه سری بررسی ها روش انجام میدم که مثلا فیلدهای لازم حتما تکمیل شده باشند و در صورتی خالی بودن تابع location رو به همراه permalink و یک رشته پیغام بازگشت میده.

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

حالا به نظرم میاد شاید این روش خیلی جالب نباشه!!! به همین خاطر میخوام از روشی مثل POST در تابع HEADER استفاده کنم که دیگه از لینک چیزی رو نگیره.

امیدوارم که تونسته باشم منظورم رو برسونم...

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


لینک به ارسال

می تونید با متد post و جی کوئری کاری که می خواهید رو انجام بدید

به این صورت که فرمی رو در برگه اکشن قرار بدید که متغییر هاش رو با استفاده از ورودی پر کنه و بعد از تکمیل با جی کوئری فرم را سابمیت کنید نمونه ساده:

سند اول با نام my_form.php:


<?php if(isset($_REQUEST['message'])) {
echo $_REQUEST['message'];
}
?>
<form method="post" action="my_action.php">
<input type="text" name="name" value="<?php if(isset($_REQUEST['name'])) echo $_REQUEST['name'];?>" placeholder="نام خود را وارد کنید" /><br />
<input type="text" name="email" value="<?php if(isset($_REQUEST['email'])) echo $_REQUEST['email'];?>" placeholder="ایمیل خود را وارد کنید" /><br />
<input name="submit" type="submit" />
</form>

سند دوم با نام my_action.php


<?php if(isset($_REQUEST['submit'])) :
if(empty($_REQUEST['name'])) {
$message = "لطفا نام خود را وارد نمایید ";
}
elseif(empty($_REQUEST['email'])) {
$message = "لطفا ایمیل خود را وارد نمایید ";
}
else {
$message = "با تشکر مشخصات شما ثبت شد ";
}
?>
<form id="myForm" method="post" action="my_form.php">
<input type="hidden" name="message" value="<?php echo $message;?>" />
<input type="hidden" name="name" value="<?php if(isset($_REQUEST['name'])) echo $_REQUEST['name'];?>" />
<input type="hidden" name="email" value="<?php if(isset($_REQUEST['email'])) echo $_REQUEST['email'];?>" />
</form>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#myForm").submit();
})
</script>
<?php endif;?>

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


لینک به ارسال

بسیار ممنونم،

منتها به دلایل امنیتی، آیا ممکنه بدون استفاده از تابع sumbit جی کوئری، این کار رو انجام بدیم؟!؟

همچنین در فرم فایل my_action، آیا لازم به مقدار دهی value و تعریف دو فیلد email و name هست؟!؟

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


لینک به ارسال

بدون دستور submit که فقط می مونه همون تابع header_location و متد get ولی برای شکیل تر شدنش می تونید پیامها را کد کنید به عنوان مثال یک پیام را با نام n بشناسید و در دستور برگشت


http://site.com/?message=n

را قرار دهید و در فایل اصلی شرط کنید که اگر message مقدار n را برگرداند فلان پیام را نمایش بده

توی فرم حاضر مقدارهای name و email به وسیله فیلدهای هیدن برگردانده می شوند تا کاربر مجبور به تکمیل دوباره فیلدهایی که درست پر کرده بوده نباشد اگر نخواهید اینکار را بکنید می تونید فرم اول را آژاکسی اجرا کنید

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


لینک به ارسال

ممنونم،

بله در حال حاضر حاضر از همین روش پیام در کد استفاده میکنم. منتها برام سؤال بود که آیا میشه بدون روش url هم پیغامی رو فرستاد!!!

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


لینک به ارسال

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

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


لینک به ارسال

در سیستم لوگین وردپرس از همین روش استفاده شده؟!؟

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


لینک به ارسال

در سیستم لوگین وردپرس از همین روش استفاده شده؟!؟

فرم login با متد post ساخته می شه :


<form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">

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


لینک به ارسال

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

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

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

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

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

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

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

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


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