Может кто-то проверить это и посмотреть, если это возможно сделать меньше и проще - PullRequest
0 голосов
/ 15 декабря 2018

Ниже приведен мой код для конвертера валют, он устанавливает новый файл cookie и переменную, если файл cookie не существует, проверяет, было ли запрошено изменение файла cookie, и проверяет существующий файл cookie и задает для него переменную.Я использовал стороннюю переменную, потому что на новых наборах cookie PHP не может видеть и, следовательно, читать новый cookie, пока он не будет обновлен.Пожалуйста, проверьте, можно ли это упростить: D

/* No Cookie (Default Currency GBP) */
if(!isset($_COOKIE['currency'])) {
    setcookie(currency, GBP, time() + (86400 * 365), "/");
    $currency = "GBP";
    $currencyid = "1";
}

/* Set Varible Based On Exsiting Cookie and Change Varibles */
if (isset($_COOKIE['currency']) == "GBP" ){
    $currency = "GBP";
    $currencyid = "1";
}
elseif (isset($_COOKIE['currency']) == "USD" ){
    $currency = "USD";
    $currencyid = "2";
}

/* Change Cookie and Change Varibles (Because Check Below Wont Find New Varible of Cookie) */
if (isset($_GET['GBP'])) {
    setcookie(currency, GBP, time() + (86400 * 365), "/"); 
    $currency = "GBP";
    $currencyid = "1";
}

elseif (isset($_GET['USD'])) {
    setcookie(currency, USD, time() + (86400 * 365), "/");
    $currency = "USD";
    $currencyid = "2";
}

1 Ответ

0 голосов
/ 15 декабря 2018

Вы объединили два условия в одно выражение и разрушили предполагаемую логику ...

if (isset($_COOKIE['currency']) == "GBP" ){

Должно быть:

if (isset($_COOKIE['currency']) && $_COOKIE['currency'] == "GBP" ){

Или какая-то другая отдельная версия этого для поддержания логики,Как написано, ваш код спрашивает, если true|false == GBP.

... На самом деле, исходя из вашего первого блока условий, isset() не имеет смысла.

...