3v4l.org

run code in 300+ PHP versions simultaneously
<?php session_start(); // if the user navigates directly to session.php and there is NOT an active session with stored session variables, redirect to input.php if ((!isset($_SESSION["username"]) && !isset($_SESSION["s1"]) && !isset($_SESSION["s2"]) && !isset($_SESSION["firstrun"])) ) { //&& empty($_REQUEST["username"] && empty($_REQUEST["s1"]) && empty($_REQUEST["username"])) { header("Location: input.php"); exit; } // if the user navigates directly to session.php and there IS an active session with stored variables, redirect to strings.php but // ONLY if input.php did NOT call session.php with POST data else if (isset($_SESSION["username"]) && isset($_SESSION["s1"]) && isset($_SESSION["s2"]) && ($_SESSION["username"] != "") && ($_SESSION["s1"] != "") && ($_SESSION["s2"] != "") && ($_SESSION["firstrun"] == "false") && empty($_POST)) { header("Location: strings.php"); exit; } else { if (!empty($_REQUEST)) { $username = htmlspecialchars($_REQUEST["username"]); $s1 = htmlspecialchars($_REQUEST["s1"]); $s2 = htmlspecialchars($_REQUEST["s2"]); if ($username != "" && $s1 != "" && $s2 != "") { $_SESSION["username"] = $username; // implicit call to session_start() if not already called $_SESSION["s1"] = $s1; // call session_name() first to start named session $_SESSION["s2"] = $s2; //echo "Vars are".$_SESSION["username"].$_SESSION["s1"].$_SESSION["s2"]; // if session creation and variable assigning was successful, set firstrun to false and empty the POST array // return true to calling JS function to enable redirect to strings.php if (isset($_SESSION["username"]) && isset($_SESSION["s1"]) && isset($_SESSION["s2"])) { $_SESSION["firstrun"] = "false"; $_POST = array(); echo "true"; } } } } ?>
Output for git.master, git.master_jit, rfc.property-hooks

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
39.81 ms | 401 KiB | 8 Q