Direi che funziona grosso modo. Ben fatto. Anche se , a parer mio, ha una logica un po' bizzarra / confusionaria per chi non è nella tua testa. Non ho ben capito perché ad esempio hai deciso di scrivere alla fine la stringa completa invece di quella "troncata" dato che la ricerca la fai all'interno di quella troncata e in fondo chissene frega di rileggersi quale stringa completa si era inserito.
Anche i nomi che hai dato alle variabili mi sembrano confusionari e misteriosi perché dove tu hai if(strpos($stringa, $haystack) !== false){
Quello che tu hai chiamato haystack qui ed è in seconda posizione è ciò che stai cercando e che nell'esempio sopra lui nomina "$needle" e andrà a cercarlo all'interno della stringa (in prima posizione), nel tuo caso $stringa.
Ognuno chiama come diavolo vuole le cose. Ma a parer mio se devi usare questi nomi che lui ha dato sopra invertendo la loro "funzione" risulta confusionario, è meglio dare nomi che vuoi tu e che sono in qualche modo significativi per te.
personalmente l'avrei reinterpretato così:
<?php
if (isset($_POST["stringa"]) && $_POST["stringa"]!= "" && isset($_POST["Ricerca"]))
{
$stringa = $_POST["stringa"];
$sottostringa = substr($stringa, 0 , 5); // Prende i primi 5 caratteri da stringa (partendo dalla posizione 0 cioè dal primo carattere a sinistra.
echo ("I primi 5 caratteri della stringa inserita sono: ".$sottostringa."</br>");
$Ricerca = $_POST["Ricerca"]; // Cosa cercare all'interno della stringa.
if(strpos($sottostringa, $Ricerca) == false){
echo "All'interno di questi caratteri non è stato trovato nulla.";
if ($Ricerca == "") echo "</br> Poiché non è stato compilato il campo ricerca.";
}else $posizione = strpos($stringa, $Ricerca);
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Form per funzioni sulle stringhe</title>
</head>
<body>
<h1>Form per funzioni sulle stringhe</h1>
<form method="post"> <!-- il motivo per cui action è stato omesso è perché ometterlo significa rifrirsi alla stessa pagina-->
<label for="stringa">Inserisci una stringa:</label><br>
<input type="text" id="stringa" name="stringa"><br><br>
<label for="stringa">Ricerca:</label><br>
<input type="text" id="Ricerca" name="Ricerca"><br><br>
<input type="submit" value="Trova"/>
<?php if (isset($sottostringa) && $sottostringa != "") {echo $sottostringa;}
if (isset($posizione)){echo "</br> </br> la sottostringa è stata trovata nella posizione: " . $posizione;}
?>
</form>
</body>
</html>