DBookatay Posted February 8, 2008 Share Posted February 8, 2008 Some of my forms use $_POST data, and some of my site relies on links ($_GET) and all point to one page where the functions are completed. Is there a way to combine the 2, instead of having this: if ($_GET['trans'] == "Auto") { $trans_type = "Automatic"; $where[] = "trans_type = 'Automatic' or trans_type = 'Tiptronic'"; $trnsLnk = "&trans=Auto"; } elseif ($_GET['trans'] == "Manual") { $trans_type = "Manual"; $where[] = "trans_type = 'Manual'"; $trnsLnk = "&trans=Manual"; } if ($_POST['trans'] == "Auto") { $trans_type = "Automatic"; $where[] = "trans_type = 'Automatic' or trans_type = 'Tiptronic'"; $trnsLnk = "&trans=Auto"; } elseif ($_POST['trans'] == "Manual") { $trans_type = "Manual"; $where[] = "trans_type = 'Manual'"; $trnsLnk = "&trans=Manual"; } for each $_GET and $_POST (about 30 all togather...) Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/ Share on other sites More sharing options...
kenrbnsn Posted February 8, 2008 Share Posted February 8, 2008 You could use the $_REQUEST array, which is the combination of $_GET, $_POST, and $_COOKIE. You could write a function that returns the value of which ever is set and use the returned value in the "if" statments: <?php function whichway($key) { $val = ''; if (isset($_GET[$key])) $val = $_GET[$key]; if (isset($_POST[$key]) && $val == '') $val = $_POST[$key]; return($val); } switch (whichway('trans')) { case 'Auto': $trans_type = "Automatic"; $where[] = "trans_type = 'Automatic' or trans_type = 'Tiptronic'"; $trnsLnk = "&trans=Auto"; break; case 'Manual': $trans_type = "Manual"; $where[] = "trans_type = 'Manual'"; $trnsLnk = "&trans=Manual"; break; } ?> Ken Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/#findComment-461897 Share on other sites More sharing options...
cooldude832 Posted February 8, 2008 Share Posted February 8, 2008 $_REQUEST can get slopy as a GET var could overwrite a POST var and the values could become contaimenated Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/#findComment-461905 Share on other sites More sharing options...
DBookatay Posted February 8, 2008 Author Share Posted February 8, 2008 What about adding other clauses, line $_POST['body'] or $_GET['body']? How do I add it to this: switch (whichway('trans')) { Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/#findComment-461925 Share on other sites More sharing options...
kenrbnsn Posted February 8, 2008 Share Posted February 8, 2008 The function I created returns the value of whichever $_POST or $_GET is set, so you could use it like <?php $body = whichway('body'); ?> Ken Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/#findComment-461930 Share on other sites More sharing options...
DBookatay Posted February 8, 2008 Author Share Posted February 8, 2008 So, do this: function whichway($key) { $val = ''; if (isset($_GET[$key])) $val = $_GET[$key]; if (isset($_POST[$key]) && $val == '') $val = $_POST[$key]; return($val); } switch (whichway('type')) { case 'Plow': $pTitle = 'Search Results: Plow Trucks'; $where[] = "feature_SP = 'x'"; $typeLnk = "&type={$_GET['type']}"; break; case 'Hybrid': $pTitle = 'Search Results: Hybrid Vehicles'; $where[] = "fuel = 'Hybrid'"; $typeLnk = "&type={$_GET['type']}"; break; } switch (whichway('trans')) { case 'Auto': $where[] = "trans_type = 'Automatic' or trans_type = 'Tiptronic'"; $trnsLnk = "&trans=Auto"; break; case 'Manual': $where[] = "trans_type = 'Manual'"; $trnsLnk = "&trans=Manual"; break; } Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/#findComment-461944 Share on other sites More sharing options...
kenrbnsn Posted February 8, 2008 Share Posted February 8, 2008 Almost, except where ever you used $_GET or $_POST explicitly, you need to use whichway(): <?php switch (whichway('type')) { case 'Plow': $pTitle = 'Search Results: Plow Trucks'; $where[] = "feature_SP = 'x'"; $typeLnk = "&type=" . whichway('type'); break; case 'Hybrid': $pTitle = 'Search Results: Hybrid Vehicles'; $where[] = "fuel = 'Hybrid'"; $typeLnk = "&type=" . whichway('type')"; break; ?> Ken Link to comment https://forums.phpfreaks.com/topic/90090-solved-combining-_get-and-_post-statement/#findComment-461974 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.