@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>
  • Вопрос задан
  • 72 просмотра
Решения вопроса 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 строке вывод, поэтому отправка заголовка и не работает.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы