mysql — неопределенный индекс в массиве PHP $ _POST

У меня есть страница index.php, где я добавил форму поиска, связанную с базой данных. Так что, когда пользователи ищут любое слово, результат будет отображаться из базы данных. После того, как результаты сгенерированы на странице, я хочу, чтобы пользователи экспортировали результат в файл .doc.

Мне нужны только результаты запроса в файл .doc, но по некоторым причинам я получаю пустой файл .doc.

Вот мои коды:

searchform:

<form id="searchform" method="post">
<input type="text" name="searchit" id="searchit" class="txt"  />
<input type="submit" value="Search" id="button" class="button" />
</form>

Запрос:

<?php
include("database.php");
$term = strip_tags(substr($_POST['searchit'],0, 100));
$term = $mysqli->real_escape_string($term);

if($term=="") {
echo "<div class='error'>Enter Something to search</div>";
exit();
}

termcheck($term, $mysqli);
function termcheck($term, $mysqli){
$qry="Select * from pogel where title = '$term'";
if($result = $mysqli->query($qry)){

$num_rows = $result->num_rows;
if($num_rows > 0) {

while($row = $result->fetch_assoc())
{
echo "Stem : ".$row['title']."<br>";
}

}
}
}
?>

3

Решение

Похоже, у вас просто нет этого ключа в вашем POST.

Вы можете попробовать это, если в скрипт не попал такой элемент:

$searchit = filter_input(INPUT_POST, 'searchit');

if(!$searchit) {
echo "<div class='error'>Enter Something to search</div>";
exit();
}

$term = strip_tags(substr($searchit,0, 100));
$term = $mysqli->real_escape_string($term);

Попробуйте создать файл doc:

<?php
include("database.php");
$term = strip_tags(substr($_POST['searchit'],0, 100));
$term = $mysqli->real_escape_string($term);

if($term=="") {
echo "<div class='error'>Enter Something to search</div>";
exit();
}

$output = termcheck($term, $mysqli);

function termcheck($term, $mysqli){
$qry = "Select * from pogel where title = '$term'";
$result = '';

if($result = $mysqli->query($qry)){
$num_rows = $result->num_rows;
if($num_rows > 0) {
while($row = $result->fetch_assoc()) {
$result .= "Stem : ".$row['title']."<br>";
}
}
}

return $result;
}

ob_flush();

header("Content-type: application/vnd.ms-word");
header("Content-Disposition: attachment;Filename=document_name.doc");

echo $output;

//ob_flush_clean() might be useful here, but not sure
?>
1

Другие решения

Других решений пока нет …