@kisel111

Как исправить ошибку Parse error: syntax error, unexpected 'if' (T_IF) in C:\OSPanel\domains\Game.loc\logreg.php on line 29?

<?php
include "db.php";

$dt = $_GET;


$playerdata = array(
    "nickname"=>"Name",
    "colorMain" => "Null",
    "colorSecond" => "Null",
);

$error = array(
    "errorText"=>"emty",
    "isError" => false
);

$userData = array(
    "PlayerData" => $playerdata,
    "error" => $error
);


if (isset($dt[`type`]) == "logging"){
    if (isset($dt[`login`]) && isset($dt[`password`])){

    }
}else (isset($dt[`type`]) == "register"){
    if (isset($dt[`login`]) && isset($dt[`password1`] && isset($dt[`password2`])  && isset($dt[`nickname`]))){

    }
}

echo json_encode($userData, JSON_UNESCAPED_UNICODE);
?>
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
  • Конструкция else по определению не принимает никаких дополнительных проверок.
  • Результат isset бессмысленно сравнивать со строкой.
  • В isset($dt[`password1`] не закрыта скобка.
  • Вместо бэктиков нужно использовать нормальные кавычки.


Вооружитесь учебником и PhpStorm, тогда никакие ошибки парсинга вам не будут страшны.

Олдскулы

$type = array_key_exists('type', $_GET) ? $_GET['type'] : null;

if ($type === 'logging') {
    if (isset($dt['login'], $dt['password'])) {
    }
} elseif ($type === 'register') {
    if (isset($dt['login'], $dt['password1'], $dt['password2'], $dt['nickname']))) {
    }
}

// Вместо if-elseif может быть использован switch, если логика позволяет и читаемость не будет страдать


Современность
$type = $_GET['type'] ?? null;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы