Printable Version of Topic

Click here to view this topic in its original format

HTMLHelp Forums _ Server-side Scripting _ Simple PHP Form not working?

Posted by: masonh928 Jul 28 2019, 07:15 PM

CODE


<?php

if(isset($_POST['PostBtn'])){
    
    echo($_POST['Title']);
    
}

?>

</ul>

</div>

<div class="col-sm-8">

<?php

echo <<<HTML
  <form method="post" action="">
      
      <input type="text" name="Title" class="title-text" placeholder="Give your post a title...">
      
      <br/><br/>
      
      <textarea class="form-control post-text" name="Post" required></textarea>
      
      <br/>
      
      <input type="submit" name="PostBtn" value="Post Now" class="btn btn-primary">
      
  </form>

HTML;

?>




Does anyone know why this code would not work??? I talked to my host and they don't see any reason why this wouldn't work? (I did not worry about sanitization or anything bc this is just for testing purposes) I get absolutely no errors and that's with strict reporting.I refresh the page and the form doesn't even show up? Even emptying cache doesn't work, I had to destroy the session just to get the form to reappear?? Removing the if statement does nothing either

Works fine locally

Posted by: Christian J Jul 29 2019, 05:22 AM

Do you use a .php file extension? Does any PHP work online?

Posted by: CharlesEF Jul 29 2019, 10:39 AM

Also, this is invalid:

CODE
HTML;

It should be:
CODE
HTML

Posted by: Christian J Jul 29 2019, 02:37 PM

QUOTE(CharlesEF @ Jul 29 2019, 05:39 PM) *

Also, this is invalid:
CODE
HTML;

It should be:
CODE
HTML


I don't know much about Heredoc syntax, but the manual uses semicolons: https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc

Posted by: CharlesEF Jul 29 2019, 05:10 PM

That has changed since I used heredoc. I remember only a newline was accepted after the closing identifier. I even remember helping other people with this problem on this forum and only a newline was accepted.

Thanks for the update.


Posted by: CharlesEF Jul 29 2019, 05:34 PM

The error must be in code not shown. I put together this test page and it works fine.

CODE
<?php
if(isset($_POST['PostBtn'])){
echo($_POST['Title']);
}
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width">
<title>Heredoc Test</title>
</head>
<body>
<div>
<?php
echo <<<HTML
  <form method="post" action="">
   <input type="text" name="Title" class="title-text" placeholder="Give your post a title..." required>
   <br/><br/>
   <textarea class="form-control post-text" name="Post" required></textarea>
   <br/>
   <input type="submit" name="PostBtn" value="Post Now" class="btn btn-primary">
  </form>
HTML;
?>
</body>
</html>

Posted by: masonh928 Jul 29 2019, 05:49 PM

Thanks, everyone! So with my experimenting, it wasn't necessarily an error, but rather I guess I needed to put it in the file that included that file ? I think it might be due to my action attribute on the form.

And, in regards to the heredoc syntax: I did use the semicolon as you said was mandated by the manual?? I haven't had any issues with that.

Posted by: masonh928 Jul 30 2019, 01:10 AM

https://www.php.net/manual/en/migration73.new-features.php#migration73.new-features.core.heredoc

No longer required as of 7.3, but I still use it out of habit lol

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)