У меня есть форма внутри php, которая отображается только при входе пользователя в систему, это означает, что только зарегистрированные пользователи могут создавать новый блог-почтовый ящик на моем сайте, форма выглядит это:Форма внутри PHP echo не будет POST любых данных
<?php
if(isset($_SESSION['username'])){ ?>
<section class="post">
<h3>Make a new post:</h3>
<p> Before posting anything, make sure you have read the <a id="pagelink" href="rules.html"> rules </a>
<form action="../php/post_up.php" id="newpost" method="POST">
<table id="post">
<tr>
<td> Title: </td>
<td id="post_cell"> <input type="text" name="post_title"/> </td>
</tr>
<tr>
<td> Content: </td>
<td id="post_cell"> <textarea name="post_content" form="newpost" rows="10" cols="50"></textarea> </td>
</tr>
<tr>
<td>
<input type="submit" name="submit_post" value="Submit">
</td>
<tr>
</table>
</form>
</section>
<?php
}
require("../php/load_up.php");
?>
После этого код передается на этот скрипт:
<?php
session_start();
require_once("../php/db.php");
if(!isset($_SESSION['userid'])){
header("Location: ../blog/userpost.php");
die();
}
if(isset($_POST['submit_post'])){
if(isset($_POST['post_title']) && isset($POST['post_content'])){
if(!$_POST['post_title'] == "" && !$_POST['post_content'] == ""){
$userid = $_SESSION['userid'];
$title = strip_tags($_POST['post_title']);
$content = strip_tags($_POST['post_content']);
$title = stripslashes($title);
$content = stripslashes($content);
$title = mysqli_real_escape_string($title);
$content = mysqli_real_escape_string($content);
$sql_store_post = "INSERT INTO userpost (title,content,userid) VALUES ('$title','$content','$userid')";
mysqli_query($db, $sql_store_post);
header("Location: ../blog/userpost.php");
die();
} else {
echo("The posts are empty");
}
} else {
echo("The posts are not set");
}
}
elseif(isset($_POST['submit_comment'])){
}
else {
echo("Seems like submit has not been set?");
//header("Location: ../blog/userpost.php");
}
>
странная вещь, что isset($_POST['submit_post'])
возвращает истину, однако две следующие должности бо? th возвращает false, что приводит к ошибкам в моем коде.
PS: require("../php/load_up.php");
предназначен для отображения сообщений, которые уже были сделаны и не важны при размещении данных.
Можете ли вы 'var_dump ($ _ POST)'? –
Вместо '! $ _ POST ['post_title'] ==" "' use '! Empty (trim ($ _ POST ['post_title']))'. – Script47
Кстати, когда вы сравниваете строки, вам нужно использовать [strcmp()] (http://php.net/manual/ru/function.strcmp.php) –