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: 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