3v4l.org

run code in 300+ PHP versions simultaneously
<?php define('FIELDS', ['name', 'address', 'city']); define( 'HTML_FIELD_FORM', <<<'HTML' <h2>%1$s</h2> <form method="post" autocomplete="off"> <input type="text" name="%1$s" autocomplete="off" placeholder="%1$s"><br> <input value="submit" type="submit"> </form> HTML ); define( 'HTML_CLEAR_FORM', <<<'HTML' <form method="post" autocomplete="off"> <input type="text" name="%1$s" value="1" hidden><br> <input value="%1$s" type="submit"> </form> HTML ); foreach (FIELDS as $field) { if (isset($_POST[$field])) { // Set session & cookie from post $_SESSION[$field] = $_POST[$field]; setcookie($field, $_POST[$field]); } elseif (isset($_COOKIE[$field])) { // Set session from cookie $_SESSION[$field] = $_COOKIE[$field]; } elseif (!isset($_SESSION[$field])) { // Present individual field form printf(HTML_FIELD_FORM, $field); } } foreach (['clear_session', 'clear_cookies'] as $action) { printf(HTML_CLEAR_FORM, $action); }
Output for 8.0.1 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
<h2>name</h2> <form method="post" autocomplete="off"> <input type="text" name="name" autocomplete="off" placeholder="name"><br> <input value="submit" type="submit"> </form><h2>address</h2> <form method="post" autocomplete="off"> <input type="text" name="address" autocomplete="off" placeholder="address"><br> <input value="submit" type="submit"> </form><h2>city</h2> <form method="post" autocomplete="off"> <input type="text" name="city" autocomplete="off" placeholder="city"><br> <input value="submit" type="submit"> </form><form method="post" autocomplete="off"> <input type="text" name="clear_session" value="1" hidden><br> <input value="clear_session" type="submit"> </form><form method="post" autocomplete="off"> <input type="text" name="clear_cookies" value="1" hidden><br> <input value="clear_cookies" type="submit"> </form>

preferences:
131.95 ms | 404 KiB | 89 Q