add url parameters to $_GET variable with separated commas issue

40
March 14, 2019, at 11:50 PM

This is my function, I simply want to output a link like this:

www.example.com/new?cat=22,23,27

If a category value already exists I want to delete it. If it doesn't exist yet, i want to add it.

This is my function:

function setorunset($value) {
    if(isset($_GET['cat'])) { //wenn schon eine categorie da ist
        if(strpos($value,$_GET['cat']) === false ) { 
            $_GET['cat'] .= ",".$value; }
        else {
            str_replace(",".$value, ",", $_GET['cat']);
        }
        echo http_build_query($_GET);   
    }
    else {
        echo http_build_query($_GET).'&cat='.$value;
    }
}

I simply can't find the error why this shouldnt work: I call this function with: setorunset(22);

Does anyone find any error?

Answer 1

Don't use strpos() for this. If you have cat=101,11 and you call setorunset(10) it will match the 10 in 101.

Instead, use explode() to create an array from the value, update the array, and then use implode() to create the new value.

function setorunset($value) {
    if(isset($_GET['cat'])) { //wenn schon eine categorie da ist
        $cat = explode(',', $_GET['cat']);
        $pos = array_search($value, $cat);
        if ($pos === false) {
            $cat[] = $value;
        } else {
            unset($cat[$pos]);
        }
        $_GET['cat'] = implode(',', $cat);
    }
    else {
        $_GET['cat'] = $value;
    }
    echo http_build_query($_GET);
}
READ ALSO
How to get current server avaible quota to send emails with PHP

How to get current server avaible quota to send emails with PHP

im in a development of an website that needs to send massive emails to their usersI have done the PHP script to send emails using PHPMailer and its ok, but the server has a limit by hour to send emails

45
.htaccess file is not working properly on Godaddy server

.htaccess file is not working properly on Godaddy server

I have hosted my folder on godaddy linux cpanelWordpress files are in inside /public_html/tma

51
How to make dynamic url with multiple vars like in Laravel?

How to make dynamic url with multiple vars like in Laravel?

How to make dynamic url with multiple vars like in Laravel in my own small MVC? Like when I write Route::get('/post/$1/$2', 'PostsController@showUserPosts')How do you approach this?

47
Yii2 - cannot add foreign key constraint

Yii2 - cannot add foreign key constraint

I am coming from the Laravel worldI know that foreign keys are necessary for relations to work correctly

22