PDA

View Full Version : سوال: بررسی isset درون تابع یا متد



Metal Gear Solid
چهارشنبه 19 مرداد 1390, 14:41 عصر
سلام

از دوستان خواهش میکنم ببینن مشکل این کد کجاست.
لازم به ذکره که این کد در حالت تک مقداری کار میکنه اما به صورت چند مقداری درست جواب نمیده. خودم حدس میزنم به خاطر همنام بودن type هاست. چون یا $_POST هستند یا $_GET

یه تابع که مقادیر ورودیش متغیرهای $_POST و $_GET هستند که داخل خود تابع اینها رو بررسی میکنه که آیا مقداری براشون وارد شده یا خیر. isset شدن یا خیر


function issetGlobals ( $string ){

$output = '';
foreach ( $string as $type => $value ) {
if ( $type == '$_GET' )
if ( isset( $_GET[$value] ) )
$output .= '<br />$value is set';
else
$output .= '<br />$value is not set';
else if ( $type == '$_POST' )
if ( isset( $_POST[$value] ) )
$output .= "<br />$value is set!";
else
$output .= "<br />$value is not set!";
}

return $output;
}


echo issetGlobals( array( '$_GET' => 'variable1', '$_POST' => 'variable2', '$_GET' => 'variable3' ) );
echo issetGlobals( array( '$_POST' => 'variable1', '$_GET' => 'variable2', '$_POST' => 'variable3', '$_POST' => 'variable4', '$_POST' => 'variable5' ) );




در این حالت باید جواب تمامی متغیرهای فرستاده شده is not set باشه. اما خروجی رو فقط یکبار چاپ میکنه و برای آخرین متغیر!
برای تست هم از URL به صورت GET بفرستید نتیجه رو ببینید اگه به صورت POST هم میخواید بفرستید از این کد استفاده کنید.


<form action="check_isset.php" method="post">
<input type="text" name="variable1" value="" />
<br />
<input type="text" name="variable2" value="" />
<br />
<input type="text" name="variable3" value="" />
<br />
<input type="text" name="variable4" value="" />
<br />
<input type="text" name="variable5" value="" />
<br />

<input type="submit" value="send" />
</form>ممنون از کسانی که جواب میدند.
با تشکر