페이지가로드 된 후 PHP 변수를 할당/변경하는 방법이 있습니까? 예를 들어, 내가 변수 $username
을 가지고 있다고 가정 해 봅시다. $username
은 아직 설정되지 않았지만 사용자가 입력 필드가 $username
인 양식을 제출하면 설정됩니다. 따라서 본질적으로 $username
은 $username = $_POST["username"];
이됩니다. 사용자가 사용자 이름을 다시 변경하기로 결정했다고 가정 해 봅시다. (주의 : 페이지는 사용자 제출시 결코 새로 고쳐지지 않습니다. 같은 페이지입니다.) $ username은 $ _POST [ "username"]에 다시 할당됩니다. 이 현재의 방법론으로, 그것은 나를 위해 작동하지 않습니다. 나는 다음을 구성했다 :페이지를 새로 고치지 않고 PHP 변수를 변경하십시오.
$prevUsername;
$newUsername;
if ((isset($_POST["username"]))
{
$newUsername = $_POST["username"];
if ($username == "")
{
$db->query("INSERT INTO Users (`username`) VALUES ('$newUsername')");
$prevUsername = $newUsername;
}
else
{
$db->query("UPDATE Users SET username = '$newUsername' WHERE username = '$prevUsername'");
$prevUsername = $newUsername;
}
}
사용자가 사용자 이름을 제출하면 올바르게 작동한다. 사용자가 사용자 이름을 업데이트하려고 할 때만 제대로 작동하지 않습니다. 사용자 이름을 업데이트해도 오류는 반환되지 않지만 이전 사용자 이름을 기반으로 업데이트되지 않습니다. 업데이트하는 대신 UPDATE SQL 문이 시작되지 않은 경우와 동일하게 유지됩니다. 이 문제를 해결할 방법이 있습니까? 세션 변수
:
session_start();
ob_start();
$_SESSION["username"];
if (isset($_POST["username"]))
{
if (isset($_SESSION["username"]))
{
$db->query("UPDATE Users SET username = '{$_POST['username']}' WHERE username = '{$_SESSION['username']}'");
}
else
{
$db->query("INSERT INTO Users (`username`) VALUES ('{$_POST['username']}')");
$_SESSION["username"] = $_POST["username"];
}
}
업데이트 쿼리? –
이러한 요청은 완전히 다른 스크립트 실행으로 처리됩니다. 서로 다른 실행간에 값이 교환 될 것이라고 단순히 기대할 수는 없습니다. 이를 위해 세션을 사용해야합니다. 자세한 내용은 해당 설명서를 참조하십시오. – arkascha
@arkascha 세션 변수를 사용하는 경우에도 동일한 결과를 얻습니다. 세션과 일반 변수를 모두 사용하여 시도했지만 두 가지 모두 제대로 작동하지 않는 것으로 보입니다. – user2896120