Almadani Almadani - 8 days ago 7
PHP Question

How to resolve error when reading input from other form elements?

I am using this code to input data from an HTML form to PHP URL page using variable but it's showing this error when running on an Apache server localhost:

; print $basicText; print ""; ?>


This the HTML code:

<html>
<head>
<title>Font Choices</title>
</head>
<body>
<center>
<h1>Font Choices</h1>
<h3>Demonstrates how to read HTML form elements</h3>
<form method = "post"
action = "borderMaker.php">
<h3>Text to modify</h3>
<textarea name = "basicText"
rows = "10"
cols = "40">
Four score and seven years ago our fathers brought forth on this
continent a new nation, conceived in liberty and dedicated to the
proposition that all men are created equal. Now we are engaged in a
great civil war, testing whether that nation or any nation so
conceived and so dedicated can long endure.
</textarea>
<table border = 2>
<tr>
<td><h3>Border style</h3></td>
<td colspan = 2><h3>Border Size</h3></td>
</tr>
<tr>
<td>
<select name = borderStyle>
<option value = "ridge">ridge</option>
<option value =
"groove">groove</option>
<option value = "double">double</option>
<option value = "inset">inset</option>
<option value = "outset">outset</option>
</select>
</td>
<td>
<select size = 5
name = borderSize>
<option value = "1">1</option>
<option value = "2">2</option>
<option value = "3">3</option>
<option value = "5">5</option>
<option value = "10">10</option>
</select>
</td>
<td>
<input type = "radio"
name = "sizeType"
value = "px">pixels<br>
<input type = "radio"
name = "sizeType"
value = "pt">points<br>
<input type = "radio"
name = "sizeType"
value = "cm">centimeters<br>
<input type = "radio"
name = "sizeType"
value = "in">inches<br>
</td>
</tr>
</table>
<input type = "submit"
value = "show me">
</form>
</center>
</body>
</html>


And this code of PHP page:

<html>
<head>
<title>Your Output</title>
</head>
<body>
<h1>Your Output</h1>
<center>
<?

$theStyle = <<<HERE
"border-width:$borderSize,$sizeType;
border-style:$borderStyle;
border-color:green"
HERE;
print "<div style = $theStyle>";
print '$basicText';
print "</span>";

?>
</div>
</center>
</body>
</html>

Answer

Try to modify your PHP page like below:

<?php extract($_POST); ?>
<html>
<head>
<title>Your Output</title>
</head>
<body>
<h1>Your Output</h1>
<center>
    <div style ="border-width:<?= $borderSize.','.$sizeType;?>;border-style:<?= $borderStyle;?>;border-color:green">
        <?= $basicText;?></span>";
    </div>
</center>
</body>
</html>

On the above code extract converts all your post data into variables. This works as you have used the same name for your variables (in your php code) and form inputs (in the html file). However, you could also replace extract by simply assigning your post vars to individual variables.

$borderSize = $_POST['borderSize'];
$sizeType = $_POST['sizeType'];
$borderStyle = $_POST['borderStyle'];
$basicText = $_POST['basicText'];