جداکردن آرایه $_post از آرایه $_get

phpweb

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

PHP:
if(isset($_POST))
{
//
}
if(isset($_GET))
{
//
}
با توجه به زیاد بودن فرمهایی که از متد پست استفاده می کنن (300 فرم) و همچنین زیاد بدون لینکهایی که از متد گت استفاده می کنن(500 لینک)، تصمیم گرفتم که توی بخش کنترل، این دو آرایه رو از هم جدا کنم.

مشکل اینجاست که وقتی یه فرم رو به کمک آرایه پست ارسال می کنم، هر دو شرط بالا اجرا می شن.

چطور باید این دو آرایه رو از هم جدا کنم؟
 

phpweb

Active Member
وقتی از پست استفاده میکنید کوئری استرینگ در url دارید ؟
با استفاده از کوئری استرینگ فرم مورد نظر رو نمایش می دم. ولی وقتی فرم ارسال می شه، از کوئری استرینگ استفاده نمی کنم. همه مقادیر رو به کمک آرایه پست ارسال می کنم.

مثلا تگ فرمی که استفاده می کنم به این شکل هست.
HTML:
<form metoth="post" action="sent.php" />

آیا کوئری استرینگی که برای نمایش فرم بکار بردم باعث اخلال در کار شده یا دلیل دیگه ای داره؟
 

ziXet

مدیر انجمن PHP/MYSQL
خب $_GET همیشه isset رو true برمیگردونه
شما باید چک کنی که آرایه $_GET چند تا ایندکسش ست شده تا بتونی تشخیص بدی
 

phpweb

Active Member
خب $_GET همیشه isset رو true برمیگردونه
شما باید چک کنی که آرایه $_GET چند تا ایندکسش ست شده تا بتونی تشخیص بدی
اگر بجای isset از تابع empty استفاده کنم، مشکل حل می شه؟ سوال دیگه اینکه، آیا آرایه پست هم در هنگام کار با این توابع مثل آرایه گت رفتار می کنه؟

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

Masoud1365

مدیر انجمن
این بله "بله !" یعنی بله یا یعنی نه !:wink:

چرا $_GET همیشه isset رو true برمیگردونه و $_POST این رفتار رو نداره؟
سوال فنی میپرسیا ! :wink:
برای این که گت از url گرفته میشه همیشه ست میشه ولی مقدار دهی نمیشه اگر که چیزی داخل url نباشه ! واسه همین میتونی از empty استفاده کنی !
 

phpweb

Active Member
سوال فنی میپرسیا ! :wink:
برای این که گت از url گرفته میشه همیشه ست میشه ولی مقدار دهی نمیشه اگر که چیزی داخل url نباشه ! واسه همین میتونی از empty استفاده کنی !
سایت پی اچ پی رو نگاه کردم، ظاهرا توابع isset و empty برای چک کردن پر یا خالی بودن یه رشته چندان قابل اطمینان نیستن.

مثلا تابع empty عدد 0 و 0.0 و رشته های "0" و ... رو خالی در نظر می گیره.

بنظرم بهتره که از تعداد ایندکهای آرایه رو بشمارم تا اینکه از این دوتابع استفاده کنم.
 

جدیدترین ارسال ها

بالا