Jump to content
Larry Ullman's Book Forums

Php If Statement - Syntax Causes Form Changes


Recommended Posts

On page 92, Chapter 3, making sticky forms:

 

In this chapter a form is created with PHP used to create a text field for inputting distance.

Code then validates the content to make sure it is present and a number. The form remembers what was entered so that if an error is thrown the previous input is still there.

 

The following code is used to remember the distance entered by the user.

<?php
if (isset($_POST['distance'])) {
    echo $_POST['distance'];
}
?>

The book then remarks that this can be condensed onto one line, i.e.

<?php if (isset($_POST['distance'])) echo $_POST['distance']; ?>

but that doing so is rarely recommended.

 

In the interests of learning best practice I decided to go with the first option of splitting out the if statement. However, I noticed that this causes issues in the resulting form in that the Distance text field contains large number of extra characters which mean that the is_numeric test always fails.

This does not happen when using the if statement in a single line.

 

Given that both syntaxes are supposed to perform the same, this is somewhat puzzling and I wondered if anyone else has encountered it or found an explanation?

 

The full field creation is as follows in both syntaxes:

<p>Distance (miles): <input type="text" name="distance" value="<?php if (isset($_POST['distance'])) echo $_POST['distance']; ?> "/></p>
<p>Distance (miles): <input type="text" name="distance" value="
  <?php 
   if (isset($_POST['distance'])) {
    echo $_POST['distance']; 
   }
  ?> 
"/></p>

 

Libby

Link to comment
Share on other sites

  • 2 weeks later...
 Share

×
×
  • Create New...