Как предотвратить действие формы, открывающее новую вкладку со связанным php-скриптом?

У меня есть простая форма ввода с кнопкой отправки на моем сайте

  <form action="signup.php" method="post" name="form">
<div class="input">
<input type="text" class="button" id="email" name="email" placeholder="NAME@EXAMPLE.COM">
<input type="submit" name="submit" class="button" id="submit" value="submit">
</div>
</form>

Введенный текст записывается в текстовый документ с помощью скрипта signup.php.

    <?php
if(isset($_POST['submit']))
{
$email = $_POST['email'];
$file = fopen("signup.txt","a+");
fwrite($file,$email);
fclose($file);
print_r(error_get_last());
}
?>

Все работает нормально. Но всякий раз, когда нажимается кнопка «Отправить», в php-скрипте открывается пустая вкладка. Как я могу избавиться от этого и заменить форму ввода какой-то обратной связи?

2

Решение

Как я вижу, вы указываете на пустую страницу php со скриптом, поэтому вы получаете пустую страницу после нажатия кнопки Отправить.
Во-вторых, ваше утверждение if неверно.

Лучше всего было бы поместить все на одну страницу с именем signup.php

Я бы сделал это так:

<form action="signup.php" method="post" name="submit">
<div class="input">
<input type="text" class="button" id="email" name="email" placeholder="NAME@EXAMPLE.COM">
<input type="submit" name="submit" class="button" id="submit" value="submit">
</div>
</form>

<?php
if(isset($_POST['email']))
{
$email = $_POST['email'];
$file = fopen("signup.txt","a+");
fwrite($file,$email);
fclose($file);
if(error_get_last() == null) echo "<p>Your signup was recorded</p>";
else print_r(error_get_last());
}
?>

и вы можете добавить любой класс к этому абзацу, чтобы он выглядел так, как вы хотите, и располагался там, где вы хотите.

Я надеюсь, что это поможет вам.

0

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

Вы можете просто использовать html в своем .php файле под?>, И он будет отображать его. Пытаться:

<p>Thank you for subscribing</p>

Вы должны обновить это, чтобы соответствовать красивому дизайну, который вы имеете на первой странице.

РЕДАКТИРОВАТЬ:

Вы также можете сделать что-то вроде

if(error_get_last() == null) echo "<p>Thanks for subscribing</p>";
else print_r(error_get_last());
1