PDA

View Full Version : تشخیص نوع متد ارسال فرم



Jason.Bourne
سه شنبه 21 آذر 1391, 01:45 صبح
در این CideIginter چطوری میشه فهمید که فرم با متد POST ارسال شده؟!

pary_daryayi
پنج شنبه 23 آذر 1391, 19:31 عصر
تاجایی که میدونم بصورت پیش فرض با post ارسال میشه ، مگر اینکه شما یه آرایه به این شکل تعریف کنید و method رو get بدین .


$attributes = array('method'=>'GET','class' => 'email', 'id' => 'myform');
echo form_open('email/send', $attributes);

Jason.Bourne
پنج شنبه 23 آذر 1391, 20:30 عصر
چطوری میشه فهمید که فرم ارسال شده یا نه؟

plague
پنج شنبه 23 آذر 1391, 22:24 عصر
اگه ارسال نشده باشه مقدار false میگیره


if($this->input->post('xxx')){
echo 'با پست ارسال شده';
}
}

Jason.Bourne
جمعه 24 آذر 1391, 01:23 صبح
اگر منظورتون این هست که جای x x x باید نام یکی از فیلدهای فرم را بنویسیم، فکر نمی کنم این روش، روش خوبی باشه.
چون ممکنه به هر دلیلی این فیلد از داخل فرم حذف شده باشه! (دستکاری صفحه توسط کاربر)

pary_daryayi
جمعه 24 آذر 1391, 08:05 صبح
اگر منظورتون این هست که جای x x x باید نام یکی از فیلدهای فرم را بنویسیم، فکر نمی کنم این روش، روش خوبی باشه.
چون ممکنه به هر دلیلی این فیلد از داخل فرم حذف شده باشه! (دستکاری صفحه توسط کاربر)
مگه خارج CI ، اطلاعات فرم رو با post دریافت نمیکنیم ؟
یعنی باید چکار کرد ؟ منظورتون اعتبار سنجی هستش ؟

Jason.Bourne
جمعه 24 آذر 1391, 11:06 صبح
مگه خارج CI ، اطلاعات فرم رو با post دریافت نمیکنیم ؟
یعنی باید چکار کرد ؟ منظورتون اعتبار سنجی هستش ؟

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

$_SERVER['REQUEST_METHOD']
و گر بخوایم بفهمیم که نوع درخواست POST بوده به شکل زیر این کار را انجام می دهیم.


if($_SERVER['REQUEST_METHOD'] == 'POST')
{
///
}

در CI تابعی از پیش تعریف شده ای برای این کار هست؟

pary_daryayi
جمعه 24 آذر 1391, 14:36 عصر
اینو امتحان کنید.


$this->input->server('REQUEST_METHOD')