Retro Gamer
Retro Gamer

Reputation: 1122

Trying to get HTML and PHP to work

I'm having trouble trying to get this example to work. I have a relatively simple HTML and PHP file, but when I submit it, it doesn't display what's in the PHP file on another page. Is there something I'm missing? Thanks

Here's the HTML:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <!-- This is assign11.html -->
<html> 
<head> 
  <title>Process the HTML form data with the POST method</title> 
</head> 
<body> 
  <form name="myform" action="assign11.php" method="POST">
    <input type="hidden" name="check_submit" value="1" />
    Name: <input type="text" name="Name" /><br />
    Password: <input type="password" name="Password" maxlength="10" /><br />
    Select something from the list: <select name="Seasons">
      <option value="Spring" selected="selected">Spring</option>
      <option value="Summer">Summer</option>
      <option value="Autumn">Autumn</option>
      <option value="Winter">Winter</option>
    </select><br /><br />
    Choose one: 
      <input type="radio" name="Country" value="USA" /> USA
      <input type="radio" name="Country" value="Canada" /> Canada
      <input type="radio" name="Country" value="Other" /> Other
    <br />
Choose the colors: 
  <input type="checkbox" name="Colors[]" value="green" checked="checked" /> Green
  <input type="checkbox" name="Colors[]" value="yellow" /> Yellow
  <input type="checkbox" name="Colors[]" value="red" /> Red
  <input type="checkbox" name="Colors[]" value="gray" /> Gray
<br /><br />
Comments:<br /> 
<textarea name="Comments" rows="10" cols="60">Enter your comments here</textarea><br />
<input type="submit" />
 </form>
</body>
</head>
</html>

And here's the PHP:

<?php
//Check whether the form has been submitted
if (array_key_exists('check_submit', $_POST)) {
  //Converts the new line characters (\n) in the text area into HTML line breaks (the <br /> tag)
  $_POST['Comments'] = nl2br($_POST['Comments']); 
  //Check whether a $_GET['Languages'] is set
  if ( isset($_POST['Colors']) ) { 
    $_POST['Colors'] = implode(', ', $_POST['Colors']); //Converts an array into a single string
  }

 //Let's now print out the received values in the browser
 echo "Your name: {$_POST['Name']}<br />";
 echo "Your password: {$_POST['Password']}<br />";
 echo "Your favourite season: {$_POST['Seasons']}<br /><br />";
 echo "Your comments:<br />{$_POST['Comments']}<br /><br />";
 echo "You are from: {$_POST['Country']}<br />";
 echo "Colors you chose: {$_POST['Colors']}<br />";
} else {
   echo "You can't see this page without submitting the form.";
}
?>

Upvotes: 0

Views: 66

Answers (1)

Sameer Shaikh
Sameer Shaikh

Reputation: 7834

Instead of this line

if (array_key_exists('check_submit', $_POST))

use:

 if(isset($_POST))

Upvotes: 1

Related Questions