@PetrSmirnov5
PHP, Java script

Как исправить условие if isset?

При нажатии на кнопку "start" в файл должен записаться текст из формы "comment" и добавиться параметр ?redirect=1 после обновления страницы.

Отдельно в условии редирект и перезапись у меня работают, а вместе (как сейчас в файле) - нет

Помогите найти ошибку и объединить редирект и перезапись в одном условии

Мой файл:
<?php
$numbers = $_POST['comment'];

if(isset($_POST["start"])){
//перезапись
$html = file_get_contents( '1.php' );
preg_match_all( '#<header>(.+?)</header>#is', $html, $matches );
foreach ( $matches[1] as $value ) echo '<br>';
$filename = '1.php';
$file = file_get_contents($filename);
$title_pattern='#<header>(.*)?</header>#s';
$test= preg_replace($title_pattern, "<header><div>$numbers</div>$value</header>", $file);
file_put_contents($filename, $test);
//редирект
header('Refresh:0; url=http://test.ru/2.php?redirect=1');
}

file_get_contents('1.php');
?>
<form method="POST">
<input type="text" name="comment">
<input type="submit" name="start" value="send">
</form>
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
irishmann
@irishmann
Научись пользоваться дебаггером
Зачем через foreach выводить переносы строк? Чтобы получить последний элемент массива? Так обратись к нему напрямую. В следующий раз при оформлении не забывай про отступы.
<?php
$numbers = $_POST['comment'];

if(isset($_POST["start"])){
//перезапись
$html = file_get_contents( '1.php' );
preg_match_all( '#<header>(.+?)</header>#is', $html, $matches );
$old_comments = $matches[1][0];
$filename = '1.php';
$file = file_get_contents($filename);
$title_pattern='#<header>(.*)?</header>#s';
$test= preg_replace($title_pattern, "<header><div>$numbers</div>$old_comments</header>", $file);
file_put_contents($filename, $test);
//редирект
header('Refresh:0; url=http://test.ru/2.php?redirect=1');
}
file_get_contents('1.php');
?>
<form method="POST">
<input type="text" name="comment">
<input type="submit" name="start" value="send">
</form>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Vitsliputsli
Включите вывод ошибок или загляните в логи. У вас в 8 строке вывод, поэтому отправка заголовка и не работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
от 55 000 до 80 000 руб.
WACDAQ Москва
от 120 000 руб.
HTML Academy Санкт-Петербург
от 110 000 до 130 000 руб.