html - PHP -- How to replace string value to user input?

Can someone help me to figure out how to replace a defined string value with user input value? I am quite new in PHP programming and could not find an answer. I saw a lot of ways to replace string on the internet by using built-in functions or in arrays, but I could not find out the right answer to my question.

Here is my code:

$text = "Not found";
if ( isset($_GET['user'])) {
   $user_input = $_GET['user']; 
}

// from here I I tried to replace the value $text to user input, but it does not work.

    $raw = TRUE;
    $spec_char = "";
    if ($raw) {
       $raw = htmlentities($text);
       echo "<p style='font-style:bold;'> PIN " . $raw . "</p>";  *# displays "Not found"*
    } elseif (!$raw == TRUE ) {   
       $spec_char = htmlspecialchars($user_input);  
       echo "<p>PIN  $spec_char </p>";   
    }

<form>
   <input type="text" name="user" size="40" />
   <input type="submit" value="User_val"/>
</form>

I appreciate your answers.

Answer

Solution:

Lets run over your code, line by line.

// Set a default value for $text
$text = "Not found";

// Check if a value has been set...
if (isset($_GET['user'])) {
   // But then create a new var with that value.
   // Why? Are you going to change it?
   $user_input = $_GET['user']; 
}


// Define a few vars
$raw = TRUE;
$spec_char = "";

// This next line is useless - Why? Because $raw is always true.
// A better test would be to check for $user_input or do the
// isset() check here instead.
if ($raw) {
   // Basic sanity check, but $text is always going to be
   // "Not found" - as you have never changed it.
   $raw = htmlentities($text);
   // render some HTML - but as you said, always going to display
   // "Not found"
   echo "<p style='font-style:bold;'> PIN " . $raw . "</p>";

} elseif (!$raw == TRUE ) {
   // This code is never reached.
   $spec_char = htmlspecialchars($user_input);  
   echo "<p>PIN  $spec_char </p>";   
}


// I have no idea what this HTML is for really.
// Guessing this is your "input" values.
<form>
   <input type="text" name="user" size="40" />
   <input type="submit" value="User_val"/>
</form>

Just a guess I think you really wanted to do something more like this:

<?php

// Check if a value has been posted...
if (isset($_POST['user'])) {
   
   // render some HTML
   echo '<p style="font-style:bold"> PIN '.htmlspecialchars($_POST['user']).'</p>';
}

?>
<form method="post" action="?">
   <input type="text" name="user" size="40" />
   <input type="submit" value="User_val"/>
</form>

Source