[php-src] Issue #12810: There seems to be a bug in 8.3.0 in regards to if conditional statments.

From: Date: Tue, 28 Nov 2023 12:20:44 +0000
Subject: [php-src] Issue #12810: There seems to be a bug in 8.3.0 in regards to if conditional statments.
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-245915@lists.php.net to get a copy of this message
Issue: https://github.com/php/php-src/issues/12810 Author: GrimmReaper1O1 ### Description The following code: <?php $timestamp = date("Y/m/d h:i:sa") ?? ''; $createAdmin = $_POST['create_administrative_account'] ?? ''; $getRoot = $_POST['allow_root_privilages'] ?? ''; $allowAlter = $_POST['set_allow_alter_evidence'] ?? ''; $allowDelete = $_POST['set_allow_delete_evidence'] ?? ''; $allowDeleteAll = $_POST['allow_delete_all_evidence_from_email'] ?? ''; $alterAccount = $_POST['alter_administrative_account'] ?? ''; $denyRoot = $_POST['deny_root_privilages'] ?? ''; $denyAlter = $_POST['set_deny_alter_evidence'] ?? ''; $denyDelete = $_POST['set_deny_delete_evidence'] ?? ''; $denyDeleteAll = $_POST['deny_delete_all_evidence_from_email'] ?? ''; $deleteAccount = $_POST['delete_account'] ?? ''; $r1 = ''; $r2 = ''; $error = ''; if ($r1 !== '') { // the bug is in regards to the conditional statement below. if (($alterAccount != '' || $denyRoot != '' || $denyAlter != '' || $decyDelete != '' || $deleteAccount != '') && $deleteAccount != '') { $error .= "You may not create an account or alter and acount and delete it while altering privilages."; } if ($deleteAccount !== '') { $_SESSION['alterAccount'] = $alterAccount; header('Location: delete_account.php'); exit(); } } ?> <?= $error ?? "" ?><br> <form action="createAdministrativeAccount.php" method="POST"> <label for="create_administrative_account">Create administrative account from existing account:</label><input type="text" name="create_administrative_account" value="<?= $_POST['create_administrative_account'] ?? '' ?>"> <br> <label for="alter_administrative_account">Alter administrative account:</label><input type="text" name="alter_administrative_account" value="<?= $_POST['alter_administrative_account'] ?? '' ?>"> <br> <label for="allow_root_privilages">Allow root privilages:</label><input type="checkbox" name="allow_root_privilages"><br> <label for="set_allow_alter_evidence">Set allow alter evidence:</label><input type="checkbox" name="set_allow_alter_evidence"><br> <label for="set_allow_delete_evidence">Set allow delete evidence:</label><input type="checkbox" name="set_allow_delete_evidence"><br> <label for="allow_delete_all_evidence_from_email">Set allow delete all evidence from email:</label><input type="checkbox" name="allow_delete_all_evidence_from_email"><br> <label for="deny_root_privilages">Deny root privilages:</label><input type="checkbox" name="deny_root_privilages"><br> <label for="set_deny_alter_evidence">Set deny alter evidence:</label><input type="checkbox" name="set_deny_alter_evidence"><br> <label for="set_deny_delete_evidence">Set deny delete evidence:</label><input type="checkbox" name="set_deny_delete_evidence"><br> <label for="deny_delete_all_evidence_from_email">Set allow delete all evidence from email:</label><input type="checkbox" name="deny_delete_all_evidence_from_email"><br> <label for="delete_account">Delete account:</label> <input type="checkbox" name="delete_account"><br> <input type="submit" name="submit" value="SUBMIT"> </form> <?php Resulted in this output: ``` ``` went to delete_account.php But I expected this output instead: ``` ``` should have altered $error variable. ### PHP Version php 8.3.0 ### Operating System rocky linux 9

« previous php.bugs (#245915) next »