phpsessionparse-platformphp-parse-error

Parse PHP current user update failed but session updated


In Parse PHP SDK If the current user want to change his Email/username normally Parse check if username used by other user and if it is used it will return error, now this is good and work perfectly so far but the issue is the session is automatically updates to the new value where it failed.

so basically the session for the current user updated even if it wasn't for the backend

Steps to reproduce

$currentUser = Parse\ParseUser::getCurrentUser();
echo "Current Username is : ". $currentUser->get("username");

if ($currentUser) {
  $currentUser->set("username", "ww");
try {
        $currentUser->save();
        echo "UPDATED";
    } catch (Parse\ParseException $er) {
        $ex = $er->getMessage();
        echo "<br> Error: ". $ex;
    }
}

here is a video that explains more:

https://youtu.be/KWS9fW5MReA


Solution

  • Since you have updated the object in your PHP application, it will keep updated locally unless you reset the action. So you can either:

    See below one of the possible solutions:

    $currentUser = Parse\ParseUser::getCurrentUser();
    echo "Current Username is : ". $currentUser->get("username");
    
    if ($currentUser) {
      $currentUser->set("username", "ww");
    try {
            $currentUser->save();
            echo "UPDATED";
        } catch (Parse\ParseException $er) {
            $currentUser->fetch();
            $ex = $er->getMessage();
            echo "<br> Error: ". $ex;
        }
    }