Superglobals as Concepts
Form Post
$_POST represents submitted form fields.
form field cleanup
Form fields are text, so a small cleanup step is usually the first move.
Form Post
form_post.php
Replay: real traced execution (multi-file project)
<?php
$nameInput = "Ada";
$_POST["name"] = " " . $nameInput . " ";
$name = trim($_POST["name"] ?? "guest");
$label = $name === "" ? "guest" : $name;
$length = strlen($label);
echo "name=" . $label . "\n";
echo "length=" . $length . "\n";
<?php
$nameInput = "Grace";
$_POST["name"] = " " . $nameInput . " ";
$name = trim($_POST["name"] ?? "guest");
$label = $name === "" ? "guest" : $name;
$length = strlen($label);
echo "name=" . $label . "\n";
echo "length=" . $length . "\n";
<?php
$nameInput = "Linus";
$_POST["name"] = " " . $nameInput . " ";
$name = trim($_POST["name"] ?? "guest");
$label = $name === "" ? "guest" : $name;
$length = strlen($label);
echo "name=" . $label . "\n";
echo "length=" . $length . "\n";
$nameInput ← Ada, $_POST["name"] ← Ada , $name ← Ada, $label ← Ada
1<?php2$nameInput→ Ada = "Ada"; //@nameInput="Grace", "Linus"3$_POST["name"]→ Ada = " " . $nameInputAda . " ";4$name→ Ada = trim($_POST["name"] Ada ?? "guest");5$label→ Ada = $nameAda === "" ? "guest" : $name;6$length→ 3 = strlen($labelAda);78echo "name=" . $labelAda . "\n";9echo "length=" . $length3 . "\n";outputname=Ada length=3values this stepArray$_POST
$nameInput ← Grace, $_POST["name"] ← Grace , $name ← Grace
1<?php2$nameInput→ Grace = "Grace";3$_POST["name"]→ Grace = " " . $nameInputGrace . " ";4$name→ Grace = trim($_POST["name"] Grace ?? "guest");5$label→ Grace = $nameGrace === "" ? "guest" : $name;6$length→ 5 = strlen($labelGrace);78echo "name=" . $labelGrace . "\n";9echo "length=" . $length5 . "\n";outputname=Grace length=5values this stepArray$_POST
$nameInput ← Linus, $_POST["name"] ← Linus , $name ← Linus
1<?php2$nameInput→ Linus = "Linus";3$_POST["name"]→ Linus = " " . $nameInputLinus . " ";4$name→ Linus = trim($_POST["name"] Linus ?? "guest");5$label→ Linus = $nameLinus === "" ? "guest" : $name;6$length→ 5 = strlen($labelLinus);78echo "name=" . $labelLinus . "\n";9echo "length=" . $length5 . "\n";outputname=Linus length=5values this stepArray$_POST